当前位置:文档之家› MATLAB实验题答案

MATLAB实验题答案

result5 =( 1 ) a = 1 : 2 : 5a =1 3 5( 2 ) b = [ a' , a' , a' ;a ]b =1 1 13 3 35 5 51 3 5( 3 ) c = a + b ( 2 , : )c =4 6 82、下列运算是否合法,为什么如合法,结果是多少>> result2=a*bError using *Inner matrix dimensions must agree. >> result3=a+bresult3 =3 6 258 11>> result4=b*dresult4 =31 22 2240 49 1331 22 2240 49 13-5 -8 7>> result6=a.*b result6 =2 8 -3415 30>> result7=a./b result7 =>> result8=Attempt to reference field of non-structure array.>> result9=a.\b result9 =>> result10=a92result10 =1 4 916 25 36>> resultl 1=29aresult11 =2 4 816 32 64>>result5=[b;c']*d 3、用MATLAB求解下面的的方程组。

1、求以下变量的值,并在MATLAB^验证。

1 2 x13 2 x211 5 x32 13 x4>> 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>> 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)*B27 2 1 29 15 3 22 2 11 51 32 13(1)求矩阵A的秩(rank)(2)求矩阵 A 的行列式(determinant)(3)求矩阵 A 的逆(inverse)(4)求矩阵 A 的特征值及特征向量(eigenvalue 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)10n 10查看y 的值)m1=0;for m=-10:10 m仁m1+2^m;endm1m1 =6、求分段函数的值。

用if 语句实现,算出下列表中x 对应的y 值。

x=input('enter x=');if x<0y=x A2+x-6;elseif x>=0&&x<5y=xA2-5*x+6;elsey=xA2-x-1;endy7、分别用if 和switch 语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。

其中90~1 00分为A,80~89 分为B,70~79分为C,60~69 分为D,60 分以下为E。

对超出百分制范围的成绩,给出错误提示信息。

if 结构程序:x=input('please enter score=');if x>=90&&x<=1009210disp('A')7 29 15(1)2 21 3 4 7 1 0A4、已知2n 2 10 29elseif x<80&&x>=70 otherwisedisp('C')disp('error')elseif x<70&&x>=60enddisp('D')8、思考题elseif x<60&&x>=0设计程序,完成成两位数的加、减、乘、除disp('E') 四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,else 并显示相应的结果。

disp('error')x=input(' 请输入运算符')enda=num2str(floor(rand(1)*90+10));switch 结构程序:ax=input('please enter sco re=');b=num2str(floor(rand(1)*90+10));switch fix(x/10)bcase{10,9}if x=='+'if x>100y=a+b;disp('error')elseif x=='-'elsey=a-b;elseif x=='*'disp('A')y=a*b;endelseif x=='/'case{8}y=a/b;disp('B')elsecase{7}disp('error')disp('C')endcase{6}ydisp('D') 9、启动MATLAB后,点击File|New|M-File ,启动MATLAB的程序编辑及调试器case{0,1,2,3,4,5} ( Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。

点击Debug|Run 运行 程序,在命令窗口查看运行结果, 程序 如有错误则改正。

注:数论中一个有趣的题目: 任意一个正整 数,若为偶数,则用2除之,若为奇数, 则与3相乘再加上1。

重复此过程,最 终得到的结果为1。

n=input('请输入 n 值:'); a=n; while n>1 if rem(n, 2)==0 n=n/2; else n=3*n+1; end a=[a,n]; end、根 据 2 x 111 1 6 1222 322 n当n 分别取 100、 1000、 10000时,求 x 的值分别是多少10 m k「2k1000011、 编程求满足k 1的最小m 值。

sum=0; m=2; a=1; while afor i=1:msum=sum+2A i; if sum>10000a=0; end end m=m+1;end m12、 思考题已知 y 和 t 的函数关系:23a=input('请输入数值') n=0; for m=1:100 n=n +1/(m*m); 求下面表格中与t 对应的y 值t=input('请输入 t 值:') end sum=0; n=6* n; for i=1:20x=sqrt( n );b=factorial(i);sum=sum+t"/b; [m,n]=size(x); %最好用n=length(x); end m_x=sum_x/n;sum=sum+1; %求最大值采用逐个比较方式sum if x(1)>x(2)13、编写一个函数,计算下面函数的值,给max_x=x(1);出标量x 的值,调用该函数后,返回y的值。

elsefunction [y]=myfun1(x) max_x=x(2);选择一些数据测试你编写的函数。

endfunction [y]=myfun1(x) for k=3:nif max_x<x(k)if x<=0y=sin(x); max_x=x(k);elseelseif x>0&x<=3max_x=max_x; %可省略y=x;elseif x>3 endendy=-x+6;%求最小值endif x(1)<x(2)14、编写一个函数求向量x 中元素的平均值、最大值、最小值、均方根值。

min_x=x(1);functionelse[m_x,max_x,min_x,rms_x]=myfun2(x)min_x=x(2);方均根值(Root Mean Square) 的计算公式为:end用下面数据测试你写的函数:for k=3:n(1) x=sin(0::6*pi)if min_x>x(k)(2)x=rand(1,200) ,得到的x 为200个( 0,min_x=x(k);1)之间均匀分布的随机数。

function else[m_x,max_x,min_x,rms_x]=myfun2(x) %min_x=min_x; %可省略求平均值sum_x=sum(x); %向量元素求和endend%求均方根值 sum_x2=0; for k=1: nsum_x2=sum_x2+x(k).A2; rms_x=sqrt(sum_x2/n); end m_x; max_x; min_x; rms_x;%按照函数值行参顺序输出结果15、编写一个函数,给出一个向量X [X^ x2,x n ],生成如下范德蒙矩阵。

fun cti on [v]=myva nder(x)例如:>>v=myva nder([2 3 4 5])得v=X na X n 1统计迭代次数。

2 2X nfunction [x,n]=sqrt_a(a)x=; for k=1:100 m=x; x=x/2+a/(2*x); if abs(x-m)<=10A(-5) break end end x; n=k;s=(x-sqrt(a));if s<=10A(-5)fun cti on [v]=myva nder(x) v1=va nder(x); %生成范德蒙矩阵 v2=v1';disp('正确'); elsedisp('错误');v=flipud(v2); %实现矩阵上下翻转 end>> plot(t,y1,t,y2,t,y3)16、思考题编写程序,用如下迭代公式求a ,a 的值分别为:3,17,113。

迭代的终止条件 为 xn 1X n 105迭代初值X 。

1.0,迭代次数不超过100次。

分别对迭代结果和准确值进行比较,并17、在同一坐标系下绘制下面三个函数在t[0,4]的图象。

相关主题