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*bError using *Inner matrix dimensions must agree. >> result3=a+b result3 =3 6 2 5 8 11 >> result4=b*d result4 =31 22 22 40 49 13>> result5=[b;c']*d result5 =31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 =2 8 -34 15 30 >> result7=a./b result7 =0.5000 0.5000 -3.00004.0000 1.6667 1.2000>> result8=a.cAttempt to reference fieldofnon-structure array. >> result9=a.\b result9 =2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 =1 4 9 16 25 36 >> result11=2.^a result11 =2 4 8 16 32 643、用MATLAB 求解下面的的方程组。
(1)⎥⎥⎥⎥⎤⎢⎢⎢⎢⎡-=⎥⎥⎥⎥⎤⎢⎢⎢⎢⎡⨯⎥⎥⎥⎥⎤⎢⎢⎢⎢⎡----017413231511222315921274321x x x x>> 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)⎪⎪⎩⎪⎪⎨⎧=-++=--=-++5653333282w z y x w y x w z y x>> 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、已知⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=132315112223159A(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;13 2 13] >> r=rank(A3) >> b=inv(A3) >> a=det(A3)>> [V,D]=eig(A3) 5、10991022222++++==--∑n y ,求y=?(运行format long g 命令后,查看y 的值) m1=0; for m=-10:10 m1=m1+2^m; end m1 m1 =2047.99902343756、求分段函数的值。
⎪⎪⎨⎧≥--<≤+-<-+=51506506222x x x x x x x x x y用if 语句实现,算出下列表中x 对应的y值。
x=input('enter x='); if x<0 y=x^2+x-6; elseif x>=0&&x<5 y=x^2-5*x+6; else y=x^2-x-1;end y7、分别用if 和switch 语句实现,将百分制成绩转换为成绩等级A 、B 、C 、D 、E 。
其中90~100分为A ,80~89分为B ,70~79分为C ,60~69分为D ,60分以下为E 。
对超出百分制范围的成绩,给出错误提示信息。
if 结构程序:x=input('please enter score='); if x>=90&&x<=100 disp('A')elseif x<90&&x>=80disp('B') elseif x<80&&x>=70 disp('C') elseif x<70&&x>=60 disp('D')elseif x<60&&x>=0 disp('E') elsedisp('error') endswitch 结构程序:x=input('please enter score='); switch fix(x/10) case{10,9}if x>100disp('error') else disp('A') end case{8} disp('B') case{7} disp('C') case{6}disp('D')case{0,1,2,3,4,5}disp('E')otherwisedisp('error')end8、思考题设计程序,完成成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。
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;elsedisp('error')endy 9、启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。
点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。
注:数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
n=input('请输入n值:');a=n;while n>1if rem(n,2)==0n=n/2;elsen=3*n+1;enda=[a,n];enda10、根据2222213121116nx++++=,当n分别取100、1000、10000时,求x的值分别是多少?a=input('请输入数值')n=0;for m=1:100n=n+1/(m*m); end n=6*n; x=sqrt(n); x11、编程求满足>k100002的最小m 值。
sum=0; m=2; a=1; while a for i=1:msum=sum+2^i; if sum>10000 a=0; end endm=m+1;endm12、思考题已知y和t的函数关系:!20/...!3/!2/1)(tt t t t y +++++=求下面表格中与t 对应的y 值t=input('请输入t 值:') sum=0; for i=1:20b=factorial(i);sum=sum+t^i/b; end sum=sum+1; sum13、编写一个函数,计算下面函数的值,给出标量x 的值,调用该函数后,返回y 的值。
function [y]=myfun1(x)选择一些数据测试你编写的函数。
function [y]=myfun1(x)if x<=0y=sin(x);elseif x>0&x<=3y=x;elseif x>3 y=-x+6;end⎪⎩⎪⎨⎧>+-≤<≤=3,630,0,sin )(x x x x x x x y14、编写一个函数求向量x 中元素的平均值、最大值、最小值、均方根值。
function[m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(Root Mean Square)的计算公式为:∑==Ni i x Nrms 121用下面数据测试你写的函数: (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); else max_x=x(2); end for k=3:nif max_x<x(k) max_x=x(k);elsemax_x=max_x; %可省略 end end %求最小值 if x(1)<x(2) min_x=x(1);elsemin_x=x(2); end for k=3:nif min_x>x(k) min_x=x(k); elsemin_x=min_x; %可省略 end end %求均方根值 sum_x2=0; for k=1:nsum_x2=sum_x2+x(k).^2; rms_x=sqrt(sum_x2/n); end m_x; max_x; min_x;rms_x; %按照函数值行参顺序输出结果15、编写一个函数,给出一个向量21n ,生成如下范德蒙矩阵。
function [v]=myvander(x)⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡---1112222121n n n n n x x x x x x x x x例如:>>v=myvander([2 3 4 5]) 得v=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡125642782516945432function [v]=myvander(x) v1=vander(x); %生成范德蒙矩阵 v2=v1';v=flipud(v2); %实现矩阵上下翻转16、思考题编写程序,用如下迭代公式求a,a 的值分别为:3,17,113。