1、Matlab课后实验题答案实验一 MATLAB运算基础1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。(1) (2) ,其中(3) (4) ,其中t=0:0.5:2.5解:M文件:z1=2*sin(85*pi/180)/(1+exp(2)x=2 1+2*i;-.45 5;z2=1/2*log(x+sqrt(1+x2) a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a)./2.*sin(a+0.3)+log(0.3+a)./2)t=0:0.5:2.5;z4=(t=0&t=1&t=2&t=A&chTp,所以pascal矩阵性能更好
2、。3. 建立一个55矩阵,求它的行列式值、迹、秩和范数。解: M文件如下:4. 已知求A的特征值及特征向量,并分析其数学意义。解:M文件如图:数学意义:V的3个列向量是A的特征向量,D的主对角线上3个是A的特征值,特别的,V的3个列向量分别是D的3个特征值的特征向量。5. 下面是一个线性方程组:(1) 求方程的解。(2) 将方程右边向量元素b3改为0.53再求解,并比较b3的变化和解的相对变化。(3) 计算系数矩阵A的条件数并分析结论。解: M文件如下:输出结果:由结果,X和X2的值一样,这表示b的微小变化对方程解也影响较小,而A的条件数算得较小,所以数值稳定性较好,A是较好的矩阵。6. 建立
3、A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。解:M文件如下:分析结果知:sqrtm(A)是类似A的数值平方根(这可由b1*b1=A的结果看出),而sqrt(A)则是对A中的每个元素开根号,两则区别就在于此。实验三 选择结构程序设计1. 求分段函数的值。用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。解:M文件如下:2. 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分100分为A,80分89分为B,79分79分为C,60分69分为D,60分以下为E。要求:(1) 分别用if语句和switch语句实现。(2)
4、输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。解:M文件如下试算结果:score=88grade =Bscore=123错误:输入的成绩不是百分制成绩3. 硅谷公司员工的工资计算方法如下:(1) 工作时数超过120小时者,超过部分加发15%。(2) 工作时数低于60小时者,扣发700元。(3) 其余按每小时84元计发。试编程按输入的工号和该号员工的工时数,计算应发工资。解:M文件下4. 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。解:M文件如下;5. 建立56矩阵,要求输出矩阵第n行元素。当n值
5、超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。解:M文件如下:实验四 循环结构程序设计1. 根据,求的近似值。当n分别取100、1000、10000时,结果是多少?要求:分别用循环结构和向量运算(使用sum函数)来实现。解:M文件如下:2. 根据,求:(1) y x=input(输入矩阵x=);f=fx(x)输入矩阵x=7 2;12 5f = 0.0437 10.9901 0.0101 0.17245. 已知(1) 当f(n)=n+10ln(n2+5)时,求y的值。(2) 当f(n)=12+23+34+.+n(n+1)时,求y的值。解:(1)函数f.m文件:function
6、f=f(x)f=x+10*log(x2+5);命令文件:clc;n1=input(n1=);n2=input(n2=);n3=input(n3=);y1=f(n1);y2=f(n2);y3=f(n3);y=y1/(y2+y3)运算结果如下:n1=40n2=30n3=20y = 0.6390(2).函数g.m文件function s= g(n)for i=1:ng(i)=i*(i+1);ends=sum(g);命令文件:clc;n1=input(n1=);n2=input(n2=);n3=input(n3=);y1=g(n1);y2=g(n2);y3=g(n3);y=y1/(y2+y3)运算结果
7、如下:n1=40n2=30n3=20y = 1.7662实验六 高层绘图操作一、实验目的1. 掌握绘制二维图形的常用函数。2. 掌握绘制三维图形的常用函数。3. 掌握绘制图形的辅助操作。二、实验内容1. 设,在x=02区间取101点,绘制函数的曲线。解:M文件如下:clc;x=linspace(0,2*pi,101);y=(0.5+3*sin(x)./(1+x.2);plot(x,y)运行结果有:2. 已知y1=x2,y2=cos(2x),y3=y1y2,完成下列操作:(1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。(2) 以子图形式绘制三条曲线。(3) 分别用条形图、阶梯图、杆图和填充
8、图绘制三条曲线。解:(1) M文件:clc;x=-pi:pi/100:pi;y1=x.2;y2=cos(2*x);y3=y1.*y2;plot(x,y1,b-,x,y2,r:,x,y3,k-)运行结果:(2)M文件:clc;x=-pi:pi/100:pi;y1=x.2;y2=cos(2*x);y3=y1.*y2;subplot(1,3,1);plot(x,y1,b-);title(y1=x2);subplot(1,3,2);plot(x,y2,r:);title(y2=cos(2x);subplot(1,3,3);plot(x,y3,k-);title(y3=y1*y2);.运行结果:(3)M
9、文件:clc;x=-pi:pi/100:pi;y1=x.2;y2=cos(2*x);y3=y1.*y2;subplot(2,2,1);plot(x,y1,b-,x,y2,r:,x,y3,k-);subplot(2,2,2);bar(x,y1,b);title(y1=x2);subplot(2,2,3);bar(x,y2,r); title(y2=cos(2x);subplot(2,2,4);bar(x,y3,k);title(y3=y1*y2);由上面的M文件,只要依次将“bar”改为“stairs”、“stem”、“fill”,再适当更改区间取的点数,运行程序即可,即有下面的结果:3. 已知
10、在-5x5区间绘制函数曲线。解:M文件:clc;x=-5:0.01:5;y=(x+sqrt(pi)/(exp(2).*(x0);plot(x,y)运行结果:由图可看出,函数在零点不连续。4. 绘制极坐标曲线=asin(b+n),并分析参数a、b、n对曲线形状的影响。解:M文件如下:clc;theta=0:pi/100:2*pi;a=input(输入a=);b=input(输入b=);n=input(输入n=);rho=a*sin(b+n*theta);polar(theta,rho,m)采用控制变量法的办法,固定两个参数,变动第三个参数观察输出图象的变化。分析结果:由这8个图知道, 当a,n固
11、定时,图形的形状也就固定了,b只影响图形的旋转的角度;当a,b固定时,n只影响图形的扇形数,特别地,当n是奇数时,扇叶数就是n,当是偶数时,扇叶数则是2n个;当b,n固定时,a影响的是图形大小,特别地,当a是整数时,图形半径大小就是a。5. 绘制函数的曲线图和等高线。其中x的21个值均匀分布-5,5范围,y的31个值均匀分布在0,10,要求使用subplot(2,1,1)和subplot(2,1,2)将产生的曲面图和等高线图画在同一个窗口上。解:M文件:clc;x=linspace(-5,5,21);y=linspace(0,10,31);x,y=meshgrid(x,y);z=cos(x).
12、*cos(y).*exp(-sqrt(x.2+y.2)/4);subplot(2,1,1);surf(x,y,z);title(曲面图);subplot(2,1,2);surfc(x,y,z);title(等高线图);运行结果:6. 绘制曲面图形,并进行插值着色处理。解:M文件:clc;s=0:pi/100:pi/2;t=0:pi/100:3*pi/2;s,t=meshgrid(s,t);x=cos(s).*cos(t);y=cos(s).*sin(t);z=sin(s);subplot(2,2,1);mesh(x,y,z);title(未着色的图形);subplot(2,2,2);surf(
13、x,y,z);title(shading faceted(缺省));subplot(2,2,3);surf(x,y,z);shading flat;title(shading flat);subplot(2,2,4);surf(x,y,z);shading interp; %插值着色title(shading interp); 运行结果有:实验八 数据处理与多项式计算二、实验内容1. 利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:(1) 均值和标准方差。(2) 最大元素和最小元素。(3) 大于0.5的随机数个数占总数的百分比。解:M文件:clc;
14、x=rand(1,30000);mu=mean(x) %求这30000个均匀分布随机数的平均值sig=std(x) %求其标准差1y=length(find(x0.5); %找出大于0.5数的个数p=y/30000 %大于0.5的所占百分比运行结果:mu = 0.499488553231043sig = 0.288599933559786p = 0.4994000000000002. 将100个学生5门功课的成绩存入矩阵P中,进行如下处理:(1) 分别求每门课的最高分、最低分及相应学生序号。(2) 分别求每门课的平均分和标准方差。(3) 5门课总分的最高分、最低分及相应学生序号。(4) 将5门
15、课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。提示:上机调试时,为避免输入学生成绩的麻烦,可用取值范围在45,95之间的随机矩阵来表示学生成绩。解:M文件:clc;t=45+50*rand(100,5);P=fix(t); %生成100个学生5门功课成绩x,l=max(P) %x为每门课最高分行向量,l为相应学生序号y,k=min(P)%y为每门课最低分行向列,k为相应学生序号mu=mean(P) %每门课的平均值行向量sig=std(P) %每门课的标准差行向量s=sum(P,2) %5门课总分的列向量X,m=max(s)%5门课总分的最高分X与相应学生序号mY,n=min(s
16、)%5门课总分的最低分Y与相应学生序号nzcj,xsxh=sort(s) %zcj为5门课总分从大到小排序,相应学生序号xsxh 运行结果:3. 某气象观测得某日6:0018:00之间每隔2h的室内外温度(0C)如实验表1所示。实验表1 室内外温度观测结果(0C)时间h 6 8 10 12 14 16 18室内温度t1 18.0 20.0 22.0 25.0 30.0 28.0 24.0室外温度t2 15.0 19.0 24.0 28.0 34.0 32.0 30.0试用三次样条插值分别求出该日室内外6:3018:30之间每隔2h各点的近似温度(0C)。解:M文件:clc;h=6:2:18;t
17、1=18.0 20.0 22.0 25.0 30.0 28.0 24.0;t2=15.0 19.0 24.0 28.0 34.0 32.0 30.0;T1=interp1(h,t1,spline)%室内的3次样条插值温度T2=interp1(h,t2,spline)%室外的3次样条插值温度 运行结果:T1 = Columns 1 through 3 40.000000000000703 44.000000000001130 48.000000000001705 Columns 4 through 6 54.000000000002885 64.000000000005883 60.000000
18、000004512 Column 7 52.000000000002444T2 = Columns 1 through 3 34.000000000000284 42.000000000000902 52.000000000002444 Columns 4 through 6 60.000000000004512 72.000000000009408 68.000000000007503 Column 7 64.000000000005883 4. 已知lgx在1,101区间10个整数采样点的函数值如实验表2所示。实验表2 lgx在10个采样点的函数值x 1 11 21 31 41 51 61
19、 71 81 91 101lgx 0 1.0414 1.3222 1.4914 1.6128 1.7076 1.7853 1.8513 1.9085 1.9510 2.0043试求lgx的5次拟合多项式p(x),并绘制出lgx和p(x)在1,101区间的函数曲线。解:M文件:x=1:10:101;y=lg10(x);P=polyfit(x,y,5)y1=polyval(P,x);plot(x,y,:o,x,y1,-*) 运行结果:Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce
20、 the degree of the polynomial, or try centering and scaling as described in HELP POLYFIT. In polyfit at 80P = 0.0000 -0.0000 0.0001 -0.0058 0.1537 -0.1326(这里出现警告是提示不必用5价函数就已经可以完美拟合了,是可以降价拟合。)在1,101的区间函数图像5. 有3个多项式P1(x)=x4+2x3+4x2+5,P2(x)=x+2,P3(x)=x2+2x+3,试进行下列操作:(1) 求P(x)=P1(x)+P2(x)P3(x)。(2) 求P(x)
21、的根。(3) 当x取矩阵A的每一元素时,求P(x)的值。其中 :(4) 当以矩阵A为自变量时,求P(x)的值。其中A的值与第(3)题相同。 解:M文件:clc;clear;p1=1,2,4,0,5;p2=1,2;p3=1,2,3;p2=0,0,0,p2;p3=0,0,p3;p4=conv(p2,p3); %p4是p2与p3的乘积后的多项式 np4=length(p4); np1=length(p1);p=zeros(1,np4-np1) p1+p4 %求p(x)=p1(x)+p2(x)x=roots(p) %求p(x)的根A=-1 1.2 -1.4;0.75 2 3.5;0 5 2.5;y=polyval(p,A) %x取矩阵A的每一元素时的p(x)值 运行结果:p = 0 0 0 0 1 3 8 7 11x = -1.3840 + 1.8317i -1.3840 - 1.8317i -0.1160 + 1.4400i -0.1160 - 1.4400iy = 1.0e+003 * 0.0100 0.0382 0.0125 0.0223 0.0970 0.4122 0.0110 1.2460 0.1644