MATLAB常用语句总结7

MATLAB总结7:常见错误归纳


文章目录

  • MATLAB总结7:常见错误归纳
  • 前言
  • 一、rand 的使用
  • 二、蒙塔卡罗求解方法
    • 1.函数的定义
    • 2.函数引用
  • 三、函数引用与多变量
  • 四、矩阵引用
  • 五、非线性函数:fmincon的使用
  • 六、线性规划函数
    • 1.linprog
    • 2.fminbnd、fminsearch
  • 七、fminbnd
  • 八、积分和微分
    • 1.quad积分
    • 2.积分int 微分diff
  • 九、lsqcurvefit
    • 1.函数的定义
  • 十、符号
  • 十一、矩阵求解
  • 十二、polyfit 函数进行多项式拟合
  • 十三、
    • 1.函数的定义
  • 十四、ode23和ode45
  • 十五、fzero
  • 十六、meshgrid和surf
  • 十七、fsolve


前言

记忆力比较差,把学习过程中常用的语法记录于此,方便回忆时索引


一、rand 的使用

rand 是用于生成在(0,1)上随机数的函数,而后面加入 rand(1,2),则意为一个一行两列的(0,1)矩阵,不可乱加。需要使用不同范围的随机数则使用 A*rand() 即可

    x=5*rand();
    y=5*rand();

二、蒙塔卡罗求解方法

1.函数的定义

代码如下(示例):

function c=myobj(x)
c=10*x(1)^3+x(3)*(x(1)^2+x(2)^2);
function r=mycon(x)
r=[x(1)^2+x(2)^2-x(3)-10 ; x(1)^2+x(2)^2+x(3)-3];
function m=myrand
while 1
    m=[10*rand-5 ;10*rand-5 ;10*rand-5 ];
    if mycon(m)<=0
        return 
    end
end

2.函数引用

代码如下(示例):

function [val,x]=myfun2
rand('seed',11);

betterx=myrand;
betterval=myobj(betterx);

for i=1:10000
    betterx=myrand;
    if myobj(betterx)>betterval;
        betterval=myobj(betterx);
    end
end
x=double(betterx);
val=double(betterval);


三、函数引用与多变量

要分清多元函数的变量要用循环引用

代码如下(示例):

function v=testmain
x=-2:0.1:2;
v=fun(x);

function r=fun(x)
for i=1:length(x)
    if x(i)<-1
        r(i)=x(i)^2+2*x(i)+1;
    elseif x(i)>-1 && x(i)<=2
        r(i)=3*x(i);
    else
        r(i)=2*sqrt(x(i));
    end
end

四、矩阵引用

引用矩阵可以用行列索引,也可以单行单列(注意单行单列是逗号),而且引用矩阵必须是括号

代码如下(示例):

A(1,:)%引用第一行
A(:,2)%引用第二列
A(1,:)=A(1,:).^2;%给矩阵赋值要明白给谁赋值

五、非线性函数:fmincon的使用

  1. 使用时要注意哪里是只输入系数,哪里是方程
  2. 求最小值的是方程,其他的都只输出系数
  3. 同种变量用逗号隔开,不同种用分号
  4. 注意noncon的位置是使用@,引用里面有()
  5. lb ub里面是逗号
  6. 函数系数的对应关系

在这里插入图片描述

代码如下(示例):

function [min,val]=fun3
Fun=@(x) 2*(x(1)-1)^2+3*(x(2)-1)^2+0.2*x(1)*x(2)+(2*x(3)-2)^2
A=[3 2 6;4 5 2;2 9 7];
b=[50;40;100];
Lb=[0,0,0];
ub=[15,9,25];
[min,val]=fmincon(Fun,[0,0,0],A,b,[],[],Lb,ub,@noncon);
function [c,ceq]=noncon(x)
c=[-2*x(1)^-x(2)^2-x(3)^2+5,
    x(1)^2+x(2)^2+2*x(3)^2-200];
ceq=[0];

六、线性规划函数

1.linprog

求解常规线性规划
注意!!!f 函数调用是系数

代码如下(示例):

% 定义线性规划问题
f = [-3; -4];
A = [1, 2; 3, 2; -1, 0; 0, -1];
b = [10; 15; 0; 0];

% 求解线性规划问题
x = linprog(f, A, b);

