MATLAB课件第九章微积分基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章微积分基础1函数的极限(符号解法)1.1一元函数求极限函数limit格式limit(F,x,a)%计算符号表达式F=F(x)当x→a时的极限值。limit(F,a)%用命令findsym(F)确定F中的自变量,设为变量x,再计算F当x→a时的极限值。limit(F)%用命令findsym(F)确定F中的自变量,设为变量x,再计算F当x→0时的极限值。limit(F,x,a,'right')或limit(F,x,a,'left')%计算符号函数F的单侧极限:左极限x→a-或右极限x→a+。【例1】symsxathn;L1=limit((cos(x)-1)/x)L2=limit(1/x^2,x,0,'right')L3=limit(1/x,x,0,'left')L4=limit((log(x+h)-log(x))/h,h,0)v=[(1+a/x)^x,exp(-x)];L5=limit(v,x,inf,'left')L6=limit((1+2/n)^(3*n),n,inf)计算结果为:L1=0L2=infL3=-infL4=1/xL5=[exp(a),0]L6=exp(6)注:在求解之前,应该先声明自变量x,再定义极限表达式fun,若0x为,则可以用inf直接表示。如果需要求解左右极限问题,还需要给出左右选项。【例2】试分别求出tan函数关于pi/2点处的左右极限。symst;f=tan(t);L1=limit(f,t,pi/2,'left'),L2=limit(f,t,pi/2,'right')L1=InfL2=-Inf【例3】求以下极限1)312lim20xxx2)xxxt3)21(lim解:编程如下:symsxt;L1=limit((2*x-1)/(x^2+3))L2=limit((1+2*t/x)^(3*x),x,inf)回车后可得:L1=-1/3L2=exp(6*t)1.2多元函数求极限求多元函数的极限可以嵌套使用limit()函数,其调用格式为:limit(limit(f,x,x0),y,y0)或limit(limit(f,y,y0),x,x0)【例4】求极限:xxyyx)sin(lim30symsxy;f=sin(x*y)/x;limit(limit(f,x,0),y,3)ans=3注:如果x0或y0不是确定的值,而是另一个变量的函数,如)(ygx,则上述的极限求取顺序不能交换。【例5】求极限:xyxyyx42lim00解:编程如下:symsxy;f=(2-sqrt(x*y+4))/(x*y);limit(limit(f,x,0),y,0)回车后可得:ans=-1/42符号微分函数diff(differential)格式diff(S,'v')、diff(S,sym('v'))%对表达式S中指定符号变量v计算S的1阶导数。diff(S)%对表达式S中的符号变量v计算S的1阶导数,其中v=findsym(S)。diff(S,n)%对表达式S中的符号变量v计算S的n阶导数,其中v=findsym(S)。diff(S,'v',n)%对表达式S中指定的符号变量v计算S的n阶导数。【例6】已知函数(1)xytan(2)xey,分别求关于x的导数解:编程如下symsx;D1=diff(tan(x))D2=diff(exp(x))回车得:D1=tan(x)^2+1D2=exp(x)【例7】计算2222)sin(xxy,2222sinxyxy,)6(6)(tsymsxytD1=diff(sin(x^2)*y^2,2)D2=diff(D1,y)D3=diff(t^6,6)计算结果为:D1=-4*sin(x^2)*x^2*y^2+2*cos(x^2)*y^2D2=-8*sin(x^2)*x^2*y+4*cos(x^2)*yD3=720Matlab的符号运算工具箱中并未提供求取偏导数的专门函数,这些偏导数任然可以通过diff()函数直接实现。假设已知二元函数),(yxf,若想求)/(nmnmyxf,则可以用下面的函数求出:f=diff(diff(f,x,m),y,n)或f=diff(diff(f,y,n),x,m)【例8】已知函数yxz2sin2,求;2yxz;2xyz解:编写程序如下;symsxyD1=diff(diff(x^2*sin(2*y),x),y)D2=diff(diff(x^2*sin(2*y),y),x)回车后得:D1=4*x*cos(2*y)D2=4*x*cos(2*y)【例9】xyyyxxZZyxyxyyxf,,Z,523),(22求设解:编程如下:symsxyzxx=diff(3*x*y-2*y+5*x^2*y^2,x,2)zyy=diff(3*x*y-2*y+5*x^2*y^2,y,2)Dxy=diff(diff(3*x*y-2*y+5*x^2*y^2,x),y)回车后得:zxx=10*y^2zyy=10*x^2Dxy=20*x*y+33符号积分使用Matlab的符号计算功能,可以计算出许多积分的解析解和精确解,只是有些精确解显得冗长繁杂,这时可以用vpa或eval函数把它转换成位数有限的数字,有效数字的长度可按需选取。符号法计算积分非常方便,常常用它得到的结果跟近似计算的结果进行比较。3.1定积分函数int(integral)格式R=int(S,v)%对符号表达式S中指定的符号变量v计算不定积分。注意的是,表达式R只是函数S的一个原函数,后面没有带任意常数C。R=int(S)%对符号表达式S中的符号变量v计算不定积分,其中v=findsym(S)。R=int(S,v,a,b)%对表达式s中指定的符号变量v计算从a到b的定积分R=int(S,a,b)%对符号表达式s中的符号变量v计算从a到b的定积分,其中v=findsym(S)。【例10】用函数int()分别计算xdxxsin,xdxysin,dx4解:在命令窗口输入:I1=int('x*sin(x)')I2=int('y*sin(x)',x)I3=int('4')回车得到:I1=sin(x)-x*cos(x),I2=-y*cos(x),I3=4*x【例11】计算以下定积分和不定积分1sin2txdx,dtet,dtetsymsxtalphaINT1=int(2*x,sin(t),1)INT2=int([exp(t),exp(alpha*t)])计算结果为:INT1=1-sin(t)^2INT2=[exp(t),1/alpha*exp(alpha*t)]【例12】计算定积分(1)dxxaa022(2)dxxx40122解:在命令窗口输入:symsxaINT1=int(sqrt(a^2-x^2),0,a)INT2=int((x+2)/sqrt(2*x+1),0,4)回车可得:INT1=(pi*a^2)/4INT2=22/3【例13】计算101ln)(2dyeyy解:在命令窗口输入:I=int('exp(-y^2)+log(y)',1,10)回车得到:I=-1/2*pi^(1/2)*erf(1)-9+1/2*pi^(1/2)*erf(10)+10*log(2)+10*log(5)从输出的结果可以看出,结果很复杂,下面是用两种方式进行转换的输出结果,试比较它们的差别。输入:eval('-1/2*pi^(1/2)*erf(1)-9+1/2*pi^(1/2)*erf(10)+10*log(2)+10*log(5)')结果:ans=14.1653输入:vpa(-1/2*pi^(1/2)*erf(1)-9+1/2*pi^(1/2)*erf(10)+10*log(2)+10*log(5))结果:ans=14.1652537225807897414142644265673.2多元函数的积分【例14】求以下积分:1)10sinyyxdxdyx2)yydxxedy0102在命令窗口输入:symsxyINT1=int(int(x*sin(x),x,y,sqrt(y)),y,0,1)INT2=int(int(x*exp(-y^2),x,0,sqrt(y)),y,0,1)回车可得:INT1=5*sin(1)-4*cos(1)-2INT2=1/4-1/(4*exp(1))另外,对yydxxedy0102改变积分顺序后变成11022xydyxedx,按此积分顺序编程积分得:INT2=int(int(x*exp(-y^2),y,x^2,1),x,0,1)回车可得:INT2=1/4-1/(4*exp(1))可见结果相同。【例15】计算dydxyxy))((41222在命令窗口输入:symsxyI=int(int('x^2+y^2',x,sqrt(y),2),y,1,4)vpa(I,6)回车后可得:I=1006/105,ans=9.58095【例16】计算单位圆域上的积分222)sin(22yxxdxdyyxeI解:先把二重积分转化为二次积分的形式:111122222)sin(yyxdxyxedyI在命令窗口输入:symsxyI=int(int('exp(-x^2/2)*sin(x^2+y)',x,-sqrt(1-y^2),sqrt(1-y^2)),y,-1,1)vpa(I,6)回车后可得:ans=.536860+.562957e-8*i【例17】计算积分Dyxdxdye22,其中D为222ayx解:先把二重积分转化为二次积分极坐标的形式2002arrdred在命令窗口输入:symsthetaraI=int(int(exp(-r^2)*r,r,0,a),theta,0,2*pi)回车可得:I=-pi*(1/exp(a^2)-1)【例18】计算三重积分xdxdydz,其中为三个坐标面及平面12zyx所围成的闭区域。解:将三重积分化为累次积分得:xdxdydz=yxxxdzdydx21021010在窗口输入如下程序:symsxyzI=int(int(int('x',z,0,1-x-2*y),y,0,(1-x)/2),x,0,1)回车得:I=1/48【例19】计算三重积分zdxdydz,其中是由曲面22yxz及平面4z所围成的闭区域。解:将三重积分化为累次积分得:zdxdydz=420202zdzdd在窗口输入如下程序:symsthetapzI=int(int(int('p*z',z,p^2,4),p,0,2),theta,0,2*pi)回车得:I=64/3*pi4函数零值问题4.1代数多项式方程的求根对于多项式方程,可用多项式求根指令求解,使用格式为:root(p)。每次只能求出一个一元多项式的根,该命令不能用于求方程组的解;必须把多项式方程变成Pn(x)=0的形式,参数p是多项式的系数向量,该向量的分量由多项式的系数构成,排序是从高次幂系数到低次幂系数,缺少的幂次数用零填补;其结果将输出多项式方程的所有实数根和复数根。【例20】:用代数方程的求根函数root()求方程x^4+5x^2+3x=20的根。首先,在命令窗口输入:fplot('[x^4+5*x^2+3*x-20,0]',[-2.5,2.5]);grid;按回车键后得到如图所示图形,从中可知函数与x轴有交点,也就是有根,并且从图中能够大致估算到根的位置。-2.5-2-1.5-1-0.500.511.522.5-30-20-100102030405060图4.1然后,再在命令窗口输入:roots([1053-20]),按回车键后得到ans=0.1458+2.76

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功