1 / 28

高 等 数 学

福州海峡职 业技术学院. 高 等 数 学. 第三节 Matlab数值计算功能与实验. 【教学目的】 1.了解Matlab如何借助可视化技术来解决数学中函数极限的概念引进与计算问题,并掌握相关的基本命令; 2.掌握用Matlab求一元函数的导数与微分和多元函数的偏导数与全微分的命令; 3.掌握用Matlab求一元函数常义积分与广义积分和多元函数二重积分的命令; *4.掌握用Matlab求微分方程的通解与特解的基本命令;. 第三节 Matlab数值计算功能与实验. 【实验要求】 熟练掌握如下常用命令:

gwyn
Download Presentation

高 等 数 学

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 福州海峡职 业技术学院 高 等 数 学

  2. 第三节 Matlab数值计算功能与实验 【教学目的】 1.了解Matlab如何借助可视化技术来解决数学中函数极限的概念引进与计算问题,并掌握相关的基本命令; 2.掌握用Matlab求一元函数的导数与微分和多元函数的偏导数与全微分的命令; 3.掌握用Matlab求一元函数常义积分与广义积分和多元函数二重积分的命令; *4.掌握用Matlab求微分方程的通解与特解的基本命令;

  3. 第三节 Matlab数值计算功能与实验 【实验要求】 熟练掌握如下常用命令: 1.求函数极限的命令: limit(f,x,x0)、limit(f,x,x0,‘left’)、limit(f,x,x0, ‘right’)、limit(f,x,inf)、limit(f,x,+inf)、limit(f,x,-inf)、limit(limit(f,x,x0),y,y0) 2.求函数导数的命令: diff(f,x)、 diff(f,x,n)、diff(diff(f,x,n),y,n)、 diff(diff(f,y,n),x,n) 3.求函数积分的命令:int(f)、int(f,x)、int(f,x,a,b)、int(f,a,inf)、quad(f,a,b,tol)、trapz(x,y)、int(int(f,x,a,b),y,c,d) 4.求解微分方程的命令:dsolve(‘方程’,’自变量’),dsolve(‘方程’,’初始条件’,’自变量’)

  4. 一、利用Matlab求函数极限的命令 1.limit(f,x,x0):求x→x0时f(x)的极限; 2.limit(f,x,x0,‘left’):求x→x0时f(x)的左极限; 3.limit(f,x,x0,‘right’):求x→x0时f(x)的右极限; 4.limit(f,x,inf):求x→∞时f(x)的极限; 5.limit(f,x,+inf):求x→+∞时f(x)的极限; 6.limit(f,x,-inf):求x→−∞时f(x)的极限. *7.limit(limit(f,x,x0),y,y0)或limit(limit(f,y,y0),x,x0):求x→x0,y→y0时f(x,y)的极限.

  5. 例1 绘制 的图像,研究当x→0,x→∞时的极限. 解:输入命令: x=linspace(-30,30,200); y=sin(x)./x; plot(x,y); grid on axis([-30,30,-2,2]) 显示图形: 从图上看,当x→0时,→1,当x→∞时, →0.

  6. 例2 求极限 解:输入命令: syms n %生成符号变量n f=(n^2+n)^(1/3)/(n+2); fn=limit(f,n,inf) 显示结果: fn =0 例3 求极限 解:输入命令: syms x %生成符号变量x f=(tan(x)-sin(x))/x^3; limit(f,x,0) 显示结果: ans =1/2

  7. 例4 研究极限 解:输入命令: syms x %生成符号变量x f=exp(1/x); limit(f,x,0) 显示结果:ans =NaN 事实上,当x→0时,函数 的极限不存在. 下面我们考察 的左、右极限. 输入命令: syms x f=exp(1/x); limit(f,x,0,'left') 显示结果:ans =0 输入命令: syms x f=exp(1/x); limit(f,x,0,'right') 显示结果:ans =inf 左、右极限分别为0,∞,从而看出当x→0时,函数极限不存在.

  8. 例5 求极限 . 解:输入命令: syms x f=x^(sin(x)); fx=limit(f,x,0) 显示结果: fx =1 例6 求极限 ,其中 为常数. 解:输入命令: syms a1 a2 a3 x %生成符号变量a1 a2 a3 x f=((a1^x+a2^x+a3^x)/3)^(1/x); fx=limit(f,x,0) 显示结果: fx =a1^(1/3)*a2^(1/3)*a3^(1/3)

  9. 例7 研究函数的连续性并作出函数的图形. 解:输入命令: fplot('(x^3+3*x^2-x-3)/(x^2+x-6)',[-5,4,-30,-30]) 显示图形: 由图可知:x=2是函数的无穷间断点;x趋于-3时,函数 的极限存在. 由函数在 x=−3无定义,可知x=−3是函数的可去间断点. 输入命令: limit((x^3+3*x^2-x-3)/(x^2+x-6),x,-3) 显示结果: ans =-8/5 输入命令: limit((x^3+3*x^2-x-3)/(x^2+x-6),x,2) 显示结果: ans =NaN

  10. *例8 求极限 . 解:输入命令: syms x y f=sin(x^2+y^2)/(x^2+y^2); fx=limit(limit(f,x,0),y,0) 显示结果: fx =1

  11. 二、利用Matlab求导数和积分 1.利用Matlab求一元函数导数与微分和多元函数偏导数与全微分的命令 (1) diff(f,x) :求f(x)的一阶导数f´(x),微分后面只需加一个dx; (2) diff(f,x,n) : 求f(x)的n阶导数f(n)(x) (n是具体整数). *(3) diff(diff(f,x,n),y,n) 或diff(diff(f,y,n),x,n):表示求 . 例9 设f(x)=e2x,计算 f´(x). 解:输入命令: syms x f=exp(2*x); diff(f,x) 显示结果: ans = 2*exp(2*x)

  12. 例10 设,求 . 解:输入命令: syms x a b f=sin(a*x)*cos(b*x); y1=diff(f,x) y2=diff(f,x,2) 显示结果: y1 = cos(a*x)*a*cos(b*x)-sin(a*x)*sin(b*x)*b y2= -sin(a*x)*a^2*cos(b*x)-2*cos(a*x)*a*sin(b*x)*b-sin(a*x)*cos(b*x)*b^2

  13. 例11 求由 所确定的隐函数的导数. 解:输入命令: syms x y F=x*y-exp(x)+exp(y)+sin(x); y1=-diff(F,x)/diff(F,y) 显示结果: y1 =(-y+exp(x)-cos(x))/(x+exp(y)) 例12 求由参数方程所确定的隐函数的导数 . 解:输入命令: syms t x=t-sin(t); y=1-cos(t); y1=diff(y,t)/diff(x,t) 显示结果: y1 = sin(t)/(1-cos(t))

  14. *例13 设,计算及 . 解:输入命令: syms x y z dx dy dz z=exp(x*y)*sin(x+y) zx=diff(z,x,1) 显示结果: zx =y*exp(x*y)*sin(x+y)+exp(x*y)*cos(x+y) zy=diff(z,y,1) 显示结果: zy=x*exp(x*y)*sin(x+y)+exp(x*y)*cos(x+y) zxx=diff(diff(z,x,1),x,1) 显示结果: zxx= y^2*exp(x*y)*sin(x+y)+2*y*exp(x*y)*cos(x+y)-exp(x*y)*sin(x+y) zyy=diff(diff(z,y,1),y,1)

  15. 显示结果: zyy = x^2*exp(x*y)*sin(x+y)+2*x*exp(x*y)*cos(x+y)-exp(x*y)*sin(x+y) zxy=diff(diff(z,x,1),y,1) 显示结果: y*x*exp(x*y)*sin(x+y)+y*exp(x*y)*cos(x+y)+x*exp(x*y)*cos(x+y) dz=zx*dx+zy*dy 显示结果: (y*exp(x*y)*sin(x+y)+exp(x*y)*cos(x+y))*dx+(x*exp(x*y)*sin(x+y)+exp(x*y)*cos(x+y))*dy *例14设 ,而 求. 解:输入命令: syms x z u v zu zv dux dvx z=u^2*v; zu=diff(z,u);zv=diff(z,v); u=log(x);v=sin(x); dux=diff(u,x);dvx=diff(v,x); dzx=zu*dux+zv*dvx 显示结果: dzx = 2*u*v/x+u^2*cos(x)

  16. *例15设 ,确定二元函数 ,求 和 . 解:输入命令: syms x y z F F=z^2*y-x^2*z^3+x^4+y^3-6; Fx=diff(F,x);Fy=diff(F,y);Fz=diff(F,z); zx=-Fx/Fz;zy=-Fy/Fz; zx,zy 显示结果: zx = (2*x*z^3-4*x^3)/(2*z*y-3*x^2*z^2) zy = (-z^2-3*y^2)/(2*z*y-3*x^2*z^2)

  17. 2.利用Matlab求常义积分与广义积分和二重积分的命令2.利用Matlab求常义积分与广义积分和二重积分的命令 int(f):求函数f的不定积分,默认变量为t; int(f,x):求函数f的不定积分,变量为x; int(f,x,a,b):求上限为b,下限为a的函数f关于指定变量x的定积分的精确值; vpa(f,10):在上述命令执行的基础上,进一步求f关于指定变量x的定积分的近似值; int(f,x,a,inf):求上限为无穷大,下限为a的函数f关于指定变量x的广义积分; *quad(f,a,b,tol):抛物线积分法(simpson)返回积分值,f为被积函数,a,b为积分上下限; *trapz(x,y):梯形积分法返回积分值,x为积分区间离散化变量,y表示被积函数,是与x同维数的向量.

  18. *int(int(f,y,y1,y2),x,a,b):求先y后x的二重积分; *int(int(f,x,x1,x2),y,c,d):求先x后y的二重积分;; *int(int(f,x,a,b),y,c,d)或int(int(f,y,c,d),x,a,b):求矩形区域 上的二重积分;

  19. 例16 计算不定积分. 解:输入命令: syms x; int(exp(x)*cos(x),x) 显示结果: ans = 1/2*exp(x)*cos(x)+1/2*exp(x)*sin(x) 例17 计算不定积分. 解:输入命令: syms x; int(1/(x^2*sqrt(1+x^2))) 显示结果: ans = -1/x*(1+x^2)^(1/2)

  20. 例18计算定积分. 解:输入命令: syms x; int(1/(3+7*sin(x)),x,0,2*pi) 显示结果: ans = 1/10*i*10^(1/2)*pi 例19 计算定积分 . syms a; int(sqrt(a^2+x^2),x,0,a) ans =1/2*a*2^(1/2)*(a^2)^(1/2)+1/2*a^2*log(a+2^(1/2)*(a^2)^(1/2))-1/4*a^2*log(a^2)

  21. 例20 计算广义积分 . 解:输入命令:syms x; int(1/(x^2+2*x+2),x,-inf,+inf) 显示结果:ans = pi *例21 分别用trapz、quad函数求定积分 的值. 解:输入命令: x=0:0.001:1; y= sin(x.^2)./(1 +x); format long; yl =trapz(x,y) 显示结果:yl =0.18078963138040 输入命令: syms x ; y='sin(x.^2)./( x +1)'; y2=quad(y,0,1) 显示结果:y2 =0.18078963147536

  22. 例22 求定积分 . 解:输入命令: syms x y=int(sin(x)/x,x,0,1) 显示结果: y= sinint(1) 上述积分表明该广义积分收敛于sinint(l),只是无法用初等函数表示,如果想得到它的一个10位有效数字的近似值即数值解,可以输入命令: vpa(y,10) 显示结果: ans = .9460830704

  23. *例23 计算二重积分,其中D是由 x=1,x=2和y=0,y=1所围成的闭区域.(积分限为常数) 解:输入命令: plot([1 2 2 1 1],[0 0 1 1 0]) axis([0 3 0 3]) title('积分区域') 显示图形 syms x y int(int(x^2*y^3,x,1,2),y,0,1) 显示结果: 7/12

  24. *例24 计算二重积分,其中D是由两条抛物线所围成的闭区域.(积分限为函数) 解:输入命令: %画出积分区域图形 x=0:0.001:1.3;y1=sqrt(x);y2=x.^2; plot(x,y1,x,y2) gtext('y=sqrt(x)') gtext('y=x^2') title('积分区域') %确定积分限 syms x y y1='y-sqrt(x)=0';y2='y-x^2=0'; [x,y]=solve(y1,y2) 得交点x=0,y=0:x=1,y=1. %求积分 syms x y f=x*sqrt(y);y1=sqrt(x);y2=x^2; int(int(f,y,y2,y1),x,0,1) 显示结果:6/55

  25. *例25 用极坐标计算二重积分 ,其中D是由圆 所围成的闭区域. 解:输入命令: %画出积分区域图形 x=-1:0.01:1; y=sqrt(1-x.^2); plot(x,y) hold on y=-sqrt(1-x.^2); plot(x,y) axis square grid on %求积分 syms x y f=1-x^2-y^2; y1=-sqrt(1-x^2); y2=sqrt(1-x^2); int(int(f,y,y1,y2),x,-1,1) 显示结果:1/2*pi

  26. *三、利用Matlab求微分方程的命令 dsolve(‘方程’,’自变量’),表示求常微分方程的通解; dsolve(‘方程’,’初始条件’,’自变量’),表示求常微分方程在给定初始条件下的特解; 在表达微分方程命令中,用字母D表示求微分,D2,D3表示求高阶微分,任何D后面所跟的字母为函数,自变量的标示符可以自行指定,若缺省,则表示由系统指定.

  27. *例26 求可分离变量的微分方程的通解. 解:输入命令: y=dsolve('Dy=2*x*y','x') 显示结果: C1*exp(x^2) *例27 求一阶线性非齐次的微分方程的通解. 解:输入命令: y=dsolve('Dy-2*y/(x+1)=(x+1)^2','x') 显示结果: y = (x+C1)*(x+1)^2

  28. *例28求高阶可降次的微分方程 的通解. 解:输入命令: y=dsolve('D2y=x*sin(x)','x') 显示结果:-2*cos(x)-x*sin(x)+C1*x+C2 *例29 求二阶常系数线性齐次的微分方程 的通解. 解:输入命令: y=dsolve('D2y-4*Dy+4*y=0','x') 显示结果:C1*exp(2*x)+C2*exp(2*x)*x *例30 求二阶常系数线性齐次的微分方程 满足条件的特解. 解:输入命令: y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x') 显示结果:3*exp(-2*x)*sin(5*x)

More Related