2.fminbnd、fminsearch

用于找到极小值,fminbnd找到区间内,fminsearch找到从某一点开始的极小值
fminbnd

% 定义要最小化的函数
fun = @(x) x^2 + 2*x + 1;

% 在区间[-2, 2]内寻找最小值
[x,val] = fminbnd(fun, -2, 2);

fminsearch

% 定义要最小化的函数
fun = @(x) x(1)^2 + x(2)^2;

% 指定初始点
x0 = [1, 1];

% 在多维空间中寻找最小值
x = fminsearch(fun, x0);

七、fminbnd

代码如下(示例):

[x,val] = fminbnd(fun, x1, x2)

八、积分和微分

1.quad积分

y=@(x) (3.*x+2)./(x.^3+2.*x+5);
r=quad(y,0,3);

2.积分int 微分diff

在这里插入图片描述
在这里插入图片描述

F=@(x,y) exp(2*x.^2+3*y.^2);
I=integral2(F,0.5,1,0,1);%取值范围

九、lsqcurvefit

1.函数的定义

  1. xdata,ydata储存数据,x(i)存放未知变量
  2. 调用时要把 fun(x,xdata) 全部带上

代码如下(示例):

xdata=[10.03,20.04,30.23,40.37,50.16,60.4,70.3,80.66,90.69,100.16,110.94,121.18,130.66,141.23,150.88,160.24];
ydata=[50.44,82.95,133.07,202.76,286.39,381.34,467.36,540.54,591.7,624.28,647.62,660.77,668.06,672.83,675.36,676.82];
fun = @(x,xdata) x(1)./(1+((x(1)/x(2))-1).*exp(-x(3)*xdata));
x0 = [1,1,1];
x = lsqcurvefit(fun,x0,xdata,ydata);
x1=[150:0.5:190];
y=fun(x1,xdata);

十、符号

  1. 取余:mod
  2. 不等于:~=

十一、矩阵求解

  1. 可以使用linsolve
  2. 也可以求逆
    在这里插入图片描述

代码如下(示例):

a=[1 1 -1 2;
    -1 -2 1 -3;
    1 1 1 -3;
    2 1 -3 1];
e=[-3;1;-7;4];
x=inv(a)*e;
a=[1 1 -1 2;
    -1 -2 1 -3;
    1 1 1 -3;
    2 1 -3 1];
e=[-3;1;-7;4];
x=linsolve(a,e);

十二、polyfit 函数进行多项式拟合

  1. p = polyfit(x, y, n);
  2. x 是数据点的 x 值(自变量)向量,y 是数据点的 y 值(因变量)向量,n 是要拟合的多项式的次数。
  3. polyval(p,50); 用于计算特定位置的值

代码如下(示例):

% 示例数据点
t=[1,6,11,16,21,26,31,36];
x=[5.35,10.51,15.664,20.76,25.94,30.08,35.22,40.36];
p=polyfit(t,x,1);
val=polyval(p,50);
r=[p,val];

十三、

1.函数的定义

  1. xdata,ydata储存数据,x(i)存放未知变量
  2. 调用时要把 fun(x,xdata) 全部带上

代码如下(示例):

xdata=[10.03,20.04,30.23,40.37,50.16,60.4,70.3,80.66,90.69,100.16,110.94,121.18,130.66,141.23,150.88,160.24];
ydata=[50.44,82.95,133.07,202.76,286.39,381.34,467.36,540.54,591.7,624.28,647.62,660.77,668.06,672.83,675.36,676.82];
fun = @(x,xdata) x(1)./(1+((x(1)/x(2))-1).*exp(-x(3)*xdata));
x0 = [1,1,1];
x = lsqcurvefit(fun,x0,xdata,ydata);
x1=[150:0.5:190];
y=fun(x1,xdata);

十四、ode23和ode45

  1. 使用myode时,注意输入要把x,y都带上,先是自变量,后是因变量
  2. y(1)可表示y,y(2)可表示一阶导数
y1 = 0:0.01:1;%取值范围
y0 = 1;初值
[t,y] = ode23(@myode, y1, y0);

function dydx=myode(x,y)
    dydx=(2/3)*x/y^2;
function r = myfun
    x1 = 0:0.1:100;%定义范围
    x0 = [2; 0]; %定义初始条件
    [t, x] = ode23(@myode, x1, x0);%这里的x是一个向量
