1、MATLAB实验题答案1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5( 2 ) b = a , a , a ;a b = 1 1 1 3 3 3 5 5 5 1 3 5( 3 ) c = a + b ( 2 , : ) c = 4 6 82、下列运算就是否合法,为什么?如合法,结果就是多少? result2=a*b Error using * Inner matrix dimensions must agree、 result3=a+bresult3 = 3 6 2 5 8 11 result4=b*dresult4 = 31 22 22
2、 40 49 13 result5=b;c*dresult5 = 31 22 22 40 49 13 -5 -8 7 result6=a、*bresult6 = 2 8 -3 4 15 30 result7=a、/bresult7 = 0、5000 0、5000 -3、0000 4、0000 1、6667 1、2000 result8=a、cAttempt to reference field of non-structure array、 result9=a、bresult9 = 2、0000 2、0000 -0、3333 0、2500 0、6000 0、8333 result10=a、2r
3、esult10 = 1 4 9 16 25 36 result11=2、aresult11 = 2 4 816 32 643、用MATLAB求解下面的的方程组。(1) A=7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13 B=4 7 -1 0 B=B x=inv(A)*B(2) A1=1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6 B2=1;8;3;5 x2=inv(A1)*B24、已知(1)求矩阵A的秩(rank)(2)求矩阵A的行列式(determinant)(3)求矩阵A的逆(inverse)(4)求矩阵A的特征值及特征向量(eigen
4、value and eigenvector) A3=7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13 r=rank(A3) b=inv(A3) a=det(A3) V,D=eig(A3)5、,求y=?(运行format long g命令后,查瞧y的值)m1=0;for m=-10:10m1=m1+2m;endm1m1 = 2047、99902343756、求分段函数的值。用if语句实现,算出下列表中x对应的y值。x=input(enter x=);if x=0&x=90&x=100 disp(A)elseif x=80 disp(B)elseif x=70 disp
5、(C)elseif x=60 disp(D)elseif x=0 disp(E)else disp(error)endswitch结构程序:x=input(please enter score=);switch fix(x/10) case10,9 if x100 disp(error) else disp(A) end case8 disp(B) case7 disp(C) case6 disp(D) case0,1,2,3,4,5 disp(E) otherwise disp(error)end8、思考题设计程序,完成成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算
6、符号,做相应的运算,并显示相应的结果。x=input(请输入运算符)a=num2str(floor(rand(1)*90+10);ab=num2str(floor(rand(1)*90+10);bif x=+ y=a+b;elseif x=- y=a-b;elseif x=* y=a*b;elseif x=/ y=a/b;else disp(error)endy9、启动MATLAB后,点击,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击保存程序,注意文件名最好用英文字符。点击Debug|Run运行程序,在命令窗口查瞧运行结果,程序如有错误则改正。注:数
7、论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。n=input(请输入n值:);a=n;while n1 if rem(n,2)=0 n=n/2; else n=3*n+1; end a=a,n;enda10、根据,当n分别取100、1000、10000时,求x的值分别就是多少?a=input(请输入数值)n=0;for m=1:100 n=n+1/(m*m);endn=6*n;x=sqrt(n);x11、编程求满足的最小m值。sum=0;m=2;a=1;while a for i=1:m sum=sum+2i; if s
8、um10000 a=0; end end m=m+1;endm12、思考题已知y与t的函数关系:求下面表格中与t对应的y值t0、20、40、60、81、0yt=input(请输入t值:)sum=0;for i=1:20 b=factorial(i); sum=sum+ti/b;endsum=sum+1;sum13、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。function y=myfun1(x)选择一些数据测试您编写的函数。 function y=myfun1(x) if x0&x3 y=-x+6; end 14、编写一个函数求向量x中元素的平均值、最大值、最小
9、值、均方根值。function m_x,max_x,min_x,rms_x=myfun2(x)方均根值(Root Mean Square)的计算公式为:用下面数据测试您写的函数:(1)x=sin(0:0、01:6*pi)(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。function m_x,max_x,min_x,rms_x=myfun2(x) %求平均值 sum_x=sum(x); %向量元素求与 m,n=size(x); %最好用n=length(x); m_x=sum_x/n; %求最大值 采用逐个比较方式 if x(1)x(2) max_x=x(1
10、); else max_x=x(2); end for k=3:n if max_xx(k) max_x=x(k); else max_x=max_x; %可省略 end end %求最小值 if x(1)x(k) min_x=x(k); else min_x=min_x; %可省略 end end %求均方根值sum_x2=0; for k=1:n sum_x2=sum_x2+x(k)、2; rms_x=sqrt(sum_x2/n);end m_x; max_x; min_x; rms_x; %按照函数值行参顺序输出结果 15、编写一个函数,给出一个向量,生成如下范德蒙矩阵。function
11、 v=myvander(x)例如:v=myvander(2 3 4 5)得v=function v=myvander(x) v1=vander(x); %生成范德蒙矩阵v2=v1; v=flipud(v2); %实现矩阵上下翻转 16、思考题编写程序,用如下迭代公式求,a的值分别为:3,17,113。迭代的终止条件为,迭代初值,迭代次数不超过100次。分别对迭代结果与准确值进行比较,并统计迭代次数。 function x,n=sqrt_a(a) x=1、0; for k=1:100 m=x; x=x/2+a/(2*x); if abs(x-m)=10(-5) break end endx; n
12、=k; s=(x-sqrt(a); if s t=0:0、1:4*pi; y1=t; y2=t(0、5); y2=sqrt(t); y3=4*pi*eps(-0、1*t)、*sin(t); plot(t,y1,t,y2,t,y3)18、编写程序,选择合适的步距,绘制下面函数在区间-6,6中的图象。function y=fun1(x)y=;for x0=x if x00&x03 y=y,6-x0; end end x=-6:0、1:6; y=fun1(x); plot(x,y)19、用compass函数画下面相量图ua = 1 ; ub = cos(-2*pi/3)+sin(-2*pi/3)*i ; uc=cos(2*pi/3)+sin(2*pi/3)*i;compass(ua,ub,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1