MATLAB语言程序设计基础赵伟

上传人:仙*** 文档编号:157031577 上传时间:2022-09-28 格式:DOC 页数:29 大小:464KB
返回 下载 相关 举报
MATLAB语言程序设计基础赵伟_第1页
第1页 / 共29页
MATLAB语言程序设计基础赵伟_第2页
第2页 / 共29页
MATLAB语言程序设计基础赵伟_第3页
第3页 / 共29页
点击查看更多>>
资源描述
实验报告课程名称: MATLAB语言程序设计基础 院 (系): 机械电子工程系 专业班级: 通信0802 姓 名: 赵伟 学 号: 08 指导教师: 王燕妮 年 月 日 实验一 MATLAB系统环境及基本环境一, 实验名称:MATLAB桌面环境及基本使用方法。二, 实验目的:1 熟悉启动和退出matlab的方法。2 熟悉matlab命令窗口的方法。3 掌握建立矩阵的方法。4 掌握matlab各种表达式的书写规则及常用函数的应用。二, 实验内容:运用matlab工具执行绘制函数图形,求解线性方程,求解全部根,和积分的求解等操作。三, 实验例题。例1.分别绘制函数y=2和y=sinx的曲线.实验命令: x=-2*pi:pi/180:2*pi;plot(x,2.(-abs(x),:,x,sin(x); 实验分析:第一条命令建立x向量,X从-2变化到2,第二条命令绘制曲线。命令执行后,打开一个图形窗口,并在其中显示两个函数的曲线,虚线为y=2,实线为y=sinx,如图所示。实验结果: 例题总结:matlab是很方便的绘图工具,可以很方便的得到函数图像,在用几何方法解方程中能给人们带来很大方便。例2.求方程2x-3x+71x-9x+13=0的全部根。 实验命令;p=2,0,-3,71,-9,13;x=roots(p)实验分析:第一条命令建立多项式系数向量,第二条命令调用roots函数求根实验结果:x = -3.4914 1.6863 + 2.6947i 1.6863 - 2.6947i 0.0594 + 0.4251i 0.0594 - 0.4251i例3.求解线性方程组。实验命令: 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.5531 0.2051 -0.2784实验小结:例题总结:其中前两条命令建立矩阵a和向量b,第三条命令求根。Inv(a)为a的逆矩阵,也可用a/b求解。例4.求积分的结果。实验命令: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. 直接输入法,实验命令:A=1,2,3;4,5,6;A(4,5)=10 实验结果: A = 1 2 3 0 0 4 5 6 0 0 0 0 0 0 0 0 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 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 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,12,13,14,15;16,17,18,19,20 A(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,20 A(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 20ans = 6 8 10 11 13 15实验小结:利用MATLAB的冒号运算,可以很容易的从给出的矩阵中获得子矩阵,这样处理矩阵比循环法快得多。例3:矩阵加法,乘法,转至运算。实验命令: x=2,-1,0;3,2,-4; y=x-1实验结果: y = 1 -2 -1 2 1 -5实验命令: A=1,2,3;4,5,6; B=1,2,3;0,7,4 C=A*B实验结果: C=28 1461 32实验命令:A=71,3,8;3,2,65;45,8,3;B=A 实验结果: B = 71 3 45 3 2 88 65 3 实验小结:利用MATLAB计算矩阵将很容易的完成复杂计算。例4. 计算表达式实验命令:x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)实验分析:其中pi和I都是MATLAB的预定义变量,分别代表圆周率和虚数单位。实验结果:x = 1.1980 + 0.6572i例5.利用M文件建立MYMAT矩阵。(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵: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;34,23,56,87,98A = 24 35 13 22 63 23 39 47 80 80 90 41 34 56 75 45 65 98 45 76 34 23 56 87 98实验分析:rem(A,3)是矩阵A的每个元素处以3的余数矩阵。判断余数矩阵是否为0 时,0被扩展为与A 同维的零矩阵,P是比较的结果矩阵。实验结果: p=rem(A,3)=0p = 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0实验说明:rem(A,3)是矩阵A的每个元素处以3的余数矩阵。判断余数矩阵是否为0 时,0被扩展为与A 同维的零矩阵,P是比较的结果矩阵。.实验三 选择结构,循环结构程序设计一实验名称:选择结构,循环结构程序设计二实验目的:1. 掌握建立和执行M文件的方法。2. 掌握利用switch语句实现选择结构的方法。3. 掌握try语句的使用。4. 掌握for语句的实现方法。利用向量代替循环操作的方法。三实验内容:用分支结构计算分段函数,用SWITCH完成循环程序设计,函数调用等操作。五 实验例题:例1.分别建立33,22和与矩阵A同样大小的零矩阵。(1)建立一个33零矩阵。实验命令: zeros (3)ans = 0 0 0 0 0 00 0 0(2)建立一个32零矩阵。实验命令:zeros(3,2)ans = 0 0 0 00 0(3)设A为23矩阵,则可以利用zeros(size(A)建立一个与矩阵A同样大小的零矩阵。命令:A=1 2 3;4 5 6;zeros(size(A)ans = 0 0 0 0 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.7367 26.9342 33.6940 43.7581 48.0641 30.5860 38.2053 20.5551 47.6544 47.5071 44.3950 34.5795 44.6422 42.1462 32.3081 20.2958 46.7390 33.3411 25.2880 46.8095 24.1667 y=0.6+sqrt(0.1)*randn(5)y = 0.4632 0.9766 0.5410 0.6360 0.6931 0.0733 0.9760 0.8295 0.9373 0.1775 0.6396 0.5881 0.4140 0.6187 0.8259 0.6910 0.7035 1.2904 0.5698 1.1134 0.2375 0.6552 0.5569 0.3368 0.3812例3 .将101125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。实验命令: M=100+magic(5)M = 117 124 101 108 115 123 105 107 114 116 104 106 113 120 122 110 112 119 121 103 111 118 125 102 109实验小结:一个5 阶魔方矩阵的每行每列急对角线的和均为65,对其每个元素都加100后,这些和变为565。4.求4阶希尔伯特矩阵及其逆矩阵。实验命令: format rat H=hilb(4)H = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/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,然后将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=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. 用求逆矩阵的方法解线性方程组实验命令: 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 实验小结:先构造与方程对应的多项式的伴随矩阵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 b b = Columns 1 through 9 1 2 3 4 5 6 7 8 9 Column 10 10 实验说明:调用该命令文件时,不用输入参数,也没有输出参数,文件自身建立需要的变量。例2 .求一元二次方程ax+bx+c=0的根。实验命令: 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.4834i例3.计算分段函数:y=实验命令:x=input(请输入x的值:);if x=10 y=cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt(x);endy请输入x的值:10y = 2222/221 例4.输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。实验命令: c=input(请输入一个字符, s);if c=A&c=a&c=0&c=9 disp(abs(c)-abs(0);else disp(c);end请输入一个字符ZZ例5.某商场对顾客所购买的商品实行打折销售,标准如下:price200 没有折扣200price500 3%折扣500price1000 5%折扣1000price2500 8%折扣2500price0) sum mean=sum/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例12 根据矩阵指数的幂级数展开式求矩阵指数。实验命令:eX=I+X+X=input(Enter X:);E=zeros(size(X);F=eye(size(X);n=1;while norm(F,1)0 E=E+F; F=F*X/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.6376 0.7420 0.7504 -0.5942 2.5678 2.3359 1.5549ans = 2.6126 2.0579 -0.6376 0.7420 0.7504 -0.59422.5678 2.3359 1.5549例13 求【100,200】之间第一个能被21整除的整数。实验命令:for n=100:200 if rem(n,21)=0 continue end breakendnn = 105例14 若一个数等于它的各个真因子之和,就称该数为完数。求【1,500】之间的全部万数。实验命令:for m=1:500 s=0; for k=1:m/2 if rem(m,k)=0 s=s+k; end end if m=s disp(m); endend 6 28 496例15 用筛选法求自然数范围内的全部素数。实验命令:m=input(m=);p=1:m;p(1)=0;for i=2:sqrt(m) for j=2*i:i:m p(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*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:999 m1=fix(m/100); m2=rem(fix(m/10),10); m3=rem(m,10); if m=m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 153 370 371 407例19 写出下列程序的执行结果。实验命令:s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=a s=s+k;enddisp(s);39 48 57 66例20 从键盘上输入若干数,当输入0时候结束输入,求这些数的平均值和它们的和。实验命令:sum=0;n=0;x=input(Enter a number(end in 0):);while x=0 sum=sum+x; n=n+1; x=input(Enter a number(end in 0):);endif (n0) sum mean=sum/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)0 E=E+F; F=F*X/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.6376 0.7420 0.7504 -0.5942 2.5678 2.3359 1.5549ans = 2.6126 2.0579 -0.6376 0.7420 0.7504 -0.59422.5678 2.3359 1.5549例22 求【100,200】之间第一个能被21整除的整数。实验命令:for n=100:200 if rem(n,21)=0 continue end breakendnn = 105例23 若一个数等于它的各个真因子之和,就称该数为完数。求【1,500】之间的全部万数。实验命令:for m=1:500 s=0; for k=1:m/2 if rem(m,k)=0 s=s+k; end end if m=s disp(m); endend 6 28 496例24用筛选法求自然数范围内的全部素数。实验命令:m=input(m=);p=1:m;p(1)=0;for i=2:sqrt(m) for j=2*i:i:m p(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(10)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.6056 thethe = 0.9828x=input(Please input x= :);Please input x= :2 y=input(Please input y= :)Please input y= :3y = 3rho,the=tran(x,y);rhorho = 3.6056 thethe = 0.9828 实验五 编写绘图程序一实验名称:编写绘图程序 二实验目的:1.掌握绘制二维图形的常用函数。 2.掌握绘制三维图形的常用函数。 3.掌握绘制图形的辅助操作。 4.掌握图形对象属性的基本操作。 5.掌握利用图形对象进行绘图操作的方法。三实验内容:利用MATLAB绘制函数图形。四实验例题:例1在区间内,绘制曲线实验命令: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y)实验分析:求Y时,指数函数和正弦函数之间要用点乘运算。实验结果:例2:用不同线型和颜色在同一坐标内绘制曲线及其包络线。实验命令: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表示黄色虚线并且用菱形符标识数据点。实验结果:例3:绘制的极坐标图。实验命令: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);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=-37.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=2esin(2)及曲线。实验命令:y2=1.5esinx.。x1=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)实验结果:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!