当前位置:文档之家› 佛山科学技术学院Matlab实训报告

佛山科学技术学院Matlab实训报告

Matlab 实训报告班级: 姓名: 学号:一、上机目的1.学会运用MATLAB 的命令行格式。

2.了解MATLAB 的数据类型,掌握矩阵运算和数组运算。

3.通过实训培养学习应用和创新的能力。

二、上机内容……………………1)用Matlab 中的subplot 命令将一幅图分成四块,在各子图中分别绘制函数,3cos 2,5sin 1x y x y == x x y 3cos 5sin 3=和x x y 3cos 5sin 4+=的图像,区间取[0,5]。

2)用Matlab 命令求函数的极限:x x xx 2)1(lim +∞→=?,x e x x x cos 11lim 20---→=?,xx x x 2s i n 3553lim 2++∞→=?(注:开方函数用sqrt ) 3)用surf ,mesh 绘制曲面222z x y =+,]5,5[],5,5[-∈-∈y x 。

4) 求函数61223+-=x x y 的一阶和二阶导数,然后在同一坐标系下作出一阶和二阶导函数的图形。

5)在同一坐标系中,取自变量区间[15,200],用不同的颜色或线型分别画出下面四个函数的图形:7183.24,)111(3,)11(2,)11(11=++=+=+=+y x y x y x y xx x观测当x 增大时图形的走向。

(注:可选用’r ’,’g ’,’b ’颜色) 6)将函数23x ey -=(]4,4[-∈x )的图形分别向左和向右平移2个单位;然后将函数图形向上和向下平移2个单位。

7)求矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡351493372的行列式、逆矩阵、特征值和特征向量。

8)将函数4x y =(]2,2[-∈x )的图形以原点为中心,逆时针旋转60度角。

9)用莱布尼茨级数公式∑∞=+ -=1.1 2)1(4nn nπ计算π的近似值。

选做题:10)对莱布尼茨级数公式∑∞=+ -=1.1 2)1(4nn nπ利用while循环编写计算π的近似值的Matlab程序,要求pi与公式计算出π近似值的误差的绝对值小于0.0001。

三、上机方法和步骤,上机结果(写出代码和结果)第一题:1)用Matlab中的subplot命令将一幅图分成四块,在各子图中分别绘制函数,3cos2,5sin1xyxy==xxy3cos5sin3=和xxy3cos5sin4+=的图像,区间取[0,5]。

解题:x=0:0.01:5;y1=sin(5*x);y2=cos(3*x);y3=sin(5*x).*cos(3*x);y4=sin(5*x)+cos(3*x);subplot(2,2,1)plot(x,y1)subplot(2,2,2)plot(x,y2)subplot(2,2,3)plot(x,y3)subplot(2,2,4)plot(x,y4)第二题2)用Matlab 命令求函数的极限:(1)xx xx 2)1(lim +∞→=?,(2)x e x xx cos 11lim 20---→=?,(3)xx x x 2sin 3553lim 2++∞→=? 解题:实验程序为:(1)syms x ;limit(((1+x)/x)^2*x,x,inf)(2)syms x ;limit((1-sqrt(1-x^2)/exp(x)-cos(x)),x,0)(3)syms x ;limit(((3*x^2+5)/5*x+3)*sin(2/x),x,inf)结果为:(1)(2)(3)第三题,用surf,mesh绘制曲面22=+,]5,5z x y2-x。