end

function dxdt = myode(t, x)
    dxdt = [20*(1-x(1)^2)*x(2) + 0.5*x(1); 0];%x(1)代表x,x(2)代表dx/dt
end


十五、fzero

x0 是初始猜测的根的值。

代码如下(示例):

x = fzero(fun, x0)
x = fzero(fun, x0, options)

十六、meshgrid和surf

  1. 注意z的输出
  2. [x,y]=meshgrid(x取值,y取值)
  3. surf绘制表面图

代码如下(示例):

function z=myfun24
[x,y]=meshgrid(-3:0.1:3,-3:0.1:3);
z=x.*y.*exp(sin(x.^2+y.^2));
surf(x,y,z);

十七、fsolve

  1. 记住两个公式:root2和fsolve的使用
  2. folsve(@root2,x0)
  3. f=root2(x) f(1)= f(2)=

代码如下(示例):

% 示例数据点
function r=myfun29
x0=[0,0];
r=fsolve(@root2,x0);

function f=root2(x)
f(1)=x(1)^2-x(2)-1;
f(2)=(x(1)-2)^2+(x(2)-0.5)^2-1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/769307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker学习笔记(二)镜像、容器、仓库相关命令操作

一、docker镜像操作 列出镜像列表 我们可以使用 docker images 来列出本地主机上的镜像。 各个选项说明: REPOSITORY&#xff1a;表示镜像的仓库源 TAG&#xff1a;镜像的标签 IMAGE ID&#xff1a;镜像ID CREATED&#xff1a;镜像创建时间 SIZE&#xff1a;镜像大小 查…

pdf太大怎么压缩大小,pdf文件太大如何压缩变小

在数字化时代&#xff0c;pdf文件已成为我们工作、学习和生活中不可或缺的一部分。然而&#xff0c;随着文件内容的丰富&#xff0c;pdf文件的体积也日益增大&#xff0c;给存储和传输带来不便。本文将为你详细介绍四种实用的pdf文件压缩方法&#xff0c;帮助你轻松减小pdf容量…

【ROS2】初级:CLI工具 -配置环境

目标&#xff1a;本教程将指导您如何准备您的 ROS 2 环境。 教程级别&#xff1a;初学者 时间&#xff1a;5 分钟 目录 背景 先决条件 任务 源代码设置文件将源添加到您的 shell 启动脚本检查环境变量 摘要 下一步 背景 ROS 2 依赖于使用 shell 环境组合工作空间的概念。“Work…

C# Winform自制多轴力臂(简单易懂,方便扩展)

WinForms框架广泛应用于上位机开发领域&#xff0c;其中对力臂的精准控制是常见需求之一。本文深入探讨了如何创建自定义的多轴力臂图形控件&#xff0c;不仅涵盖了力臂图形控件的角度调节机制&#xff0c;还详细展示了如何实现力臂运动的生动动态效果&#xff0c;为开发者提供…

解决VSCode中导入PyTorch时报错的HTTP错误与Channel冲突

问题描述与解释 在Anaconda中成功安装PyTorch&#xff0c;并进行了验证&#xff1a; (base) C:\Users\Hui>conda activate pytorch(pytorch) C:\Users\\Hui>python Python 3.8.19 (default, Mar 20 2024, 19:55:45) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on …

妙手ERP支持授权TikTok Shop全托管店铺,支持智能编辑、定时发布等操作!

全托管模式可以说是近两年跨境电商的热潮&#xff0c;在全托管模式下&#xff0c;卖家只需备货&#xff0c;平台进行运营、履约。因此&#xff0c;这种模式也迅速成为计划出海的跨境卖家重点关注方向。 一、TikTok Shop全托管 目前&#xff0c;几大主流跨境电商平台都已上线全…

springboot旅游管理系统-计算机毕业设计源码16021

摘 要 本文旨在设计和实现一个基于Spring Boot框架的旅游管理系统。该系统通过利用Spring Boot的快速开发特性和丰富的生态系统&#xff0c;提供了一个高效、可靠和灵活的解决方案。系统将实现旅游景点信息的管理、线路规划、跟团游玩、旅游攻略、酒店信息管理、订单管理和用户…

【操作与配置】VSCode配置C/C++及远程开发

