当前位置:文档之家› 最新实验7微积分基本运算

最新实验7微积分基本运算

实验7微积分基本运算实验7 微积分基本运算一、实验目的学会用MATLAB 软件求高等数学中函数的极值、微分、积分的方法.二、实验内容与要求1.函数的的极限格式:limit(F,x,a) %计算符号表达式F=F(x)的极限值,当x →a 时;limit(F,x,a,’right ’) %计算符号表达式F 的右极限,当x →a +时。

limit(F,x,a,’left ’) %计算符号函数F 的左极限,当x a -→时。

【例1.61】>> syms x a t h n;>> L1=limit((cos(x)-1)/x) %缺省状态下,计算当x →0时的极限值error!!!!!!!!!>> L2=limit(1/x^3,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 =L2 =InfL3 =-InfL4 =1/xL5 =[ exp(a), 0]L6 =exp(6)2.求单变量函数的极值格式:fmin(F,a,b) %计算在区间a-b 上函数F 取最小值时的x 的值.说明:在5.3及5.3以上版本命令fmin 已改fminbnd,常用格式如下.X=fminbnd(F,a,b) %计算在区间a-b 上函数F 取最小值时的x 的值.[x,fval]=fminbnd(F,a,b)%计算在区间a-b 上函数F 的最小值fval 和对应的x 值。

【例1.62】 求函数f(x)=3226187x x x --+在区间(-2,4)的极小值,并作图.>> f=inline('2*x.^3-6*x.^2-18*x+7'); %建立内联函数f(x).>> [x,fval]=fminbnd(f,-2,4); %求函数f 的最小值和对应的x 的值。

>> fplot(f,[-2,4])结果为:x=3.0000Fval=-47.0000如图1.12所示.图1.12 例 1.62图形结果注意:用inline 建立的函数f,在funbnd 和fplot 命令中不用加单引号,而用M函数文件建立的函数则要加单引号.问题1.25:如何求函数f 的最大值?3.函数的微分格式:diff(S,’v ’,n) %对符号表达式S 中指定的符号变量v 计算S 的n 阶导数, 在缺省状态下,v=findsym(S),n=1.【例1.63】>>syms x y t>>1(sin(^2)*^2,2)D diff x y = %计算2222sin y x x∂∂ >>21(,)D diff D y = %计算2222sin y x y x ⎛⎫∂∂ ⎪∂∂⎝⎭>>3(^6,6)D diff t =计算结果为:1D = -4*sin(x^2)*x^2*y^2+2*cos(x^2)*y^22D =-8*sin(x^2)*x^2*y+4*cos(x^2)*y3D=720问题1.26:试一下输入diff(‘a^3*x^3-b*x’,a,2),有什么错误?为什么例1.63中的diff(1D,y),y可以不加单引号?(因为在‘syms x y t’中已经定义了符号变量y.如果A是一个矩阵,diff(A)有何意义(求每一列元素的差分)?4。

函数的积分(1)quad法数值积分格式:s=quad(fun,a,b) %近似地从a到b计算函数fun的数值积分,误差为610-s=quad(fun,a,b,tol)%用指定的绝对误差tol代替缺省误差。

s=quad8(fun,a,b,···)%用高精度进行计算,效率可能比quad更好.说明:s=quad8命令在6,x版本用quad代替.【例1.64】>> fun=inline('3*x.^2./(x.^3-2*x.^2+3)'); %构造一函数fun(x)=232323xx x-+>> s1=quad(fun,0,2)>> s2=quadl(fun,0,2)计算结果为:s1 =3.7224s2 =3.7224注意:用inline构造函数比用function构造函数简单;命令quadl最后是字母1,不是数字1.(2)梯形法数值积分格式:T=trapz(X,Y) %用梯形法计算Y在X点上的积分.【例1.65】>> X=-1:.1:1;>> Y=1./(1+25*X.^2); %注意这里用点运算>> T=trapz(X,Y) %计算函数Y从-1到1的积分计算结果为:T =0.5492注意:步长取短,结果较精确.(3)符号函数的积分格式:R=int(S,v) %对符号表达式S中指定的符号变量v计算不定积分.R=int(S,v,a,b) %对表达式S中指定的符号变量v计算从a到b的定积分.【例 1.66】>>syms x z t alpha>>I1 =int(-2*x/(1+x^3)^2)>>I2 =int(x/(1+z^2),z)>>I3 =int(I2,x,’a’,’b’) %这里积分区间a,b由于没定义,所以要加单引号>>I4 =int(x*log(1+x),0,1)>>I5 =int([exp(t),exp(alpha*t)])计算结果为:I1=-2/9/(x+1)+2/9*log(x+1)–1/9*log(x^2–x+1)–2/9*3^(1/2)*atan(1/3*(2*x-1)*…3^(1/2))-2/9*(2*x-1)/(x^2-x+1)I2 =x*atan(z)I3 =1/2*atan(z)*(b^2-a^2)I4 =1/4I5 =[ exp(t) , 1/alpha*exp(alpha*t)]问题 1。

27:输入I6=int(‘exp(-y^2)+log(y)’,1,10),结果较复杂,怎么办?(这时常用eval命令进一步求数值解)>>I6=1/2*pi^(1/2)*erf(10)+10*log(2)+10*log(5)-9-1/2*pi^(1/2)*erf(1)>>I61=eval(16)I61=14.16535.泰勒级数展开格式:taylor(f) %求出符号函数f在x=0处的5阶麦克劳林年型泰勒展开式。

Taylor(f,n,v,a) %求出符号函数f的在v=a点的n-1阶泰勒展开式。

【例 1.67】>>syms a x>>f=a/(x-10);>>y1=taylor(f,x,3) %求f在x=0处的2阶泰勒展开式计算结果为:>>y1=-1/10*a-1/100*a*x-1/1000*a*x^2>>y2=-1/6*a-1/36*a*(x-4)-1/216*a*(x-4)^26.傅里叶级数展开MTALAB中没有专门用于傅里叶级数展开的命令,可编一个M函数文件实现。

Function [a0,an,bn]=mfourier(f)Syms n xa0=int(f,-pi,pi)/pi;an=int(f*cos(n*x),-pi,pi)/pi;bn=int(f*sin(n*x),-pi,pi)/pi;【例 1.68】>>syms x>>f=x^2+x;>>[a0,an,bn]=mfourier(f)计算结果为:a0 =2/3*pi^2an =2*(n^2*pi^2*sin(pi*n)-a*sin(pi*n)+2*pi*n*cos(pi*n))/n^3/pibn =-2*(-sin(pi*n)+pi*n*cos(pi*n))/n^2/pi进一步化简:>>an=simple(an)%结果为2/n*pi*sin(pi*n)-4/pi/n^3*sin(pi*n)+4/n^2*cos(pi*n)>>bn=simple(bn)%结果为2/pi/n^2*sin(pi*n)-a/n*cos(pi*n)再经手工化简不难得到an=4*(-1)^n/n^2,bn=2*(-1)^(n-1)/n三、练习和思考① 求下列函数的极限。

y=(1+x)1/x 在x=0处的极限值;y=ln 2x/x 3在x 趋向于正无穷的极限值。

② 求下列函数的导数。

y=x 3 +4x 2 +8,y=ax 4+blogx,f=ma 2-na 2+mn (对a 求2阶导数)。

③ 用多种方法求下列积分,比较它们的结果。

30.50sin 6e t dt ππ-⎛⎫+ ⎪⎝⎭⎰ 22x e dx ∞--∞ 22ln x x dx ⎰④ 求下列函数的泰勒展开式。

y=e -2x x=0处6阶麦克劳林型泰勒展开式。

y=x/sinx x=2处10阶泰勒展开式。

⑤ 求下列函数的傅里叶展开式y=xy=sin2x 2四、提高内容1. 积分限均为常数的二重积分格式: q=dblquad(fun,xmin,xmax,ymin,ymax).q=dblquad(fun,xmin,xmax,ymin,ymax,tol) %指定精度tol.说明:调用函数quad 在区域[xmin,xmax,ymin,ymax]上计算二元函数z=f(x,y)的二重积分,其中,内外积分限为数值。

【例 1.69】>>fun=inline('y./sin(x)+x.*exp(y)');%建立二元函数fun=y xe xy +sin >>Q=dblquad(fun,1,3,5,7) 计算结果为:Q=3.83119e+0032. 内积分限为函数的二重积分方法一:q=int(int(fun,var1,inlower,inupper),var2,outmin,outmax). 说明:在由[inlower,inupper,outmin,outmax ]指定的区域上计算二元函数z=f(var1,var2)的二重积分,其中,内积分限inlower,inupper 为变量var2的函数,fun,inlower,inupper 是字母串表达式或符号表达式.【例 1.70】 计算单位圆域上的积分:I=dxdy y x e x y x )sin(221222+⎰⎰≤+先把二重积分转化为二次积分的形式:I=dx y x e dy y y x )sin(211211222+⎰⎰---- >>syms x y>>f=exp(-x^2/2)*sin(x^2+y);>>xlower=-sqrt(1-y^2);>>xupper=sqrt(1-y^2);>>Q=int(int(f,x,xlower,xupper),y,-1,1);>>vpa(Q,6)计算结果为:Q=0.536860方法二:在6.x 版本编制如下函数文件,实现二重积分,fun 为被积函数,inlower, inup, outlow,outup 积分内外限.[dint.m]function SS=dint(fun,inlow,inup,outlow,outup)y1=outlow;y2=outup;x1=inlow;x2=inup;f_p=funSS=quad(@G_yi,y1,y2,[],[],x1,x2,f_p);[G_yi.m]function f= G_yi(y,x1,x2,f_p)y=y(:);n=length(y);if isnumerric(x1)==1;xx1=x1*ones(size(y));elsexx1=feval(x1,y);endif isnumerric(x2)==1;xx2=x2*ones(size(y));elsexx2=feval(x2,y);endfor i=1:nf(i)=quad(f_p,xx1(i),xx2(i),[],[],y(i));endf=f(:);【例 1.71】 计算I =dy dx y x y ⎰⎰+41222])([. 解:先编制别数文件[x_low.m].function f=x_low(y)f=sqrt(y);再在命令窗口运行如下命令:>>ff=inline('x.^2+y.^2','x ','y ')>>SS=dint(ff, @x_low,2,1,4)SS=9058103.积分限均为常数的三重积分格式:triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax).。

相关主题