∈y∈[[-],5,5解题:实验程序:x=-5:5;y=-5:5;[x,y]=meshgrid(x,y);z=2*x.^2+y.^2;surf(x,y,z)xlabel('横坐标x');ylabel('纵坐标y');zlabel('函数值z')结果如下:第四题,求函数6xy的一阶和二阶导数,然后在同一坐标系下作出=x-23+12一阶和二阶导函数的图形。

解题:程序如下,一阶:syms x;diff(2*x.^3-12*x+6,x,1)输出结果:二阶:syms x;diff(2*x.^3-12*x+6,x,2)输出结果:作图:x=-4:0.1:4;y1=6*x.^2 - 12; y2=12*x;plot(x,y1,x,y2,':')输出结果:第五题,在同一坐标系中,取自变量区间[15,200],用不同的颜色或线型分别画出下面四个函数的图形:7183.24,)111(3,)11(2,)11(11=++=+=+=+y x y x y x y xx x观测当x 增大时图形的走向。

(注:可选用’r ’,’g ’,’b ’颜色)。

解题:程序如下; x=15:0.1:200;y1=((x+1)/x).^x; plot(x,y1,'-r'); hold on ;y2=((x+1)/x).^(x+1); plot(x,y2,'-g'); hold on ;y3=((x+2)/(x+1)).^x; plot(x,y3,'-b'); hold on ; y4=2.7183; plot(x,y4,'+k');legend('y1=((x+1)/x).^x','y2=((x+1)/x).^(x+1)','y3=((x+2)/(x+1)).^x','y4=2.7183'); hold off输出结果:第六题,将函数23x ey -=(]4,4[-∈x )的图形分别向左和向右平移2个单位;然后将函数图形向上和向下平移2个单位。

解题:程序如下,x=-4:0.1:4;y=exp(3-x.^2); x1=x+2; x2=x-2; y1=y+2; y2=y-2;plot(x,y,x1,y,':',x2,y,'-.',x,y,x,y1,':',x,y2,'-.') xlabel('x');ylabel('y') 输出结果:第七题,求矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡351493372的行列式、逆矩阵、特征值和特征向量。

解题:程序如下,a=[2 7 3;3 9 4;1 5 3]; det(a)——计算行列式 输出结果:inv(a)——计算逆矩阵 输出结果:eig(a)——求特征值 输出结果:[x,d]=eig(a)——求特征向量输出结果:其中,X是矩阵,它的列是相应的特征向量,d的对角线元素是特征值。

第八题,将函数4xy=(]2,2[-∈x)的图形以原点为中心,逆时针旋转60度角。

解题:程序如下,x=-2:0.1:2;y=x.^4;x1=x*cos(pi/3)-y*sin(pi/3); y1=x*sin(pi/3)+y*cos(pi/3); plot(x,y,x1,y1,':');xlabel('x');ylabel('y');输出结果:第九题,用莱布尼茨级数公式∑∞=+ -=1.1 2)1(4nn nπ计算π的近似值。

解:程序如下,x=0;for i=1:2000x=vpa(x+(-1)^(i+1)/(2*i-1),30);pai(i)=vpa(4*x,22);error(i)=vpa(pi-4*x,22);endfor i=1:10i*200pai(i*200)error(i*200)end输出结果:200 3.13659268483881675041496970507760.0049999687509764880476736782017258 400 3.13909265749601272146623907935520.0024999960937805169964043039240867600 3.13992598808052996046171138354270.001666665509263278000931999736595800 3.14034265407807353479287179088540.00124999951171970366977159239393761000 3.14059265383979292596359650286940.000999999750000312499046880409938191200 3.14075932040113570546876071937460.000833333188657532993882663904769731400 3.1408783679666153377926261075270.000714285623177900670017275752306471600 3.14096765365082836491035650217860.00062499993896487355228688110071361800 3.14103709807710460738402087135440.000555555512688631078622511924918512000 3.1410926536210432286970258295580.00049999996875000976561755372133499其中第一列是级数的项数,第二列是π的近似值,第三列是计算误差。

从结果可以看出,前1000项可以精确到百分位,前2000项可以精确到千分位。

第十题,对莱布尼茨级数公式∑∞=+ -=1.1 2)1(4nn nπ利用while循环编写计算π的近似值的Matlab程序,要求pi与公式计算出π近似值的误差的绝对值小于0.0001。

解:程序如下,解题:四、结果分析(完成指定的思考题和作业题)matlab的基本使用方法,matlab的预定义函数,如何用matlab绘图,如何在matlab中编程,基于matlab的矩阵运算、符号运算、数值分析等。

MATLAB 的自带函数很多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用自己编函数。

这一点对程序非常有帮助,可以使程序简单,运行效率高,可以节省很多时间。

五、实训总结一个想法:matlab做数据分析,然后做文档总结,讲的时候总是感觉脱离了处理的实际过程,如果边讲边运行程序,没有充足准备,容易手忙脚乱。

所以可以编写一个概述性程序,运行程序,可以把整个处理过程一路走完,并且配合着在命令框中显示每步运行结果的解释,最终程序运行完,一个总结报告也形成了。

所以说,这个软件需要细心和耐性,它能解决很多数学计算问题,这是我们值得去研究和应用的软件。

相关主题