收藏 分享(赏)

MATLAB语言程序设计基础赵伟.doc

上传人:hskm5268 文档编号:7057831 上传时间:2019-05-04 格式:DOC 页数:28 大小:464KB
下载 相关 举报
MATLAB语言程序设计基础赵伟.doc_第1页
第1页 / 共28页
MATLAB语言程序设计基础赵伟.doc_第2页
第2页 / 共28页
MATLAB语言程序设计基础赵伟.doc_第3页
第3页 / 共28页
MATLAB语言程序设计基础赵伟.doc_第4页
第4页 / 共28页
MATLAB语言程序设计基础赵伟.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、实验报告课程名称: MATLAB 语言程序设计基础 院 (系): 机械电子工程系 专业班级: 通信 0802 姓 名: 赵伟 学 号: 08 指导教师: 王燕妮 年 月 日实验一 MATLAB 系统环境及基本环境一, 实验名称:MATLAB 桌面环境及基本使用方法。二, 实验目的:1 熟悉启动和退出 matlab 的方法。2 熟悉 matlab 命令窗口的方法。3 掌握建立矩阵的方法。4 掌握 matlab 各种表达式的书写规则及常用函数的应用。二, 实验内容:运用 matlab 工具执行绘制函数图形,求解线性方程,求解全部根,和积分的求解等操作。三, 实验例题。例 1.分别绘制函数 y=2