MINGW环境配置 进入网站&#xff0c;如下图下载&#xff1a;MinGW Distro - nuwen.net 运行安装包&#xff0c;使其安装在你指定的位置 将MinGW的bin目录添加到系统的环境变量PATH中 使用 winx 选择进入“系统”点击“高级系统设置”在“系统属性&#xff1a;高级”窗口中&am…

Vue前端打包

关于NGINX 介绍:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;在各大型互联网公司都有非常广泛的使用。 NGiMx 官网:https://nginx.org/ conf 配置文件目录 html静态资源文件目录 lo…

学习笔记(linux高级编程)11

进程间通信 》信号通信 应用&#xff1a;异步通信。 中断&#xff0c;&#xff0c; 1~64&#xff1b;32应用编程。 如何响应&#xff1a; Term Default action is to terminate the process. Ign Default action is to ignore the signal. wait Core Default action is …

Ignis 应用: 社交 + 游戏 + 工业4.0,Ignis 构建Web3生态圈

引言 在数字经济快速发展的今天&#xff0c;Web3技术为我们带来了前所未有的变革。作为Ardor平台的主要子链&#xff0c;Ignis公链在推动Web3生态系统建设中扮演了重要角色。本文将通过介绍Vessel Chain、Mythical Beings和Bridge Champ等应用&#xff0c;探讨Ignis公链如何通…

基于循环神经网络的一维信号降噪方法(简单版本,Python)

代码非常简单。 import torch import torch.nn as nn from torch.autograd import Variable from scipy.io.wavfile import write #need install pydub module #pip install pydub import numpy as np import pydub from scipy import signal import IPython import matplot…

基于强化学习DQN的股票预测【股票交易】

强化学习笔记 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实例分析:GridWorld 第六章 蒙特卡洛方法 第七章 Robbins-Monro算法 第八章 多臂老虎机 第九章 强化学习实例分析:CartPole 第十章 时序差分法 第十一…

swiftui中常用组件picker的使用,以及它的可选样式

一个可选项列表就是一个picker组件搞出来的&#xff0c;它有多个样式可以选择&#xff0c;并且可以传递进去一些可选数据&#xff0c;有点像前端页面里面的seleted组件&#xff0c;但是picker组件的样式可以更多。可以看官方英文文档&#xff1a;PickerStyle | Apple Developer…

【Week-G2】人脸图像生成(DCGAN)--pytorch版本

文章目录 0、遇到的问题1、配置环境 & 导入数据2、定义模型3、训练模型4、什么是DCGAN? &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 本文环境&#xff1a; 系统环境&#xff1a;…

从搜索框的提示词中再探防抖和节流

前言 最近逛掘金时&#xff0c;看到了一篇文章。发现是我之前写过的一篇文章主题是防抖和节流的&#xff0c;看防抖时没感觉哪里不一样&#xff0c;但是当我看到节流时发现他的节流怎么这么繁琐(・∀・(・∀・(・∀・*)&#xff1f; 抱着疑惑的想法&#xff0c;我仔细拜读了这…

PyCharm 如何设置作者信息

1、点击pycharm右上角的齿轮&#xff0c;选择settings 2、选择editor 3、选择 Editor File and Code Templates 4、选择作者信息的文件类型&#xff0c;中间选择框选择Python Script 5、然后在右边的输入框中输入相关的信息 # -*- coding: utf-8 -*- """ Time …

kotlin接口,前端怎么调用?

文章目录 &#x1f389;欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系列文章专栏&#xff1a;Java学习路线&#x1f4dc;其他专栏&#xff1a;Java学习路线 Jav…

构建大数据生态:Sqoop、Hadoop、IDEA和Maven的完整安装与数据预处理指南【实训Day03】

一、Sqoop安装 1 上传安装包并解压缩(在hadoop101上) # cd /opt/software 点击xftp上传sqoop的安装文件sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz # tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/ # cd /opt/module/ # mv s…

vue3+vue-router+vite 实现动态路由

文章中出现的代码是演示版本&#xff0c;仅供参考&#xff0c;实际的业务需求会更加复杂 什么是动态路由 什么场景会用到动态路由 举一个最常见的例子&#xff0c;比如说我们要开发一个后台管理系统&#xff0c;一般来说后台管理系统都会分角色登录&#xff0c;这个时候也就涉…