MATLAB实验题答案.docx
《MATLAB实验题答案.docx》由会员分享,可在线阅读,更多相关《MATLAB实验题答案.docx(17页珍藏版)》请在冰豆网上搜索。
![MATLAB实验题答案.docx](https://file1.bdocx.com/fileroot1/2022-11/16/f84c6292-716c-403f-a6d0-4405714945f5/f84c6292-716c-403f-a6d0-4405714945f51.gif)
MATLAB实验题答案
1、求以下变量的值,并在MATLAB中验证。
(1)a=1:
2:
5
a=
135
(2)b=[a',a',a';a]
b=
111
333
555
135
(3)c=a+b(2,:
)
c=
468
2、下列运算就是否合法,为什么?
如合法,结果就是多少?
>>result2=a*b
Errorusing*
Innermatrixdimensionsmustagree、
>>result3=a+b
result3=
362
5811
>>result4=b*d
result4=
312222
404913
>>result5=[b;c']*d
result5=
312222
404913
-5-87
>>result6=a、*b
result6=
28-3
41530
>>result7=a、/b
result7=
0、50000、5000-3、0000
4、00001、66671、2000
>>result8=a、c
Attempttoreferencefieldofnon-structurearray、
>>result9=a、\b
result9=
2、00002、0000-0、3333
0、25000、60000、8333
>>result10=a、^2
result10=
149
162536
>>result11=2、^a
result11=
248
163264
3、用MATLAB求解下面的的方程组。
(1)
>>A=[721-2;9153-2;-2-2115;13213]
>>B=[47-10]
>>B=B'
>>x=inv(A)*B
(2)
>>A1=[1110;121-1;2-10-3;335-6]
>>B2=[1;8;3;5]
>>x2=inv(A1)*B2
4、已知
(1)求矩阵A的秩(rank)
(2)求矩阵A的行列式(determinant)
(3)求矩阵A的逆(inverse)
(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)
>>A3=[721-2;9153-2;-2-2115;13213]
>>r=rank(A3)
>>b=inv(A3)
>>a=det(A3)
>>[V,D]=eig(A3)
5、
求y=?
(运行formatlongg命令后,查瞧y的值)
m1=0;
form=-10:
10
m1=m1+2^m;
end
m1
m1=
2047、9990234375
6、求分段函数的值。
用if语句实现,算出下列表中x对应的y值。
x=input('enterx=');
ifx<0
y=x^2+x-6;
elseifx>=0&&x<5
y=x^2-5*x+6;
else
y=x^2-x-1;
end
y
7、分别用if与switch语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
对超出百分制范围的成绩,给出错误提示信息。
if结构程序:
x=input('pleaseenterscore=');
ifx>=90&&x<=100
disp('A')
elseifx<90&&x>=80
disp('B')
elseifx<80&&x>=70
disp('C')
elseifx<70&&x>=60
disp('D')
elseifx<60&&x>=0
disp('E')
else
disp('error')
end
switch结构程序:
x=input('pleaseenterscore=');
switchfix(x/10)
case{10,9}
ifx>100
disp('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')
otherwise
disp('error')
end
8、思考题
设计程序,完成成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。
x=input('请输入运算符')
a=num2str(floor(rand
(1)*90+10));
a
b=num2str(floor(rand
(1)*90+10));
b
ifx=='+'
y=a+b;
elseifx=='-'
y=a-b;
elseifx=='*'
y=a*b;
elseifx=='/'
y=a/b;
else
disp('error')
end
y
9、启动MATLAB后,点击,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击保存程序,注意文件名最好用英文字符。
点击Debug|Run运行程序,在命令窗口查瞧运行结果,程序如有错误则改正。
注:
数论中一个有趣的题目:
任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
n=input('请输入n值:
');
a=n;
whilen>1
ifrem(n,2)==0
n=n/2;
else
n=3*n+1;
end
a=[a,n];
end
a
10、根据
当n分别取100、1000、10000时,求x的值分别就是多少?
a=input('请输入数值')
n=0;
form=1:
100
n=n+1/(m*m);
end
n=6*n;
x=sqrt(n);
x
11、编程求满足
的最小m值。
sum=0;
m=2;
a=1;
whilea
fori=1:
m
sum=sum+2^i;
ifsum>10000
a=0;
end
end
m=m+1;
end
m
12、思考题
已知y与t的函数关系:
求下面表格中与t对应的y值
t
0、2
0、4
0、6
0、8
1、0
y
t=input('请输入t值:
')
sum=0;
fori=1:
20
b=factorial(i);
sum=sum+t^i/b;
end
sum=sum+1;
sum
13、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。
function[y]=myfun1(x)
选择一些数据测试您编写的函数。
function[y]=myfun1(x)
ifx<=0
y=sin(x);
elseifx>0&x<=3
y=x;
elseifx>3
y=-x+6;
end
14、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。
function[m_x,max_x,min_x,rms_x]=myfun2(x)
方均根值(RootMeanSquare)的计算公式为:
用下面数据测试您写的函数:
(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;
%求最大值采用逐个比较方式
ifx
(1)>x
(2)
max_x=x
(1);
else
max_x=x
(2);
end
fork=3:
n
ifmax_xmax_x=x(k);
else
max_x=max_x;%可省略
end
end
%求最小值
ifx
(1)(2)
min_x=x
(1);
else
min_x=x
(2);
end
fork=3:
n
ifmin_x>x(k)
min_x=x(k);
else
min_x=min_x;%可省略
end
end
%求均方根值
sum_x2=0;
fork=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[v]=myvander(x)
例如:
>>v=myvander([2345])
得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;
fork=1:
100
m=x;
x=x/2+a/(2*x);
ifabs(x-m)<=10^(-5)
break
end
end
x;
n=k;
s=(x-sqrt(a));
ifs<=10^(-5)
disp('正确');
else
disp('错误');
end
17、在同一坐标系下绘制下面三个函数在t∈[0,4π]的图象。
>>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]中的图象。
functiony=fun1(x)
y=[];
forx0=x
ifx0<=0
y=[y,sin(x0)];
elseifx0>0&&x0<=3
y=[y,x0];
elseifx0>3
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,