Matlab上机实验答案.docx
- 文档编号:9205149
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:51
- 大小:28.11KB
Matlab上机实验答案.docx
《Matlab上机实验答案.docx》由会员分享,可在线阅读,更多相关《Matlab上机实验答案.docx(51页珍藏版)》请在冰豆网上搜索。
Matlab上机实验答案
Matlab上机实验答案
实验一MATLAB运算基础
1.先求以下表达式的值,尔后显示MATLAB工作空间的使用状况并保存所有变量。
2sin850
(1)z11e2
>>z1=2*sin(85*pi/180)/(1+exp
(2))
z1=
(2)z2
1
1x2
2
1
2i
ln(x
),此中x
5
2
>>x=[21+2i;-0.455];
>>z2=1/2*log(x+sqrt(1+x^2))
z2=
(3)z3
e0.3ae
sin(a
0.3)ln0.3a
2
2
>>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)
(>>z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)
可以考据z3==z33,能否都为1)
z3=
Columns1through5
Columns6through10
Columns11through15
Columns16through20
Columns21through25
Columns26through30
Columns31through35
Columns36through40
Columns41through45
Columns46through50
Columns51through55
Columns56through60
Column61
t20t1
(4)z4
t2
1
1
t
2,此中
t2
2t
12
t
3
>>t=0:
0.5:
2.5;
>>
z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2.*t+1
)
z4=
00
2.已知:
12
34
4
1
3
1
A34
7
87,B
2
0
3
3
65
7
3
2
7
求以下表达式的值:
(1)A+6*B和A-B+I(此中I为单位矩阵)
(2)A*B和A.*B
(3)A^3和A.^3
(4)A/B及B\A
(5)[A,B]和[A([1,3],:
);B^2]
>>A=[1234-4;34787;3657];
>>B=[13-1;203;3-27];
>>A+6*B
ans=
18
52
-10
46
7
105
21
53
49
>>I=eye(3);
>>A-B+I
ans=
12
31
-3
32
8
84
0
67
1
(2)
>>A*B
ans=
68
44
62
309
-72
596
154
-5
241
>>A.*B
ans=
12
102
4
68
0
261
9
-130
49
(3)
>>A^3
ans=
37226
233824
48604
247370
149188
600766
78688
454142
118820
>>A.^3
ans=
1728
39304
-64
39304
343
658503
27
274625
343
(4)
>>A/B
ans=
>>B\A
ans=
(5)
>>[A,B]
ans=
12
34
-4
1
3
-1
34
7
87
2
0
3
3
65
7
3
-2
7
>>[A([1,3],:
);B^2]ans=
12
34
-4
3
65
7
4
5
1
11
0
19
20
-5
40
3.设有矩阵A和B
1
2
3
4
5
3
0
16
6
7
8
9
10
17
6
9
A11
12
13
14
15,B
0
23
4
16
17
18
19
20
9
7
0
21
22
23
24
25
4
13
11
(1)求它们的乘积C。
(2)将矩阵C的右下角3×2子矩阵赋给D。
(3)查察MATLAB工作空间的使用状况。
>>A=(reshape(1:
25,5,5))';
>>B=[3016;17-69;023-4;970;41311];
>>C=A*B
C=
9315077
258335237
423520397
588705557
753890717
>>D=C(3:
5,2:
3)
D=
520397
705557
890717
>>whos
NameSizeBytesClassAttributes
A
5x5
200
double
B
5x3
120
double
C
5x3
120
double
D
3x2
48
double
4.完成以下操作:
(1)求[100,999]之间能被21整除的数的个数。
(2)建立一个字符串向量,删除此中的大写字母。
>>n=100:
999;
>>l=find(rem(n,21)==0);
>>length(l)
ans=
43
>>ch='aegbBOIEG0je23RGnc';
>>wz=find(ch>='A'&ch<='Z');
>>ch(wz)=[]
ch=
aegb0je23nc
实验二MATLAB矩阵解析与办理
1.设有分块矩阵A
E3
3
R3
2,此中E、R、O、S分别为单位矩阵、随机矩阵、零矩
O2
3
S2
2
阵和对角阵,试经过数值计算考据A2
E
RRS
O
。
S2
>>E=eye(3);
>>R=rand(3,2);
>>O=zeros(2,3);
>>S=diag(1:
2);
>>A=[E,R;O,S]
A=
0
0
0
0
0
0
0
0
0
0
0000
>>A^2
ans=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
>>[E,R+R*S;O,S^2]
ans=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
>>A^2==[E,R+R*S;O,S^2]
ans=
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
经过考据,矩阵A2
E
RRS
O
建立。
S2
2.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。
为何?
>>H=hilb(5)H=
>>P=pascal(5)P=
1
1
1
1
1
1
2
3
4
5
1
3
6
10
15
1
4
10
20
35
1
5
15
35
70
>>Hh=det(H)Hh=
>>Hp=det(P)Hp=
1
>>Th=cond(H)Th=
4.7661e+05
>>Tp=cond(P)Tp=
8.5175e+03
答:
5阶帕斯卡矩阵P的性能好。
矩阵的性能是由条件数决定的,条件数越凑近于1其性能
就越好。
由上机操作求得Th=4.7661e+005,Tp=8.5175e+003。
Tp的值更凑近于1则其性能要好。
所以5阶帕斯卡矩阵P的性能好。
3.建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
>>A=rand(5)
A=
>>det(A)
ans=
>>trace(A)
ans=
>>rank(A)
ans=
5
>>norm(A)ans=
4.已知
29618
A20512
885
求A的特色值及特色向量,并解析其数学意义。
>>A=[-29,6,18;20,5,12;-8,8,5]
A=
-29
6
18
20
5
12
-8
8
5
>>[V,D]=eig(A)
V=
D=
0
00
0
0
在数学上,特别是线性代数中,对于一个给定的线性变换,它的特色向量(本征向
量或称正规正交向量)是这样一个非零的向量v:
当v经过这个线性变换的作用以后,
获取的新向量(长度也许改变)依旧与本来的v保持在同一条线上。
一个特色向量的长
度在该线性变换下缩放的比率称为其特色值(本征值)。
假如特色值为正,则表示v在
经过线性变换的作用后方向也不变;假如特色值为负,说明方向会反转;假如特色值为
0,则是表示缩回零点。
但无论如何,仍在同一条直线上。
5.下边是一个线性方程组:
1
1
1
2
3
4
x1
1
1
1
x2
3
4
5
x3
1
1
1
4
5
6
(1)
求方程的解。
(2)
将方程右侧向量元素
b3改为0.53再求解,并比较
b3的变化和解的相对变化。
(3)计算系数矩阵A的条件数并解析结论。
>>formatrat%用分数格式显示
>>A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]A=
1/2
1/3
1/4
1/3
1/4
1/5
1/4
1/5
1/6
>>format
%恢复默认格式
>>b=[0.95;0.67;0.52]
b=
>>X=A\bX=
>>b2=[0.95;0.67;0.53]
b2=
>>X2=A\b2
X2=
>>D=cond(A)
D=
1.3533e+03
矩阵的条件数决定矩阵的性能,条件数越凑近于
1其性能越好,系数矩阵
A的条件数为
1.3533e+003,和1相差很大,则其性能不好。
所以解(X值)影响很大。
b矩阵个别元素的渺小变动,对方程的
6.建立A矩阵,试比较sqrtm(A)和sqrt(A),解析它们的差别。
实验三选择结构程序设计
1.求分段函数的值。
x2
x6
x
0且x
3
yx2
5x60
x5且x
2及x3
x2
x1
其余
用if语句实现,分别输出
时的y值。
程序设计:
clear;
x=[-5.0-3.01.02.02.53.05.0];
ifx<0&x~=-3
y=x.^2+x-6;
elseifx>=0&x<5&x~=2&x~=3
y=x.^2-5*x+6;
else
y=x.^2-x-1;
end
y
运转结果:
y=
2.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
此中90分~100分为A,
80分~89分为B,79分~79分为C,60分~69分为D,60分以下为E。
要求:
(1)分别用if语句和switch语句实现。
程序设计:
(一)用if语句
clear;
score=input(
'请输入百分制成绩:
');
a=fix(score/10);
ifa==9|a==10
grade=
'A'
;
elseif
a==8
grade=
'B'
;
elseif
a==7
grade=
'C'
;
elseif
a==6
grade=
'D'
;
else
grade=
'E'
;
end
grade
(二)用if语句
clear;
score=input(
'请输入百分制成绩:
');
ifscore>=90&score<=100
grade=
'A'
;
elseif
score>=80&score<90
grade=
'B'
;
elseif
score>=70&score<80
grade=
'C'
;
elseif
score>=60&score<70
grade=
'D'
;
else
grade=
'E'
;
end
grade
(三)用switch语句
clear;
score=input('请输入百分制成绩:
');
switchfix(score/10)
case
{9,10}
grade=
'A'
;
case
8
grade=
'B'
;
case
7
grade=
'C'
;
case
6
grade=
'D'
;
otherwise
grade=
'E'
;
end
grade
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
clear;
score=input(
'请输入百分制成绩:
');
ifscore>=0&score<=100%
判断成绩合理性
switch
fix(score/10)
case
{9,10}
grade=
'A'
;
case
8
grade=
'B'
;
case
7
grade=
'C'
;
case
6
grade=
'D'
;
otherwise
grade=
'E'
;
end
grade
else
disp('error')%成绩不合理时输出出错信息
end
3.硅谷公司员工的薪水计算方法以下:
(1)工作时数超出120小时者,超出部分加发15%。
(2)工作时数低于60小时者,扣发700元。
(3)其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发薪水。
程序设计:
clear;
num=input(
'请输入员工工号:
');
time=input(
'请输入员工工时数:
');
if
time<60
wages=time*84-700;
elseiftime>120
wages=84*120+(time-120)*84*(1+0.15);
else
wages=time*84;
end
disp=(['员工工号:
'num2str(num)'应发薪水:
'num2str(wages)])
运转结果:
请输入员工工号:
4
请输入员工工时数:
35
disp=
员工工号:
4应发薪水:
2240
4.设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。
解:
程序设计:
clear;
a=floor(rand
(1)*90+10)
b=floor(rand
(1)*90+10)
c=input(
'请输入运算符号:
','s'
);
if
c==
'+'
s=a+b
elseif
c=='-'
s=a-b
elseif
c=='*'
s=a*b
elseif
c=='\'
s=a\b
else
disp(
'error'
)
end
运转结果:
a=
30
b=
77
请输入运算符号:
-
s=
-47
5.建立5×6矩阵,要求输出矩阵第n行元素。
当n值超出矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
程序设计:
clear;
A=rand(5,6)
n=input('n=?
')
ifn>=1&n<=5
B=A(n,1:
6);
else
disp('erro!
')
B=A(5,1:
6);
end
B
运转结果:
A=
n=?
3
n=
3
B=
实验四循环结构程序设计
2
1
1
1
1
1.依据
L
2
2
2
2,求π的近似值。
当n分别取100、1000、10000
6
1
2
3
n
时,结果是多少?
要求:
分别用循环结构和向量运算(使用
sum函数)来实现。
程序设计
(一):
clear;
forn=[100,1000,10000]
sum=0;
forx=1:
n
sum=sum+1/(x.^2);
end
result=sqrt(6*sum)
end
运转结果:
result=
result=
result=
程序设计
(二):
clear;
forn=[100,1000,10000]
x=1:
n;
result=sqrt(6*sum(1./x./x))
end
运转结果:
result=
result=
result=
2.依据y11
1
L
1
,求:
3
5
2n
1
(1)y<3时的最大n值。
(2)与
(1)的n值对应的y值。
程序设计:
y=0;n=1;
whiley<3
y=y+1/(2*n-1);
n=n+1;
end
n=n-1;
y=y-1/(2*n-1)
n=n-1
运转结果:
y=
n=
56
【
%考据n=56时的y值
clearall;clc;
n=56;
i=1:
n;
f=1./(2*i-1);
y=sum(f)
】
3.考虑以下迭代公式:
a
xn1
bxn
此中a、b为正的学数。
(1)编写程序求迭代的结果,迭代的停止条件为
|xn+1-xn|≤10-5,迭代初值x0=1.0,迭代
次数不超出500次。
(2)假如迭代过程收敛于
b
b2
4a
r,那么r的正确值是
2
,当(a,b)的值取(1,1)、(8,3)、
(10,0.1)时,分别对迭代结果和正确值进行比较。
程序设计:
clear;
a=input('a=?
');
b=input('b=?
');
x0=1;
x1=a/(b+x0);
y=abs(x1-x0);
n=1;
whiley>10^(-5)&n<=499
x0=x1;
x1=a/(b+x0);
y=abs(x1-x0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 上机 实验 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)