《Matlab微积分问题计算机求解实验.ppt》由会员分享,可在线阅读,更多相关《Matlab微积分问题计算机求解实验.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Matlab微微积分分问题计算机求解算机求解实验微积分实验微积分实验 符号表达式基础操作符号表达式基础操作1符号微积分符号微积分2数值积分数值积分3卫星轨道的长度卫星轨道的长度4国土面积的计算国土面积的计算5u sym 函数用来建立单个符号变量,一般调用格函数用来建立单个符号变量,一般调用格式为:式为:q 符号对象的建立:sym 和 syms符号对象的建立符号对象的建立例:a=sym(a)符号变量=sym(A)参数 A 可以是一个数或数值矩阵,也可以是字符串a 是符号变量b 是符号常量 b=sym(1/3)b=sym(1/3)c 是符号矩阵 c=sym(1 ab;c d)c=sym(1 ab;
2、c d)q 符号对象的建立:sym 和 syms符号对象的建立符号对象的建立u syms 命令用来建立多个符号变量,一般调用命令用来建立多个符号变量,一般调用格式为:格式为:syms 符号变量符号变量1 符号变量符号变量2.符号符号变量变量n 例:syms a b c a=sym(a);a=sym(a);b=sym(b);b=sym(b);c=sym(c);c=sym(c);经常用经常用q 符号表达式的建立:例:建立符号表达式通常有以下2种方法:(1)用 sym 函数直接建立符号表达式。(2)使用已经定义的符号变量组成符号表达式。y=sym(sin(x)+cos(x)y=sym(sin(x)+
3、cos(x)符号表达式的建立符号表达式的建立符号表达式的替换符号表达式的替换subs(f,x,a)用用 a 替换字符函数替换字符函数 f 中的字符变量中的字符变量 x a 是可以是是可以是 数数/数值变量数值变量/表达式表达式 或或 字符变字符变量量/表达式表达式若 x 是一个由多个字符变量组成的数组或矩阵,则 a 应该具有与 x 相同的形状的数组或矩阵。q 用给定的数据替换符号表达式中的指定的符号变量subs subs 举例举例 f=sym(2*u);f=sym(2*u);subs(f,u,2)subs(f,u,2)f2=subs(f,u,u+2)f2=subs(f,u,u+2)a=3;a=
4、3;subs(f2,u,a+2)subs(f2,u,a+2)subs(f2,u,a+2)subs(f2,u,a+2)syms x y syms x y f3=subs(f,u,x+y)f3=subs(f,u,x+y)subs(f3,x,y,1,2)subs(f3,x,y,1,2)ans=4f2=2*(u+2)ans=14ans=2*(a+2)+2)f3=2*x+2*yans=6u 例:指出下面各条语句的输出结果f=2*u下面的命令运行结果会是什么?subs(f3,x,y,x+y,x+y)计算函数值计算函数值练习:练习:符号表达式的数值化符号表达式的数值化R=vpa(A)或或 R=vpa(A,d
5、)对符号表达式对符号表达式A求给定精度的值;求给定精度的值;d:输出数值的有:输出数值的有效位数效位数Vpa的默认精度是的默认精度是23位。位。q 对符号求值的命令为vpa,即Variable precision arithmeticdigits(25);p=vpa(pi)w=vpa(1+sqrt(5)/2,4)计算极限计算极限limit(f,x,a):计算计算limit(f,a):当当默认变量默认变量趋向于趋向于 a 时的极限时的极限limit(f):计算计算 a=0 时的极限时的极限limit(f,x,a,right):计算右极限计算右极限limit(f,x,a,left):计算左极限计算
6、左极限例:计算例:计算 ,syms x h n;syms x h n;L=limit(log(x+h)-log(x)/h,h,0)L=limit(log(x+h)-log(x)/h,h,0)M=limit(1-x/n)n,n,inf)M=limit(1-x/n)n,n,inf)计算导数计算导数g=diff(f,v):求符号表达式:求符号表达式 f 关于关于 v 的导的导数数g=diff(f):求符号表达式:求符号表达式 f 关于默认变量的关于默认变量的导数导数g=diff(f,v,n):求:求 f 关于关于 v 的的 n 阶导数阶导数q diff syms x;syms x;f=sin(x)+
7、3*x2;f=sin(x)+3*x2;g=diff(f,x)g=diff(f,x)z=y2*sin(x2);z=y2*sin(x2);dxd2y=diff(diff(z,x,1),y,2)dxd2y=diff(diff(z,x,1),y,2)计算导数计算导数练习:练习:计算积分计算积分int(f,v,a,b):计算定积分计算定积分int(f,a,b):计算关于默认变量的定积分计算关于默认变量的定积分int(f,v):计算不定积分计算不定积分int(f):计算关于默认变量的不定积分计算关于默认变量的不定积分 syms x;f=(x2+1)/(x2-2*x+2)2;syms x;f=(x2+1)/
8、(x2-2*x+2)2;I=int(f,x)I=int(f,x)K=int(exp(-x2),x,0,inf)K=int(exp(-x2),x,0,inf)例:计算例:计算 和和计算积分计算积分练习:练习:符号求和符号求和 syms n;f=1/n2;syms n;f=1/n2;S=symsum(f,n,1,inf)S=symsum(f,n,1,inf)S100=symsum(f,n,1,100)S100=symsum(f,n,1,100)symsum(u,n,n0,nn):symsum(f,a,b):关于关于默认变量默认变量求和求和例:计算级数例:计算级数 及其前及其前100项的部分和项的部
9、分和例:计算函数级数例:计算函数级数 syms n x;f=x/n2;syms n x;f=x/n2;S=symsum(f,n,1,inf)S=symsum(f,n,1,inf)TaylorTaylor级数展开级数展开taylor(f):求求f在默认自变量在默认自变量=0处的处的5阶阶Taylor级数展开式定积分级数展开式定积分taylor(f,n,x):求求f在默认自变量在默认自变量x=0处的处的n-1阶阶Taylor级数展开式定积分级数展开式定积分taylor(f,n,x,a):求求f在默认自变量在默认自变量x=a处处的的n-1阶阶Taylor级数展开式定积分级数展开式定积分 syms x
10、;syms x;taylor(exp(x),x,7,-1)taylor(exp(x),x,7,-1)上机作业上机作业1.2.3.4.5.数值积分数值积分函数函数quad()采用递推自适应采用递推自适应Simpson法计算积分,精度较法计算积分,精度较高,较常使用。高,较常使用。q=quad(fun,a,b)q=quad(fun,a,b,tol)功能:求一元函数功能:求一元函数fun的积分,积分上限和下限分别为的积分,积分上限和下限分别为a和和b,绝对误差为,绝对误差为tol,默认时取值,默认时取值10-6,函数,函数fun是待求解是待求解的对象,可以是字符串、内联函数、函数文件名的函数句的对象
11、,可以是字符串、内联函数、函数文件名的函数句柄。柄。Simpson Formula数值积分数值积分【例】求【例】求exp(-x2)在在0,1上的积分。上的积分。1、f=inline(exp(-x.2);内联函数内联函数 q1=quad(f,0,1)数值积分数值积分【例】求【例】求exp(-x2)在在0,1上的积分。上的积分。2、编写被积函数表达式,函数名为、编写被积函数表达式,函数名为quad1.mfunction f=quad1(x)f=exp(-x.2);q2=quad(quad1,0,1)数值积分数值积分【例】求【例】求exp(-x2)在在0,1上的积分。上的积分。3、编写被积函数表达式
12、,函数名为、编写被积函数表达式,函数名为f=(x).exp(-x.2);q2=quad(f,0,1)数值积分数值积分(2)梯形法(被积函数由一个表格定义)梯形法(被积函数由一个表格定义)trapz函数采用梯形法求取数值积分,适用于由表格形式定义函数采用梯形法求取数值积分,适用于由表格形式定义的函数关系的求定积分问题,求值速度快,但精度差。的函数关系的求定积分问题,求值速度快,但精度差。q=trapz(Y)q=trapz(X,Y)其中向量其中向量X,Y定义函数关系定义函数关系Y=f(X)。【例】求【例】求exp(-x2)在在0,1上的积分。上的积分。X=0:0.01:1;Y=exp(-X.2);
13、q=trapz(X,Y)上机作业上机作业取一定数量的点,利用梯形数值积分取一定数量的点,利用梯形数值积分公式近似计算圆周率公式近似计算圆周率pipi数值积分数值积分(3)二重积分的数值求解二重积分的数值求解 dblquad函数就可以直接求出上述二重定积分的数值解。该函数的调用函数就可以直接求出上述二重定积分的数值解。该函数的调用格式为:格式为:I=dblquad(f,a,b,c,d,tol,trace)功能:该函数求功能:该函数求f(x,y)在在a,bc,d区域上的二重定积分。参数区域上的二重定积分。参数tol,trace的用法与函数的用法与函数quad完全相同。完全相同。trace控制是否展
14、现积分过程,若取非控制是否展现积分过程,若取非0则则展现积分过程,取展现积分过程,取0则不展现,缺省时取则不展现,缺省时取trace=0。数值积分数值积分【例】计算二重定积分【例】计算二重定积分(1)建立一个函数文件fxy.m:function f=fxy(x,y)f=exp(-x.2/2).*sin(x.2+y);(2)调用dblquad函数求解。I=dblquad(fxy,-2,2,-1,1)f=inline(exp(-x.2/2).*sin(x.2+y)I=dblquad(f,-2,2,-1,1)Fourier级数级数定理 设周期为 的周期函数 f(x)满足收敛定理条件,则它的Fouri
15、er级数展开式为:其中系数 为:Fourier级数的级数的Matlab程序程序A,B,F=fseries(f,x,n,a,b)其中f为待展开的函数,x为自变量,n为展开项数,a,b为展开区间,省略为-pi,pi,A,B为记录Fourier级数的系数向量F为返回的Fourier级数的展开式Fourier级数的级数的Matlab程序程序具体程序:functionA,B,F=fseries(f,x,n,a,b)if nargin=3 a=-pi;b=pi;end%若输入为3个参数,表示函数f(x)在-pi,pi内进行展开 L=(b-a)/2;Fourier级数的级数的Matlab程序程序 if a+
16、b subs(f,x,x+L+a);end A=int(f,x,-L,L);%f(x)在在-pi,pi内展开内展开 B=;for i=1:n an=int(f*cos(i*pi*x/L),x,-L,L)/L;bn=int(f*sin(i*pi*x/L),x,-L,L)/L;endFourier级数的级数的Matlab程序程序 A=A,an;%记录所有cos前面的系数 B=B,bn;%记录所有sin前面的系数 F=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L);%记录得到的Fourier展开式 Fourier级数的级数的Matlab程序程序例:考虑方波函数例:考虑方波函数
17、f(x)=abs(x)/x,定义域定义域 为为-pi,pi,并且并且x 不等于不等于0。将将f(x)进行进行Fourier展开,具体展开,具体 命令如下:命令如下:syms x;f=abs(x)/x;%给出待展开的函数给出待展开的函数xx=-pi:pi/200:pi;xx=xx(xx=0);xx=sort(xx,-eps,eps);Fourier级数的级数的Matlab程序程序 yy=subs(f,x,xx);%计算f(x)的值 for i=1:20 A,B,F=fseries(f,x,n);y=subs(F,x,xx);subplot(4,5,n);plot(xx,yy);%画出f(x)的图
18、像 hold on plot(xx,y);%画出Fourier级数的图像 endFourier级数的级数的Matlab程序程序 练习:试求出函数y=sin(x)在0,pi/2上的 Fourier 级数展开式。卫星的轨道长度 我国第一颗人造地球卫星近地点我国第一颗人造地球卫星近地点 距地球表面为距地球表面为h=439km,远地点距地球表面,远地点距地球表面H=2384km,地球半径为,地球半径为R=6371km,求该卫星,求该卫星的轨道长度。的轨道长度。问题问题卫星的轨道长度人造卫星轨道可视为平面上的椭圆,由于地球人造卫星轨道可视为平面上的椭圆,由于地球位于卫星椭圆轨道的一个焦点上,根据近地点位
19、于卫星椭圆轨道的一个焦点上,根据近地点距离和远地点距离可分别计算出椭圆长半轴、距离和远地点距离可分别计算出椭圆长半轴、椭圆半焦距、椭圆短半轴为椭圆半焦距、椭圆短半轴为 4.8707e+004国土面积的计算 现要根据瑞士地图计算其国土面积。于现要根据瑞士地图计算其国土面积。于 是对地图作如下的测量:以西向东方向为是对地图作如下的测量:以西向东方向为x轴,轴,由南向北方向为由南向北方向为y轴,选择方便的原点,并将从最西轴,选择方便的原点,并将从最西边界到最东边界在边界到最东边界在x轴上的区间适当地划分为若干段,轴上的区间适当地划分为若干段,取足够多的分点取足够多的分点xi,在每个分点的,在每个分点
20、的y方向测出南边界方向测出南边界点和北边界点的对应坐标点和北边界点的对应坐标y1和坐标和坐标y2,数据如表,数据如表(单位单位mm):根据地图比例知:根据地图比例知18mm相当于相当于40km,试由上表计算瑞士国土的近似面积,试由上表计算瑞士国土的近似面积(精确值为精确值为41822km2)问题问题国土面积的计算x7.010.513.017.534.040.544.548.056.0y1444547505038303034y24459707293100110110110 x61.068.576.580.591.096.0101.0104.0106.5y1363441454643373328y2
21、117118116118118121124121121x111.5118.0123.5136.5142.0146.0150.0157.0158.0y1326555545250666668y2121122116838182868568国土面积的计算国土面积的计算r 数据处理数据处理Import data 把数据存为矩阵变量把数据存为矩阵变量A利用梯形法数值计算命令利用梯形法数值计算命令trapz计算。参考答案:计算。参考答案:d=4.2414e+004 r可以编写辛普森数值计算公式的程序可以编写辛普森数值计算公式的程序r用拟合的方法求出被积函数,再利用用拟合的方法求出被积函数,再利用MATLAB的命令的命令quad谢谢!