Matlab软件培训(共110张).pptx
1980 在数值计算和数据分析方面的应用 在电子学、控制理论和物理学等工程和科学学科方面的教学与研究 在经济学、化学和生物学等有计算问题的所有其他领域中的教学与研究 Matlab启动 两个简单的计算例子 (1)输入矩阵 计算A*B (2)求 的算术运算结果 主要界面:指令窗、工作空间、历史指令窗 如何获取在线帮助help命令及demo命令 可以通过图书馆、上网获取大量有关Matlab的知识 退出命令:exit或quit987654321A23)47(212978326B 运算符和表达式(按优先级排列) 1) 幂 2) * 乘 / 右除(正常除) 左除 3) + 加 减表达式a / ( b + c )被读作如果使用左除a ( b + c ),Matlab把它译成cbaacb数组的创建和寻访常用方法:冒号生成法,格式为 Y=a:inc:b ,inc是步长,可以取正负,还可以省略,默认为1;Y=rand(1,5) %产生(1*5)的均匀分布随机数组Y =0.9501 0.2311 0.6068 0.4860 0.8913Y(3) ans =0.6068 Y(1 2 5) ans =0.9501 0.2311 0.8913 Y(1:3) ans = 0.9501 0.2311 0.6068 Y(3:end) ans = 0.6068 0.4860 0.8913 Y(3:-1:1) ans = 0.6068 0.2311 0.9501 Y(find(x0.5) ans = 0.9501 0.6068 0.8913数组的运算 两个数组的运算是将对应元素作运算得到一个新的数组。一个数与一个数组的运算是该数逐个与数组元素作运算得到一个新的数组。 数组运算符有 , ,.* ,./ ,.,.矩阵的创建和寻访A=11,12,13;14,15,16A = 11 12 13 14 15 16A(2,3)ans = 16A(1,3)=10A = 11 12 10 14 15 16矩阵的运算 矩阵运算符有 , ,* ,/ , X=AB-1=A/B(右除) X=A-1B=AB(左除) 求逆阵: X=inv(A) 求行列式: d=det(A) 求矩阵的秩:n=rank(A) 求矩阵特征值与特征向量:d=eig(A) v,d=eig(A)矩阵的分解 LU分解:又称三角分解,将矩阵A分解为下 三角矩阵L和上三角矩阵U的乘积,即A=LU。 L,U=lu(A) Cholesky分解:如果A为对称阵,则可以将A分 解成A=DD。D=chol(A) QR分解:将矩阵A分解为一个正交阵Q与一个上 三角阵R的乘积,即A=QR。Q,R=qr(A)生成特殊矩阵的部分函数:生成特殊矩阵的部分函数:【例】用循环求解【例】用循环求解 求最小的 m【例】用循环求解 求最小的 m(M文件) M文件其实就是批命令文件,可以代替在Matlab提示符下输入的一大串命令。 利用M文件可以自己定义函数并很方便地像调用内部函数一样对其进行调用。【例】用循环求解 求最小的 m【例】函数的递归调用:阶乘构造向量构造向量:【例】【例】绘制二维函数的一般步骤:1.产生自变量采样向量并计算出函数值向量; t=pi*(0:100)/100; y=sin(t).*sin(9*t);2.选定图形窗及子图位置 ; figure(1); %指定1号图形窗 subplot(2,2,3); %指定3号子图3.调用线性、颜色等指令; plot(t,y,b-) %用蓝色实线画曲线4.设置轴的范围与刻度、坐标分格线; axis(0,pi,-1,1); %设置轴的范围 grid on %画坐标分格线5.图形注释 ; title(调制波形) %图名 xlabel(t);ylabel(y) %轴名 text(2,0.5,y=sin(t)sin(9t) %文字说明【例】绘制极坐标曲线【例】用不同曲线绘制函数表示正弦曲线【例】参数方程【例】Butterworth 滤波器% 色标尺多项式拟合八由已知数据拟合数学模型【例】polyval()函数用来计算多项式的值【例】函数线性组合的曲线拟合方法该方程的最小二乘解为:其中【例】1)(1xfxexf32)(xexxf43)2cos()(24)(xxf由以上方程可知:写成矩阵的形式:)(),(),(),(4321xfxfxfxfA 离散点与曲线位置的比较:多元线性拟合 对于二元线性函数22110 xaxaay1 . 10 . 18 .6 .5 .2 .1x4 . 11 . 19 .4 .3 .1 .2x24.27.23.28.26.17.yXAY YXYXA1 写成矩阵形式为: 可以得到 x1=.2,.5,.6,.8,1.0,1.1; x2=.1,.3,.4,.9,1.1,1.4; y=.17,.26,.28,.23,.27,.24; X=ones(size(y),x1,x2; A=Xy 即可得到拟合多项式的系数九一维数据的插值问题一维插值问题的求解【例】已知的数据点来自函数已知的数据点来自函数根据生成的数据进行插值处理,得出较平滑的曲线根据生成的数据进行插值处理,得出较平滑的曲线直接生成数据。直接生成数据。% 根据函数取若干个离散点二维网格数据的插值问题【例】一Matlab常用功能函数求函数的导数和高阶导数【例例】不定积分的推导【例例】 用用diff() diff() 函数求其一阶导数,再积分,函数求其一阶导数,再积分, 检验是否可以得出一致的结果。检验是否可以得出一致的结果。simplify(y0)simplify(y0)对原函数求4阶导数,再对结果进行4次积分数值积分问题单变量数值积分问题求解y=quadl(Fun,a,b) 速度和精度远高于quad() 函数,建议使用。【例】求解4220I【例】(结果有问题)一元函数作图一一函数与方程作图fplot(,Xmin,Xmax)【例】一元方程的图解法二元方程的图解法【例】多项式型方程的求解【例】【例】求函数的零点【例】求以下函数的零点 求函数的零点必须先估计一下X0的大小,所以可以先把函数的图形先描绘出来看一下。【例】求函数sin(x)和2x-2的交集,也就是求方程sinx=2x-2的解。先定义函数s=sinx-2.*x+2,再计算函数s的零点。求函数的极值点求一元函数的极小值:求多元函数的极小值:x,fval=fminbnd(fun,x1,x2) 求函数在区间(x1,x2)中极小值的指令最简格式X,fval=fminsearch(fun,X0) 求函数在自变量向量为X0附近的极小值的指令最简格式求 的极小值点。 ff=inline(100*(x(2)-x(1)2)2+(1-x(1)2,x); X0=-1.2,1; X,val=fminsearch(ff,X0) 222)1 ()(100),(xxyyxf【例】一二有约束最优化问题的计算机求解线性规划问题的计算机求解线性规划问题的计算机求解二次型规划的求解二次型规划的求解一般非线性规划问题的求解一般非线性规划问题的求解线性规划问题的计算机求解【例】以上的目标函数可以用其系数向量f=-2,-1,-4,-3,-1表示。不等式约束有两条,即:1154324120A6254B【例】二次型规划的求解【例】24232221)4()3()2() 1(xxxx308642432124232221xxxxxxxx4321432143218642200002000020000221xxxxxxxxxxxx一般非线性规划问题的求解F为给目标函数写的M函数或inline函数,x0为初始搜索点,CF为给非线性约束函数写的M函数。【例】c为不等式约束的数学描述,ceq为非线性等式约束,如果某个约束不存在,则应该将其值赋为空矩阵。一三微分方程问题的计算机求解 常系数线性微分方程的解析解方法微分方程问题的数值解法常系数线性微分方程解析解的数学描述常系数线性微分方程的解析解方法常系数线性微分方程的求解工具【例】【例】【例】微分方程问题的数值解法微分方程问题算法概述MATLAB可直接对一阶显式微分方程组进行数值求解Fun是用M函数或inline函数描述的微分方程;t0为设定的仿真初始时刻,tf为仿真终止时刻;x0表示初值问题的初始状态变量。四阶五级Runge-Kutta-Felhberg算法ode 常微分方程【例】【例】微分方程转换: 单个高阶常微分方程处理方法【例】 因为该方程不是由Matlab直接可解的一阶显式微分方程组给出的,所以需要对该方程进行变换。选择状态变量yx 1yx21221221) 1(xxxxxx则原方程可以变换成:演讲完毕,谢谢观看!