《Matlab软件培训.ppt》由会员分享,可在线阅读,更多相关《Matlab软件培训.ppt(109页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机数学语言MATLAB应用培训2021/9/262021/9/261 1“三个代表”:MATLAB,Mathematica,MapleMATLAB:数值运算、程序设计、各领域的工具箱数值运算、程序设计、各领域的工具箱Mathematica、Maple:解析运算、符号运算、解析运算、符号运算、公式推导、纯数学领域公式推导、纯数学领域 三个代表性计算机数学语言2021/9/262021/9/262 2 MATLAB 1984 v.1 The MathWorks IncMATLAB 1984 v.1 The MathWorks IncMATrix LABoratoryMATrix LABorat
2、ory1980 Cleve Moler,New Mexico UniversityCleve Moler,New Mexico University 在数值计算和数据分析方面的应用 在电子学、控制理论和物理学等工程和科学学科方面的教学与研究 在经济学、化学和生物学等有计算问题的所有其他领域中的教学与研究2021/9/262021/9/263 31Matlab 基础知识 Matlab启动 两个简单的计算例子 (1)输入矩阵 计算A*B (2)求 的算术运算结果 主要界面:指令窗、工作空间、历史指令窗 如何获取在线帮助help命令及demo命令 可以通过图书馆、上网获取大量有关Matlab的知识
3、退出命令:exit或quit2021/9/262021/9/264 4 MATLAB 语言的变量名规则 (1)(1)由一个字母引导,后面可以为其他字符由一个字母引导,后面可以为其他字符(2)(2)区分大小写区分大小写 AbcAbc ABcABc(3)(3)有效有效 MYvar12,MY_Var12MYvar12,MY_Var12 和和 MyVar12_MyVar12_(4)(4)错误的变量名错误的变量名 1212MyVar,_MyVar12MyVar,_MyVar12 MATLAB MATLAB 的保留常量:的保留常量:eps,i,j,pi,NaN,Inf,i=sqrt(-1)eps,i,j,
4、pi,NaN,Inf,i=sqrt(-1)MatlabMatlab的内部函数都是小写字母的,如正弦函数的内部函数都是小写字母的,如正弦函数sinsin,不能写成,不能写成SINSIN、SinSin等形式。等形式。2021/9/262021/9/265 5 运算符和表达式(按优先级排列)1)幂 2)*乘 /右除(正常除)左除 3)+加 减表达式a/(b+c)被读作如果使用左除a (b+c),Matlab把它译成2021/9/262021/9/266 6Matlab的部分预定义数学函数2021/9/262021/9/267 72数组的输入及运算数组的创建和寻访常用方法:冒号生成法,格式为 Y=a:
5、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.89132021/9/262021/9/268 8数组的
6、运算 两个数组的运算是将对应元素作运算得到一个新的数组。一个数与一个数组的运算是该数逐个与数组元素作运算得到一个新的数组。数组运算符有,.*,./,.,.2021/9/262021/9/269 93矩阵的输入及运算矩阵的创建和寻访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 162021/9/262021/9/261010矩阵的运算 矩阵运算符有,*,/,X=AB-1=A/B(右除)X=A-1B=AB(左除)求逆阵:X=inv(A)求行列式:d=det(A)求矩阵的秩:n=rank(A)求
7、矩阵特征值与特征向量:d=eig(A)v,d=eig(A)2021/9/262021/9/261111矩阵的分解 LU分解:又称三角分解,将矩阵A分解为下 三角矩阵L和上三角矩阵U的乘积,即A=LU。L,U=lu(A)2021/9/262021/9/261212 Cholesky分解:如果A为对称阵,则可以将A分 解成A=DD。D=chol(A)2021/9/262021/9/261313 QR分解:将矩阵A分解为一个正交阵Q与一个上 三角阵R的乘积,即A=QR。Q,R=qr(A)2021/9/262021/9/261414生成特殊矩阵的部分函数:2021/9/262021/9/261515生
8、成特殊矩阵的部分函数:2021/9/262021/9/2616164MATLAB 语言流程控制循环结构for for 结构结构while while 结构结构2021/9/262021/9/261717【例】用循环求解【例】用循环求解 求最小的 m2021/9/262021/9/261818【例】用循环求解 求最小的 m2021/9/262021/9/261919转移结构2021/9/262021/9/2620202021/9/262021/9/262121开关结构2021/9/262021/9/2622222021/9/262021/9/262323和 C 语言的区别 当开关表达式的值等于某
9、表达式,执行该语句后结束该结构,不用 break;同时满足若干个条件之一,则用单元形式otherwise 语句,不是 default;程序的执行结果和各个case顺序无关;case 语句中条件不能重复,否则列在后面的条件将不能执行。2021/9/262021/9/2624245MATLAB 函数的编写MATLAB 语言函数的基本结构(M文件)2021/9/262021/9/262525 M文件其实就是批命令文件,可以代替在Matlab提示符下输入的一大串命令。利用M文件可以自己定义函数并很方便地像调用内部函数一样对其进行调用。2021/9/262021/9/262626【例】用循环求解 求最小
10、的 m2021/9/262021/9/262727【例】函数的递归调用:阶乘2021/9/262021/9/2628286二维图形绘制二维图形绘制基本语句构造向量构造向量:2021/9/262021/9/2629292021/9/262021/9/2630302021/9/262021/9/263131【例】【例】2021/9/262021/9/263232绘制二维函数的一般步骤:1.产生自变量采样向量并计算出函数值向量;t=pi*(0:100)/100;y=sin(t).*sin(9*t);2.选定图形窗及子图位置;figure(1);%指定1号图形窗 subplot(2,2,3);%指定3
11、号子图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)%文字说明2021/9/262021/9/263333其他二维图形绘制语句2021/9/262021/9/263434【例】绘制极坐标曲线2021/9/262021/9/263535【例】用不同曲线绘制函数表示正弦曲线2021/9/262021/9/263636隐函数绘制
12、及应用 隐函数2021/9/262021/9/2637377三维图形绘制 三维曲线绘制2021/9/262021/9/263838【例】参数方程2021/9/262021/9/263939三维曲面绘制 如果已知二元函数如果已知二元函数z=f(x,y)z=f(x,y),则可以绘制出该函数的三,则可以绘制出该函数的三维曲面图。维曲面图。先用先用meshgrid()meshgrid()函数来生成网格矩阵数据函数来生成网格矩阵数据x x和和y.y.2021/9/262021/9/264040【例】Butterworth 滤波器%色标尺2021/9/262021/9/264141多项式拟合8由已知数据拟
13、合数学模型2021/9/262021/9/264242【例】polyval()函数用来计算多项式的值2021/9/262021/9/2643432021/9/262021/9/264444【例】2021/9/262021/9/264545函数线性组合的曲线拟合方法2021/9/262021/9/264646该方程的最小二乘解为:其中2021/9/262021/9/264747【例】2021/9/262021/9/264848由以上方程可知:写成矩阵的形式:2021/9/262021/9/264949离散点与曲线位置的比较:2021/9/262021/9/265050多元线性拟合 对于二元线性函
14、数 写成矩阵形式为:可以得到2021/9/262021/9/265151 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 即可得到拟合多项式的系数2021/9/262021/9/2652529一维数据的插值问题一维插值问题的求解2021/9/262021/9/265353【例】已知的数据点来自函数已知的数据点来自函数根据生成的数据进行插值处理,得出较平滑的曲线根据生成的数据进行插值处理,得出较平滑的曲线直接生成数据。直接生成数据。%根据函数取若干个
15、离散点2021/9/262021/9/2654542021/9/262021/9/265555二维网格数据的插值问题2021/9/262021/9/265656【例】2021/9/262021/9/2657572021/9/262021/9/2658582021/9/262021/9/26595910Matlab常用功能函数求函数的导数和高阶导数2021/9/262021/9/266060【例例】2021/9/262021/9/266161不定积分的推导2021/9/262021/9/266262【例例】用用diff()diff()函数求其一阶导数,再积分,函数求其一阶导数,再积分,检验是否可
16、以得出一致的结果。检验是否可以得出一致的结果。simplify(y0)simplify(y0)2021/9/262021/9/266363对原函数求4阶导数,再对结果进行4次积分2021/9/262021/9/266464数值积分问题单变量数值积分问题求解y=quadl(Fun,a,b)速度和精度远高于quad()函数,建议使用。2021/9/262021/9/266565【例】求解2021/9/262021/9/266666【例】(结果有问题)2021/9/262021/9/266767一元函数作图11函数与方程作图fplot(,Xmin,Xmax)2021/9/262021/9/26686
17、8【例】一元方程的图解法2021/9/262021/9/266969二元方程的图解法【例】2021/9/262021/9/267070多项式型方程的求解【例】2021/9/262021/9/267171【例】2021/9/262021/9/267272求函数的零点【例】求以下函数的零点2021/9/262021/9/267373 求函数的零点必须先估计一下X0的大小,所以可以先把函数的图形先描绘出来看一下。2021/9/262021/9/267474【例】求函数sin(x)和2x-2的交集,也就是求方程sinx=2x-2的解。先定义函数s=sinx-2.*x+2,再计算函数s的零点。2021/
18、9/262021/9/267575求函数的极值点求一元函数的极小值:求多元函数的极小值:x,fval=fminbnd(fun,x1,x2)求函数在区间(x1,x2)中极小值的指令最简格式X,fval=fminsearch(fun,X0)求函数在自变量向量为X0附近的极小值的指令最简格式2021/9/262021/9/267676求 的极小值点。ff=inline(100*(x(2)-x(1)2)2+(1-x(1)2,x);X0=-1.2,1;X,val=fminsearch(ff,X0)【例】2021/9/262021/9/26777712有约束最优化问题的计算机求解线性规划问题的计算机求解线
19、性规划问题的计算机求解二次型规划的求解二次型规划的求解一般非线性规划问题的求解一般非线性规划问题的求解2021/9/262021/9/2678782021/9/262021/9/267979线性规划问题的计算机求解2021/9/262021/9/268080【例】以上的目标函数可以用其系数向量f=-2,-1,-4,-3,-1表示。不等式约束有两条,即:2021/9/262021/9/268181【例】2021/9/262021/9/268282二次型规划的求解2021/9/262021/9/268383【例】2021/9/262021/9/2684842021/9/262021/9/26858
20、5一般非线性规划问题的求解F为给目标函数写的M函数或inline函数,x0为初始搜索点,CF为给非线性约束函数写的M函数。2021/9/262021/9/268686【例】c为不等式约束的数学描述,ceq为非线性等式约束,如果某个约束不存在,则应该将其值赋为空矩阵。2021/9/262021/9/2687872021/9/262021/9/26888813微分方程问题的计算机求解 常系数线性微分方程的解析解方法微分方程问题的数值解法2021/9/262021/9/268989常系数线性微分方程解析解的数学描述常系数线性微分方程的解析解方法2021/9/262021/9/269090常系数线性微
21、分方程的求解工具2021/9/262021/9/269191【例】2021/9/262021/9/2692922021/9/262021/9/2693932021/9/262021/9/269494【例】2021/9/262021/9/2695952021/9/262021/9/269696【例】2021/9/262021/9/269797微分方程问题的数值解法微分方程问题算法概述2021/9/262021/9/269898MATLAB可直接对一阶显式微分方程组进行数值求解Fun是用M函数或inline函数描述的微分方程;t0为设定的仿真初始时刻,tf为仿真终止时刻;x0表示初值问题的初始状态
22、变量。四阶五级Runge-Kutta-Felhberg算法ode 常微分方程2021/9/262021/9/2699992021/9/262021/9/26100100【例】2021/9/262021/9/261011012021/9/262021/9/26102102【例】2021/9/262021/9/261031032021/9/262021/9/26104104微分方程转换:单个高阶常微分方程处理方法2021/9/262021/9/261051052021/9/262021/9/26106106【例】因为该方程不是由Matlab直接可解的一阶显式微分方程组给出的,所以需要对该方程进行变换。选择状态变量则原方程可以变换成:2021/9/262021/9/261071072021/9/262021/9/261081082021/9/262021/9/26109109