当前位置:文档之家› MATLAB结课作业

MATLAB结课作业

4.10 上机操作步骤1在MatLab 的命令窗口输入如下命令序列:clfsubplot(1,2,1) hold on grid on n=1:1000;m=1./n.*cos(n*pi/2); plot(n,m,'k.')观察数列的散点图22,当n 趋于无穷大时,数列趋于 0 subplot(1,2,2) hold on grid onn=500:10000;m=1./n.*cos(n*pi/2); plot(n,m,'k.')fplot('0.001',[500,10000]) fplot('-0.001',[500,10000]) axis([500,10000,-0.005,0.005])观察图23,当001.0=ε时,可以取N= 1000 ,当n>N 时有επε<<-2co s n 1n .图22 图232 在MatLab 的命令窗口输入如下命令序列:clfsubplot(1,2,1) hold on grid onfplot('x.*x',[1,3])观察函数图24, 当2x →时,2x y =的极限是 4subplot(1,2,2) hold on grid onfplot('x.*x',[1.9,2.1]) fplot('4.001',[ 1.9,2.1]) fplot('3.999',[ 1.9,2.1])axis([1.9997,2.0005,3.9989,4.0011]) % 调整显示图形的范围是该实验的重点 观察图25,当001.0=ε时, δ取 0.003 δ<-<2 0x 时,001.04<-y ?图24 图253 在MatLab 的命令窗口输入: syms xlimit((2.^x-log(2.^x)-1)./(1-cos(x)),x,0) 运行结果为ans = log(2)^2 理论上用洛必达法则计算该极限:xx x cos 112ln 2lim 0x ---→= 1 4 在MatLab 的命令窗口输入如下命令序列: (1)syms xy=sqrt(x+2)*(3-x)^4/(x+1)^5 diff(y,x) %求一阶导数 运行结果=y'1/2/(x+2)^(1/2)*(3-x)^4/(x+1)^5-4*(x+2)^(1/2)*(3-x)^3/(x+1)^5-5*(x+2)^(1/2)*(3-x)^4/(x+1)^6 x=1;eval(y) %求导数在x =1处的值 运行结果1'=x y = 0.8660(2)syms x y=exp(x)*cos(x)diff(y,x,4) %求)(4y运行结果)(4y = -4*exp(x)*cos(x)(3)已知yx y x z *)ln(2+=,求yx z x z x z ∂∂∂∂∂∂∂222,, 在MatLab 的命令窗口输入如下命令序列: syms x y zz=log(x+y^2)*x^y diff(z,x) 运行结果=xz∂∂ 1/(x+y^2)*x^y+log(x+y^2)*x^y*y/x diff(z,x,2) 运行结果=22xz∂∂-1/(x+y^2)^2*x^y+2/(x+y^2)*x^y*y/x+log(x+y^2)*x^y*y^2/x^2-log(x+y^2)*x^y *y/x^2 diff(diff(z,x),y) 运行结果=yx z∂∂∂2-2/(x+y^2)^2*x^y*y+1/(x+y^2)*x^y*log(x)+2*y^2/(x+y^2)*x^y/x+log(x+y^2)*x^y*log(x)*y/x+log(x+y^2)*x^y/x 5 (1)作函数f(x)的曲线,求f(x)的零点。

在MatLab 的命令窗口输入如下命令序列: syms xy=x^2*sin(x^2-x-2);d1=diff(y,x) % 求一阶导数d2=diff(d1,x) % 求二阶导数subplot(1,3,1) hold on grid onezplot(y,[-2 2]) %作函数f(x)的曲线title('f(x)')下面用作图观察法求函数f (x )的各零点:观察图26,可知函数f(x)在区间[-2,2]上有4个零点,分别为-1,0,2,还有一个零点位于区间[-2,-1]上,下面通过不断缩小零点的取值范围,在区间[-2,-1]上求函数f (x )的零点,输入命令序列:axis([-2,-1.5,-0.1,0.1]) %见图27 axis([-1.9,-1.8,-0.01,0.01]) %见图28axis([-1.85,-1.8,-0.001,0.001]) %见图29 axis([-1.84,-1.82,-0.001,0.001]) %见图30 axis([-1.825,-1.82,-0.001,0.001]) %见图31 axis([-1.823,-1.821,-0.001,0.001]) %见图32 axis([-1.822,-1.8215,-0.001,0.001]) %见图33 axis([-1.822,-1.8218,-0.0001,0.0001]) %见图34用作图法得零点的近似值为: -1.82192图29 图30 图31图32 图33 图34方法2在区间[-2,-2]上用求根公式求零点,在命令窗口输入如下命令: f1=char(y);图26 图27 图28fzero(f1,-2)运行结果得近似零点为-1.8220fzero(f1,-1)运行结果-1fzero(f1,0)运行结果0fzero(f1,2)运行结果 2比较作图法和求根公式法,结论是作图法更直观准确,求根公式法更快捷。

(2)作函数一阶导数的曲线,求驻点。

在MatLab的命令窗口输入如下命令序列:subplot(1,3,2)hold ongrid onezplot(d1,[-2,2])title ('一阶导数f’(x)')观察图36,可知一阶导数在区间[-2,2]有4个零点,近似值为-1.5,-0.8,0,1.5,下面用求根公式计算较精确的零点值,输入命令:f2=char(d1);x=fzero(f2,-1.5)eval(y)运行结果,记该零点为x1=-1.5326 ,f(x1)= 2.2364x=fzero(f2,-0.8)eval(y)运行结果,记该零点为x2=-0.7315 ,f(x2)= -0.3582x=fzero(f2,0)eval(y)运行结果,记该零点为x3=0 ,f(x3)= 0x=fzero(f2,1.5)eval(y)运行结果,记该零点为x4= 1.5951 ,f(x4)= -2.2080 根据函数单调性与一阶导数的关系,可得函数f(x)的单增区间为[-2,x1] ,[x2,x3] ,[x4,2] ,单减区间为[x1,x2] ,[x3,x4] 。

根据函数图形,可判别函数的极大值点为x1,x3 ,极小值点为x2,x4 。

(3)作函数二阶导数的曲线,求拐点。

在MatLab的命令窗口输入如下命令序列:subplot(1,3,3)hold ongrid onezplot(d2,[-2,2])title ('二阶导数f’’(x) ')图35 图36 图37观察图37,可知二阶导数在区间[-2,2]有4个零点,近似值为-1.9,-1.3,0.5,1.2,下面用求根公式计算较精确的零点值,输入命令: f3=char(d2); x=fzero(f3,-1.9) eval(y)运行结果,记该零点为x5= -1.9240 ,f(x5)= -1.7233 x=fzero(f3,-1.3) eval(y)运行结果,记该零点为x6= -1.2650 ,f(x6)= 1.2182 x=fzero(f3,0.5) eval(y)运行结果,记该零点为x7= 1.2404 ,f(x7)= -1.5254 x=fzero(f3,1.2) eval(y)运行结果,记该零点为x8= 1.2404 ,f(x8)= -1.5254根据函数凹凸性与二阶导数的关系,可得函数f(x)的凹区间为 [-2,-1][-1,-0.2][-0.2,2] ,凸区间为 [-1.7,-0.2][-0.2,1][1,2] 。

根据函数图形37,可判别函数的拐点为 (3,-0.6) 。

6 使用MatLab 软件求下列积分: (1)x xx x d sin cos 3⎰(2) x e x x xd 1e 2⎰+)( (3)dx x e x ⎰202cos π在MatLab 的命令窗口输入如下命令序列: (1)syms x;y=x*cos(x)*(sin(x))^(-3); int(y)运行结果:ans = -1/2*x/sin(x)^2-1/2/sin(x)*cos(x)(2) syms x;y=x*exp(x)*(exp(x)+1)^(-2); int(y)运行结果:ans = -1/2*x^2/exp(x^2)-1/2/exp(x^2) (3)syms x;y= exp(2*x)*cos(x); int(y,0,pi/2)运行结果:ans = 1/5*exp(pi)-2/5 (4) quad('exp(-x.^2)',0,1)运行结果:ans = 0.7468 7σd y 1y --12222⎰⎰++Dx x ,其中D 是由圆周122=+y x 及坐标轴所围成的在第一象限内的闭区域.具体步骤如下: (1)划定积分区域:ezplot('x^2+y^2-1',[0,1,0,1]) 结果如图38,D 为积分区域. (2)化二重积分σd )y (22⎰⎰+Dx 为累次积分⎰⎰+102-1022)y (dx x dy x .图38在MatLab 的命令窗口输入如下命令 syms x y z z=x^2+y^2;dx1=int(z,y,0,sqrt(1-x^2)); jf=int(dx1,0,1); 结果为:jf = 1/8*pi8用MatLab 创建函数pii.m 文件实现方法i 对π进行近似, n 代表展开阶数,6,,1i =, function zhi=pi1(n) syms x s t t=atan(x); s=taylor(t,n); x=1;zhi=4*eval(s);function zhi=pi2(n) syms x tDt=1/(2*x-1)^2;zhi=symsum(t,1,n);function zhi=pi3(n)syms x tt=(-1)^(x-1)/x^2;zhi=sqrt(12*symsum(t,x,1,n));function zhi=pi4(n)syms x tt=(-1)^(x-1)/(2*x-1)^3;zhi=(32*symsum(t,x,1,n))^(1/3);function zhi=pi5(n)syms x tt=sin(2*x-1)/(2*x-1)^3;zhi1=8*symsum(t,x,1,n);zhi=(1+sqrt(1+4*zhi1))/2;function zhi=pi6(n)syms x tt=(-1)^(x-1)/((2*x-1)*5^(2*x-1));zhi1=symsum(t,x,1,n);t=(-1)^(x-1)/((2*x-1)*239^(2*x-1));zhi2=symsum(t,x,1,n);zhi=16*zhi1-4*zhi2;在MatLab命令窗口输入format longpipi1(10)pi1(100)pi1(1000)pi2(10)numeric(ans) %把结果由分式表达形式变成小数形式pi2(100)numeric(ans)pi2(1000)numeric(ans)pi3(10)numeric(ans)pi3(100)numeric(ans)pi3(1000)numeric(ans)pi4(100)numeric(ans)pi4(1000)numeric(ans)pi4(100)numeric(ans)pi5(1000)numeric(ans)pi5(100)numeric(ans)pi5(1000)numeric(ans)pi6(10)numeric(ans)pi6(100)numeric(ans)pi6(1000)numeric(ans)执行结果填入下表:: 所给函数无法完成。

相关主题