matlab在数值分析中的应用.ppt
《matlab在数值分析中的应用.ppt》由会员分享,可在线阅读,更多相关《matlab在数值分析中的应用.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 微积分问题的计算机求解微积分问题的解析解微积分问题的解析解函数的级数展开与级数求和问题求解函数的级数展开与级数求和问题求解*数值微分数值微分数值积分问题数值积分问题曲线积分与曲面积分的计算曲线积分与曲面积分的计算*4.1 微积分问题的解析解 4.1.1 极限问题的解析解单变量函数的极限格式1:L=limit(fun,x,x0)格式2:L=limit(fun,x,x0,left 或 right)例:试求解极限问题 syms x a b;f=x*(1+a/x)x*sin(b/x);L=limit(f,x,inf)L=exp(a)*b例:求解单边极限问题 syms x;limit(exp(x
2、3)-1)/(1-cos(sqrt(x-sin(x),x,0,right)ans=12在(-0.1,0.1)区间绘制出函数曲线:x=-0.1:0.001:0.1;y=(exp(x.3)-1)./(1-cos(sqrt(x-sin(x);Warning:Divide by zero.(Type warning off MATLAB:divideByZero to suppress this warning.)plot(x,y,-,0,12,o)多变量函数的极限:格式:L1=limit(limit(f,x,x0),y,y0)或 L1=limit(limit(f,y,y0),x,x0)如果x0 或y
3、0不是确定的值,而是另一个变量的函数,如x-g(y),则上述的极限求取顺序不能交换。例:求出二元函数极限值 syms x y a;f=exp(-1/(y2+x2)*sin(x)2/x2*(1+1/y2)(x+a2*y2);L=limit(limit(f,x,1/sqrt(y),y,inf)L=exp(a2)4.1.2 函数导数的解析解函数的导数和高阶导数格式:y=diff(fun,x)%求导数 y=diff(fun,x,n)%求n阶导数例:一阶导数:syms x;f=sin(x)/(x2+4*x+3);f1=diff(f);pretty(f1)cos(x)sin(x)(2 x+4)-2 2 2
4、 x +4 x+3 (x +4 x+3)原函数及一阶导数图:x1=0:.01:5;y=subs(f,x,x1);y1=subs(f1,x,x1);plot(x1,y,x1,y1,:)更高阶导数:tic,diff(f,x,100);tocelapsed_time=原函数4阶导数 f4=diff(f,x,4);pretty(f4)2 sin(x)cos(x)(2 x+4)sin(x)(2 x+4)-+4-12-2 2 2 2 3 x +4 x+3 (x +4 x+3)(x +4 x+3)3 sin(x)cos(x)(2 x+4)cos(x)(2 x+4)+12-24-+48-2 2 2 4 2 3
5、 (x +4 x+3)(x +4 x+3)(x +4 x+3)4 2 sin(x)(2 x+4)sin(x)(2 x+4)sin(x)+24-72-+24-2 5 2 4 2 3 (x +4 x+3)(x +4 x+3)(x +4 x+3)多元函数的偏导:格式:f=diff(diff(f,x,m),y,n)或 f=diff(diff(f,y,n),x,m)例:求其偏导数并用图表示。syms x y z=(x2-2*x)*exp(-x2-y2-x*y);zx=simple(diff(z,x)zx=-exp(-x2-y2-x*y)*(-2*x+2+2*x3+x2*y-4*x2-2*x*y)zy=d
6、iff(z,y)zy=(x2-2*x)*(-2*y-x)*exp(-x2-y2-x*y)直接绘制三维曲面 x,y=meshgrid(-3:.2:3,-2:.2:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);surf(x,y,z),axis(-3 3-2 2-0.7 1.5)contour(x,y,z,30),hold on%绘制等值线 zx=-exp(-x.2-y.2-x.*y).*(-2*x+2+2*x.3+x.2.*y-4*x.2-2*x.*y);zy=-x.*(x-2).*(2*y+x).*exp(-x.2-y.2-x.*y);%偏导的数值解 quiver(x,y
7、,zx,zy)%绘制引力线例 syms x y z;f=sin(x2*y)*exp(-x2*y-z2);df=diff(diff(diff(f,x,2),y),z);df=simple(df);pretty(df)2 2 2 2 2 -4 z exp(-x y-z)(cos(x y)-10 cos(x y)y x +4 2 4 2 2 4 2 2sin(x y)x y+4 cos(x y)x y -sin(x y)多元函数的Jacobi矩阵:格式:J=jacobian(Y,X)其中,X是自变量构成的向量,Y是由各个函数构成的向量。例:试推导其 Jacobi 矩阵 syms r theta ph
8、i;x=r*sin(theta)*cos(phi);y=r*sin(theta)*sin(phi);z=r*cos(theta);J=jacobian(x;y;z,r theta phi)J=sin(theta)*cos(phi),r*cos(theta)*cos(phi),-r*sin(theta)*sin(phi)sin(theta)*sin(phi),r*cos(theta)*sin(phi),r*sin(theta)*cos(phi)cos(theta),-r*sin(theta),0 隐函数的偏导数:格式:F=-diff(f,xj)/diff(f,xi)例:syms x y;f=(x
9、2-2*x)*exp(-x2-y2-x*y);pretty(-simple(diff(f,x)/diff(f,y)3 2 2 -2 x+2+2 x +x y-4 x -2 x y -x(x-2)(2 y+x)参数方程的导数已知参数方程 ,求 格式:diff(f,t,k)/diff(g,t,k)例:syms t;y=sin(t)/(t+1)3;x=cos(t)/(t+1)3;pretty(diff(y,t,4)/diff(x,t,4)4.1.3 积分问题的解析解不定积分的推导:格式:F=int(fun,x)例:用diff()函数求其一阶导数,再积分,检验是否可以得出一致的结果。syms x;y=
10、sin(x)/(x2+4*x+3);y1=diff(y);y0=int(y1);pretty(y0)%对导数积分 sin(x)sin(x)-1/2-+1/2-x+3 x+1对原函数求对原函数求4 4 阶导数,再对结果进行阶导数,再对结果进行4 4次积分次积分 y4=diff(y,4);y0=int(int(int(int(y4);pretty(simple(y0)sin(x)-2 x +4 x+3例:证明 syms a x;f=simple(int(x3*cos(a*x)2,x)f=1/16*(4*a3*x3*sin(2*a*x)+2*a4*x4+6*a2*x2*cos(2*a*x)-6*a*
11、x*sin(2*a*x)-3*cos(2*a*x)-3)/a4 f1=x4/8+(x3/(4*a)-3*x/(8*a3)*sin(2*a*x)+.(3*x2/(8*a2)-3/(16*a4)*cos(2*a*x);simple(f-f1)%求两个结果的差ans=-3/16/a4定积分与无穷积分计算:格式:I=int(f,x,a,b)格式:I=int(f,x,a,inf)多重积分问题的MATLAB求解例:syms x y z;f0=-4*z*exp(-x2*y-z2)*(cos(x2*y)-syms x y z;f0=-4*z*exp(-x2*y-z2)*(cos(x2*y)-10*cos(x2
12、*y)*y*x2+.10*cos(x2*y)*y*x2+.4*sin(x2*y)*x4*y2+4*cos(x2*y)*x4*y2-sin(x2*y);4*sin(x2*y)*x4*y2+4*cos(x2*y)*x4*y2-sin(x2*y);f1=int(f0,z);f1=int(f1,y);f1=int(f1,x);f1=int(f0,z);f1=int(f1,y);f1=int(f1,x);f1=simple(int(f1,x)f1=simple(int(f1,x)f1=f1=exp(-x2*y-z2)*sin(x2*y)exp(-x2*y-z2)*sin(x2*y)f2=int(f0,z
13、);f2=int(f2,x);f2=int(f2,x);f2=simple(int(f2,y)f2=2*exp(-x2*y-z2)*tan(1/2*x2*y)/(1+tan(1/2*x2*y)2)simple(f1-f2)ans=0 顺序的改变使化简结果不同于原函数,但其误差为0,表明二者实际完全一致。这是由于积分顺序不同,得不出实际的最简形式。例:syms x y z int(int(int(4*x*z*exp(-x2*y-z2),x,0,1),y,0,pi),z,0,pi)ans=(Ei(1,4*pi)+log(pi)+eulergamma+2*log(2)*pi2*hypergeom(1
14、,2,-pi2)Ei(n,z)为指数积分,无解析解,但可求其数值解:vpa(ans,60)ans=4.2 数值微分 4.2.1 数值微分算法两种中心差分:4.2.2 中心差分方法及其 MATLAB 实现 function dy,dx=diff_ctr(y,Dt,n)yx1=y 0 0 0 0 0;yx2=0 y 0 0 0 0;yx3=0 0 y 0 0 0;yx4=0 0 0 y 0 0;yx5=0 0 0 0 y 0;yx6=0 0 0 0 0 y;switch n case 1 dy=(-diff(yx1)+7*diff(yx2)+7*diff(yx3)-diff(yx4)/(12*Dt
15、);L0=3;case 2 dy=(-diff(yx1)+15*diff(yx2)-15*diff(yx3)+diff(yx4)/(12*Dt2);L0=3;case 3 dy=(-diff(yx1)+7*diff(yx2)-6*diff(yx3)-6*diff(yx4)+.7*diff(yx5)-diff(yx6)/(8*Dt3);L0=5;case 4 dy=(-diff(yx1)+11*diff(yx2)-28*diff(yx3)+28*diff(yx4)-11*diff(yx5)+diff(yx6)/(6*Dt4);L0=5;end dy=dy(L0+1:end-L0);dx=(1:l
16、ength(dy)+L0-2-(n2)*Dt;调用格式:y为 等距实测数据,dy为得出的导数向量,dx为相应的自变量向量。例:求导数的解析解,再用数值微分求取原函数的14 阶导数,并和解析解比较精度。h=0.05;x=0:h:pi;syms x1;y=sin(x1)/(x12+4*x1+3);%求各阶导数的解析解与对照数据 yy1=diff(y);f1=subs(yy1,x1,x);yy2=diff(yy1);f2=subs(yy2,x1,x);yy3=diff(yy2);f3=subs(yy3,x1,x);yy4=diff(yy3);f4=subs(yy4,x1,x);y=sin(x)./(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 数值 分析 中的 应用
限制150内