《MATLAB基础教程》第4章.ppt
MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社第第4章章 MATLAB 的数学运算的数学运算 MATLAB R2010a 基础教程基础教程 清华大学出版社清华大学出版社教学目标教学重点教学内容12/15/20221MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社教学目标l 掌握多项式运算及插值掌握多项式运算及插值l 掌握函数操作掌握函数操作l 掌握微分方程掌握微分方程12/15/20222MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社教学重点l多项式运算及插值多项式运算及插值l函数操作函数操作l微分方程微分方程12/15/20223MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社教学内容l多项式与插值多项式与插值l函数运算函数运算l微分方程微分方程l应用实例应用实例 分析火箭数据分析火箭数据(了解)(了解)12/15/20224MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社多项式与插值(多项式与插值(1/3)l多项式的表示多项式的表示 在在MATLAB中多项式用一个行向量表示,向量中多项式用一个行向量表示,向量中的元素为该多项式的系数,按照降序排列。中的元素为该多项式的系数,按照降序排列。l多项式的四则运算多项式的四则运算 多项式的加减即为对应项系数的加减。多项式的多项式的加减即为对应项系数的加减。多项式的乘法实际上是多项式系数向量之间的卷积运算,乘法实际上是多项式系数向量之间的卷积运算,可以通过可以通过MATLAB中的卷积函数中的卷积函数conv来完成。来完成。多项式的除法为乘法的逆运算,可以通过反卷积多项式的除法为乘法的逆运算,可以通过反卷积函数函数deconv来实现。来实现。12/15/20225MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社多项式与插值(多项式与插值(2/3)l多项式的其他运算多项式的其他运算。函数功能roots多项式求根polyval多项式求值polyvalm矩阵多项式求值polyder多项式求导poly求矩阵的特征多项式;或者求一个多项式,其根为指定的数值polyfit多项式曲线拟合residue求解余项12/15/20226MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社多项式与插值(多项式与插值(3/3)l数据插值数据插值。l插值运算中可选的方法。插值运算中可选的方法。参数对应方法nearest最近邻插值linear线性插值spline三次样条插值pchip或cubic三次插值12/15/20227MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社函数运算(函数运算(1/5)l函数的表示函数的表示利用利用M文件将函数定义为文件将函数定义为MATLAB函数函数采用匿名函数的方式采用匿名函数的方式l数学函数图像的绘制数学函数图像的绘制 fplot函数的调用方式:函数的调用方式:(1)fplot(fun,limits),y=f(x)。fun可以为可以为MATLAB函数的函数的M文文件名;也可以是包含变量件名;也可以是包含变量x的字符串,该字符串可以传递给函数的字符串,该字符串可以传递给函数eval;还可以是函数句柄。;还可以是函数句柄。(2)参数)参数 limits用于指定绘制图像的范围。用于指定绘制图像的范围。limits是一个向量,用是一个向量,用于指定于指定x轴的范围,格式为轴的范围,格式为xmin xmax。limits也可以同时指定也可以同时指定y轴的范围,格式为轴的范围,格式为xmin xmax ymin ymax 12/15/20228MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社函数运算(函数运算(2/5)l函数极值函数极值一元函数的极小值一元函数的极小值多元函数的极小值多元函数的极小值12/15/20229MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社函数运算(函数运算(3/5)l函数求解函数求解使用函数使用函数fzero来求一元函数的零点,该函数的调用格式如下:来求一元函数的零点,该函数的调用格式如下:(1)x=fzero(fun,x0),x=fzero(fun,x1,x2):寻找:寻找x0附近或者附近或者区间区间x1,x2内内fun的零点,返回该点的的零点,返回该点的x坐标。坐标。(2)x=fzero(fun,x0,options),x=fzero(fun,x1,x2,options):通过:通过options设置参数。设置参数。(3)x,fval=fzero(.):返回零点的同时返回该点的函数值。:返回零点的同时返回该点的函数值。(4)x,fval,exitflag=fzero(.):返回零点、该点的函数值及:返回零点、该点的函数值及程序退出的标志。程序退出的标志。(5)x,fval,exitflag,output=fzero(.):返回零点、该点的函:返回零点、该点的函数值、程序退出的标志及选定的输出结果。数值、程序退出的标志及选定的输出结果。12/15/202210MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社函数运算(函数运算(4/5)l数值积分数值积分一元函数的积分一元函数的积分一元函数的矢量积分一元函数的矢量积分二重积分和三重积分二重积分和三重积分12/15/202211MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社函数运算(函数运算(5/5)l含参数函数的使用含参数函数的使用 用嵌套函数提供函数参数用嵌套函数提供函数参数用匿名函数提供函数参数用匿名函数提供函数参数12/15/202212MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社微分方程(微分方程(1/2)l 常微分方程初值问题常微分方程初值问题显式常微分方程显式常微分方程完全隐式常微分方程完全隐式常微分方程12/15/202213MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社微分方程(微分方程(2/2)l常微分方程边值问题常微分方程边值问题bvp4c函数用于求解常微分方程边值问题,该函数用于求解常微分方程边值问题,该函数调用格式如下:函数调用格式如下:sol=bvp4c(odefun,bcfun,solinit)sol=bvp4c(odefun,bcfun,solinit,options)12/15/202214MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社应用实例应用实例 分析火箭数据分析火箭数据(1/4)l给给定定表表示示火火箭箭速速度度的的数数据据,要要求求得得到到火火箭箭的速度、高度以及加速度。的速度、高度以及加速度。12/15/202215MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社应用实例应用实例 分析火箭数据分析火箭数据(2/4)l1.v=0.0 15.1 25.1 13.7 22.2 41.7.l39.8 54.8 57.6 62.6 61.6 63.9 69.6.l76.2 86.7 101.2 99.8 112.2 111.0.l116.8 122.6 127.7 143.4 131.3 143.0.l144.0 162.7 167.8 180.3 177.6 172.6.l166.6 173.1 173.3 176.0 178.5.l196.5 213.0 223.6 235.9 244.2 244.5.l259.4 271.4 270.5 294.5 297.6.l308.7 310.5 326.6 344.1 342.0 358.2 362.7;l2.lv=length(v);dt=0.2;t=(0:lv-1)*dt;l3.h=dt*cumsum(v);l4.acc=diff(v)./diff(t);l5.plot(t,v,t,h/5,t(2:end),acc)l6.legend(velocity altitude/5 acceleration)l7.title(vel,alt and acc measurements of a rocket)l8.xlabel(time(sec)l9.ylabel(v(m/s),h(m/5)and acc(m/sec2)代码清单代码清单 原始火箭数据原始火箭数据12/15/202216MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社应用实例应用实例 分析火箭数据分析火箭数据(3/4)l1.v=0.0 15.1 25.1 13.7 22.2 41.7.l39.8 54.8 57.6 62.6 61.6 63.9 69.6.l76.2 86.7 101.2 99.8 112.2 111.0.l116.8 122.6 127.7 143.4 131.3 143.0.l144.0 162.7 167.8 180.3 177.6 172.6.l166.6 173.1 173.3 176.0 178.5.l196.5 213.0 223.6 235.9 244.2 244.5.l259.4 271.4 270.5 294.5 297.6.l308.7 310.5 326.6 344.1 342.0 358.2 362.7;l2.dt=0.2;t=(0:length(v)-1)*dt;l3.for plt=1:6l4.order=plt*3;l5.y=polyval(polyfit(t,v,order),t);l6.subplot(2,3,plt)l7.plot(t,v,t,y);l8.str=sprintf(order%d,order);l9.title(str);l10.legend(velocity fitted vel)l11.xlabel(time(sec)l12.ylabel(vel(m/s)l13.end代码清单代码清单 曲线拟合实验火箭数据曲线拟合实验火箭数据12/15/202217MATLAB R2010a基础教程基础教程 清华大学出版社清华大学出版社应用实例应用实例 分析火箭数据分析火箭数据(4/4)l1.v=0.0 15.1 25.1 13.7 22.2 41.7.l39.8 54.8 57.6 62.6 61.6 63.9 69.6.l76.2 86.7 101.2 99.8 112.2 111.0.l116.8 122.6 127.7 143.4 131.3 143.0.l144.0 162.7 167.8 180.3 177.6 172.6.l166.6 173.1 173.3 176.0 178.5.l196.5 213.0 223.6 235.9 244.2 244.5.l259.4 271.4 270.5 294.5 297.6.l308.7 310.5 326.6 344.1 342.0 358.2 362.7;l2.dt=0.2;t=(0:length(v)-1)*dt;g=9.81;l3.acc=diff(v)./diff(t);l4.vs=polyval(polyfit(t,v,12),t);l5.accs=diff(vs)./diff(t);l6.treal=0 6 6.2 7 7.2 t(end);l7.areal=g*3 3-1-1 5 5;l8.plot(t,v,t(2:end),acc,.lt(2:end),accs,treal,areal)l9.title(attempt to smooth the acceleration)l10.xlabel(time(sec)l11.ylabel(v(m/s)and acc(m/sec2)代码清单代码清单 对光滑数据进行微分对光滑数据进行微分12/15/202218