2、和 y=sinx的曲线.x实验命令:x=-2*pi:pi/180:2*pi;plot(x,2.(-abs(x),:,x,sin(x);实验分析:第一条命令建立 x向量,X 从-2 变化到 2 ,第二条命令绘制曲线。命令执行后,打开一个图形窗口,并在其中显示两个函数的曲线,虚线为 y=2 ,实线为 y=sinx,如图所示。x实验结果: 例题总结:matlab 是很方便的绘图工具,可以很方便的得到函数图像,在用几何方法解方程中能给人们带来很大方便。例 2.求方程 2x -3x +71x -9x+13=0的全部根。 532实验命令;p=2,0,-3,71,-9,13;x=roots(p)实验分析:第

3、一条命令建立多项式系数向量,第二条命令调用 roots函数求根实验结果:x =-3.4914 1.6863 + 2.6947i1.6863 - 2.6947i0.0594 + 0.4251i0.0594 - 0.4251i例 3.求解线性方程组。 23945482zyx实验命令:a=2,3,-1;8,2,3;45,3,9;b=2;4;23;x=inv(a)*b实验分析:前两条命令建立系数矩阵 a和列向量 b,第三条命令求根。Inv(a)为 a的逆矩阵,也可用 x=ab求根。实验结果:x =0.55310.2051-0.2784实验小结:例题总结:其中前两条命令建立矩阵 a和向量 b,第三条命令

4、求根。Inv(a)为 a的逆矩阵,也可用 a/b求解。例 4.求积分 的结果。dx)1ln(0实验命令:quad(x.*log(1+x),0,1)实验结果:ans =0. 2500实验小结:也可以通过符号计算符号积分。例如:sysm xint(x*log(I+x),0,1)。实验二 MATLAB 数据表示及矩阵基本运算一 实验名称:MATLAB 的数据表示及矩阵的基本运算。二 实验目的:1 掌握生成特殊矩阵的方法。2 掌握矩阵分析的方法。3 用矩阵求逆法解线性方程组。三 实验内容:建立矩阵,矩阵拆分,矩阵基本运算,矩阵点乘,矩阵乘法,逻辑运算等操作。四 实验例题:例 1:矩阵建立。0. 直接输

5、入法,实验命令:A=1,2,3;4,5,6;A(4,5)=10实验结果:A =1 2 3 0 04 5 6 0 00 0 0 0 00 0 0 0 101. 建立大矩阵,实验命令:A=1,2,3;4,5,6;7,8,9;C=A,eye(3);ones(3),A实验结果:C =1 2 3 1 0 04 5 6 0 1 07 8 9 0 0 11 1 1 1 2 31 1 1 4 5 61 1 1 7 8 9实验小结:在 MATLAB中,不需要对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容自动进行分配。例 2:矩阵拆分。实验命令:A=1,2,3,4,5;6,7,8,9,10;11,

6、12,13,14,15;16,17,18,19,20A(2:3,1:2:5)实验结果:A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20A(2:3,1:2:5)A =1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 20ans =6 8 1011 13 15实验小结:利用 MATLAB的冒号运算,可以很容易的从给出的矩阵中获得子矩阵,这样处理矩阵比循环法快得多。例 3:矩阵加法,乘法,转至运算。实验命令:x=2,-1,0;3,2,-4;y=x-1实验结果:y =1 -2 -12 1 -5实验命令:A=

7、1,2,3;4,5,6;B=1,2,3;0,7,4C=A*B实验结果:C=28 1461 32实验命令:A=71,3,8;3,2,65;45,8,3;B=A实验结果:B =71 3 453 2 88 65 3实验小结:利用 MATLAB计算矩阵将很容易的完成复杂计算。例 4. 计算表达式 i2714cos5实验命令:x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)实验分析:其中 pi和 I都是 MATLAB的预定义变量,分别代表圆周率 和虚数单位。实验结果:x =1.1980 + 0.6572i例 5.利用 M文件建立 MYMAT矩阵。(1)启动有关编辑程序或 MATLA

8、B文本编辑器,并输入待建矩阵:MYMAT=101,102,103,104,105,106,107,108,109;201,202,203,204,205,206,207,208,209;301,302,303,304,305,306,307,308,309;(2)把输入的内容存盘。(3)在 MATLAB命令窗口输入 mymatrix,即运行该文件,就会自动建立一个名为 MY-MAT的矩阵,可供以后使用。例 6.建立 5阶方阵 A,判断 A的元素是否能被 3整除。实验命令:A=24,35,13,22,63;23,39,47,80,80;90,41,34,56,75; 45,65,98,45,76

9、;34,23,56,87,98A =24 35 13 22 6323 39 47 80 8090 41 34 56 7545 65 98 45 7634 23 56 87 98实验分析:rem(A,3)是矩阵 A的每个元素处以 3的余数矩阵。判断余数矩阵是否为 0 时,0 被扩展为与 A 同维的零矩阵,P 是比较的结果矩阵。实验结果:p=rem(A,3)=0p =1 0 0 0 10 1 0 0 01 0 0 0 11 0 0 1 00 0 0 1 0实验说明:rem(A,3)是矩阵 A的每个元素处以 3的余数矩阵。判断余数矩阵是否为 0 时,0 被扩展为与 A 同维的零矩阵,P 是比较的结果

10、矩阵。.实验三 选择结构,循环结构程序设计一实验名称:选择结构,循环结构程序设计二实验目的:1.掌握建立和执行 M 文件的方法。2.掌握利用 switch 语句实现选择结构的方法。3.掌握 try 语句的使用。4.掌握 for 语句的实现方法。利用向量代替循环操作的方法。三实验内容:用分支结构计算分段函数,用 SWITCH 完成循环程序设计,函数调用等操作。五 实验例题:例 1.分别建立 33,22和与矩阵 A同样大小的零矩阵。(1)建立一个 33零矩阵。实验命令:zeros (3)ans =0 0 00 0 00 0 0(2)建立一个 32零矩阵。实验命令:zeros(3,2)ans =0

11、00 00 0(3)设 A为 23矩阵,则可以利用 zeros(size(A)建立一个与矩阵 A同样大小的零矩阵。命令:A=1 2 3;4 5 6;zeros(size(A)ans =0 0 00 0 0例 2.建立随机矩阵:(1) 在区间20,50内均匀分布的 5 阶随机矩阵。(2) 均值为 0.6,方差为 0.1的 5 阶正态分布随机矩阵。实验命令:x=20+(50-20)*rand(5)x =48.5039 42.8629 38.4630 32.1712 21.736726.9342 33.6940 43.7581 48.0641 30.586038.2053 20.5551 47.65

12、44 47.5071 44.395034.5795 44.6422 42.1462 32.3081 20.295846.7390 33.3411 25.2880 46.8095 24.1667y=0.6+sqrt(0.1)*randn(5)y =0.4632 0.9766 0.5410 0.6360 0.69310.0733 0.9760 0.8295 0.9373 0.17750.6396 0.5881 0.4140 0.6187 0.82590.6910 0.7035 1.2904 0.5698 1.11340.2375 0.6552 0.5569 0.3368 0.3812例 3 .将

13、101125 等 25个数填入一个 5行 5列的表格中,使其每行每列及对角线的和均为 565。实验命令:M=100+magic(5)M =117 124 101 108 115123 105 107 114 116104 106 113 120 122110 112 119 121 103111 118 125 102 109实验小结:一个 5 阶魔方矩阵的每行每列急对角线的和均为 65,对其每个元素都加 100后,这些和变为 565。4.求 4阶希尔伯特矩阵及其逆矩阵。实验命令:format ratH=hilb(4)H =1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1

14、/4 1/5 1/6 1/4 1/5 1/6 1/7 H=invhilb(4)H =16 -120 240 -140 -120 1200 -2700 1680 240 -2700 6480 -4200 -140 1680 -4200 2800 例 5. 求(x+y)的展开式。实验命令:pascal(6)ans =1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 6 21 56 126 252 实验小结:矩阵次对角线的元素 1,5,10,5,1即为展开式的系数。例 6. 先建立 55矩阵 A,然后将

15、 A的第一行元素乘以 1,第二行乘以2, 第五行乘以 5。实验命令:A=17,0,1,0,45;2,8,12,3,12;4,0,15,6,7;19,18,2,3,8;11,18,21,6,9;D=diag(1:5);D*Aans =17 0 1 0 45 4 16 24 6 24 12 0 45 18 21 76 72 8 12 32 55 90 105 30 45 实验小结:用一个对角矩阵左乘一个矩阵时,相当于用对角矩阵的第一个元素乘以该矩阵的第一行,用对角阵的第二个元素乘以该矩阵的第二行,以此类推。因此,只需按要求构造一个对角矩阵 D,并用 D左乘 A即可。例 7. 矩阵的转置实验命令:A

16、=71,3,-8;2,-9,5;0,5,4;B=AB =71 2 0 3 -9 5 -8 5 4 例 8. 矩阵的旋转实验命令:A=57,56,19;56,31,9;0,84,61;B=rot90(A)B =19 9 61 56 31 84 57 56 0 rot90(A,4)ans =57 56 19 56 31 9 0 84 61 例 9.求方阵 A的逆矩阵,且验证 A与 A是否是互逆的。实验命令:A=1,1,5;-1,1,3;2,1,1;B=inv(A);A*Bans =1 0 0 * 1 * * * 1 实验小结:上述计算可见 AB=BA,即 AA=AA,故 A与 A是互逆的。例 10

17、. 用求逆矩阵的方法解线性方程组实验命令:A=1,2,3;1,4,9;1,8,27;b=5,-2,6;x=inv(A)*bx =23 -29/2 11/3 例 11.用求特征根的方法解方程实验命令:p=3,-7,0,5,2,-18;A=compan(p);x1=eig(A)x1 =5160/2363 1 + 1i 1 - 1i -1397/1510 + 670/931i -1397/1510 - 670/931i x2=roots(p)x2 =5160/2363 1 + 1i 1 - 1i -1397/1510 + 670/931i -1397/1510 - 670/931i 实验小结:先构造

18、与方程对应的多项式的伴随矩阵 A,再求 A的特征根。A 的特征根即为方程的根。实验四 熟悉函数文件,M 文件的调试一 实验名称:熟悉函数文件,M 文件的调试。二 实验目的:1.理解函数文件的概念。2.掌握定义和调用 MATLAB 函数的方法。三 实验内容:建立并调用 M 文件。 四 实验例题:例 1.建立一个命令文件将变量 a,b的值互换,然后运行该命令文件实验命令:a=1:10;b=11,12,13,14;15,16,17,18;c=a;a=b;b=c;aa =11 12 13 14 15 16 17 18 bb =Columns 1 through 9 1 2 3 4 5 6 7 8 9

19、Column 10 10 实验说明:调用该命令文件时,不用输入参数,也没有输出参数,文件自身建立需要的变量。例 2 .求一元二次方程 ax +bx+c=0的根。2实验命令:a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);a=?4b=?78c=?54x1=-0.7188,x2=-18.7812a=?23b=?-6c=?51x1=0.13043+1.4834i,x2=0.13043-1.483

20、4i例 3.计算分段函数:y= 10,)cos(2xxx实验命令:x=input(请输入 x的值:);if x=10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x);endy请输入 x的值:10y =2222/221 例 4.输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。实验命令:c=input(请输入一个字符, s);if c=AE=zeros(size(X);F=eye(size(X);n=1;while norm(F,1)0E=E+F;F=F*X/

21、n;n=n+1;endEexpm(X)Enter X:0.5,2,0;1,-1,-0.5;0.9,1,0.75E =2.6126 2.0579 -0.63760.7420 0.7504 -0.59422.5678 2.3359 1.5549ans =2.6126 2.0579 -0.63760.7420 0.7504 -0.59422.5678 2.3359 1.5549例 13 求【100,200】之间第一个能被 21整除的整数。实验命令:for n=100:200if rem(n,21)=0continueend breakendnn =105例 14 若一个数等于它的各个真因子之和,就称

22、该数为完数。求【1,500】之间的全部万数。实验命令:for m=1:500s=0;for k=1:m/2if rem(m,k)=0s=s+k;end endif m=sdisp(m);endend628496例 15 用筛选法求自然数范围内的全部素数。实验命令:m=input(m=);p=1:m;p(1)=0;for i=2:sqrt(m)for j=2*i:i:mp(j)=0;endendn=find(p=0);p(n)m=20ans =2 3 5 7 11 13 17 19例 16 编写函数文件,求半径 r的圆的面积和周长。实验命令:function s,p=fcircle(r)s=pi

23、*r*r;p=2*pi*r;s,p=fcircle(10)s =314.1593p =62.8319例 17 利用函数文件,实现直角坐标(x,y)与极坐标()之间的转换。实验命令:function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);例 18 一个 3位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出 100999之间的水仙花数。实验命令:for m=100:999m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);if m=m1*m1*m1+m2*m2*m2+m3*m3*

24、m3disp(m)end end153370371407例 19 写出下列程序的执行结果。实验命令:s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=as=s+k;enddisp(s);39 48 57 66例 20 从键盘上输入若干数,当输入 0时候结束输入,求这些数的平均值和它们的和。实验命令:sum=0;n=0;x=input(Enter a number(end in 0):);while x=0sum=sum+x;n=n+1;x=input(Enter a number(end in 0):);endif (n0)summean=sum/

25、nendEnter a number(end in 0):67Enter a number(end in 0):89Enter a number(end in 0):93Enter a number(end in 0):70Enter a number(end in 0):0sum =319mean =79.7500例 21根据矩阵指数的幂级数展开式求矩阵指数。实验命令:eX=I+X+X=input(Enter X:);E=zeros(size(X);F=eye(size(X);n=1;while norm(F,1)0E=E+F;F=F*X/n;n=n+1;endEexpm(X)Enter X

26、:0.5,2,0;1,-1,-0.5;0.9,1,0.75E =2.6126 2.0579 -0.63760.7420 0.7504 -0.59422.5678 2.3359 1.5549ans =2.6126 2.0579 -0.63760.7420 0.7504 -0.59422.5678 2.3359 1.5549例 22 求【100,200】之间第一个能被 21整除的整数。实验命令:for n=100:200if rem(n,21)=0continueend breakendnn =105例 23 若一个数等于它的各个真因子之和,就称该数为完数。求【1,500】之间的全部万数。实验命令

27、:for m=1:500s=0;for k=1:m/2if rem(m,k)=0s=s+k;end endif m=sdisp(m);endend628496例 24用筛选法求自然数范围内的全部素数。实验命令:m=input(m=);p=1:m;p(1)=0;for i=2:sqrt(m)for j=2*i:i:mp(j)=0;endendn=find(p=0);p(n)m=20ans =2 3 5 7 11 13 17 19例 25 编写函数文件,求半径 r的圆的面积和周长。实验命令:function s,p=fcircle(r)s=pi*r*r;p=2*pi*r;s,p=fcircle(1

28、0)s =314.1593p =62.8319例 26 利用函数文件,实现直角坐标(x,y)与极坐标()之间的转换。实验命令:function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);x=input(Please input x= :);Please input x= :2 y=input(Please input y= :)Please input y= :3y =3rho,the=tran(x,y);rhorho =3.6056thethe =0.9828x=input(Please input x= :);Please i

29、nput x= :2 y=input(Please input y= :)Please input y= :3y =3rho,the=tran(x,y);rhorho =3.6056thethe =0.9828实验五 编写绘图程序一实验名称:编写绘图程序 二实验目的:1.掌握绘制二维图形的常用函数。2.掌握绘制三维图形的常用函数。3.掌握绘制图形的辅助操作。4.掌握图形对象属性的基本操作。5.掌握利用图形对象进行绘图操作的方法。三实验内容:利用 MATLAB 绘制函数图形。四实验例题:例 1在 区间内,绘制曲线20x )2sin(5.0xeyx实验命令:x=0:pi/100:2*pi;y=2*

30、exp(-0.5*x).*sin(2*pi*x);plot(x,y)实验分析:求 Y时,指数函数和正弦函数之间要用点乘运算。实验结果:例 2:用不同线型和颜色在同一坐标内绘制曲线 及其包络线。)2sin(5.0xeyx实验命令:x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp(-0.5*x1).*sin(2*pi*x1);plot(x,y1,k:,x,y2,b-,x1,y3,rp);实验分析:b表示蓝色点划线, y:d表示黄色虚线并且用菱形符标识数据点。实验结果:

31、例 3:绘制 的极坐标图。)2cos(in实验命令:theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,k);实验分析:polar 函数用来绘制坐标图,其调用格式为:polar(theta,rho,选项)其中,theta 为极坐标极角,tho 为极坐标矢径。实验结果:例 4:绘制两个直径相等的圆管的相交图。实验命令:m=30;z=1.2*(0:m)/m;r=ones(size(z);theta=(0:m)/m*2*pi;x1=r*cos(theta);y1=r*sin(theta);z1=z*ones(1,m+1);

32、x=(-m:2:m)/m;x2=x*ones(1,m+1);y2=r*cos(theta);z2=r*sin(theta);surf(x1,y1,z1);axis equal,axis offhold onsurf(x2,y2,z2);axis equal,axis offtitle(两个等直径圆管的交线);hold off实验分析:mesh 函数用于绘制三维网格图,surf 用于绘制三维曲面图,各线条之间的补面用颜色填充。实验结果:例 5:从不同视点绘制多峰函数曲面。实验命令:subplot(2,2,1);mesh(peaks);view(-37.5,30);title(azimuth=-3

33、7.5,elevation=30)subplot(2,2,2);mesh(peaks);view(0,90);title(azimuth=0,elevation=90)subplot(2,2,3);mesh(peaks);view(90,0);title(azimuth=90,elevation=0)subplot(2,2,4);mesh(peaks);view(-7,-10);title(azimuth=-7,elevation=-10)实验分析:视点函数 view,调用格式 view(az,el)az为方位角,el 为仰角,他们均以度为单位。实验结果:例 6用不同标度在同一坐标内绘制曲线 y=2e sin(2 )及曲线。x5.0实验命令:y2=1.5e sinx.。x1.0x1=0:pi/100:2*pi;x2=0:pi/100:3*pi;y1=exp(-0.5*x1).*sin(2*pi*x1);y2=1.5*exp(-0.1*x2).*sin(x2);plotyy(x1,y1,x2,y)实验结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报