实验二 MATLAB数值计算与符号运算功能
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
370.8097
366.2966
365.3480
364.5533
363.1062
362.5595
361.3854
360.9448
360.4308
359.6062
358.4492
358.3805
358.0559
358.0461
357.7255
354.3539
354.2564
352.0669
351.6719
B =
3.5456 + 1.3435i 2.7962 - 1.5926i -0.3000 + 0.8860i 0.5706 - 0.1082i 1.4499 - 0.5287i
2.5518 - 1.5247i 2.1700 + 2.6661i 0.6534 + 0.2501i 1.2598 - 0.6915i 1.4272 - 0.7001i
随机数的均值为:0.49875
disp(['随机数的标准方差为:',num2str(std(x))])
随机数的标准方差为:0.28898
(2)最大元素和最小元素;
程序如下:
disp(['随机数的最大元素为:',num2str(max(x))])
随机数的最大元素为:0.99997
disp(['随机数的最小元素为:',num2str(min(x))])
xsxh =
54
68
93
21
53
62
91
87
71
55
42
75
66
35
14
84
72
26
9
98
12
76
8
45
61
20
80
25
48
13
97
32
58
86
60
29
11
24
67
44
46
81
51
17
47
57
83
69
85
77
92
10
3
59
90
38
37
52
22
78
74
6
7
16
34
50
19
88
2
70
63
94
23
28
27
程序如下:
D=cond(A)
D =
1.3533e+003
5、建立矩阵A,试比较sqrtm(A)和sqrt(A),分析它们的区别。
程序及运行结果如下:
A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
B=sqrtm(A)
B=P1*P2*A
1.0838 - 0.1626i 1.5043 - 1.0419i 2.4984 - 1.9125i 0.0198 + 1.1838i 2.9560 + 1.9331i
C=sqrt(A)
C =
4.1231 4.8990 1.0000 2.8284 3.8730
4.7958 2.2361 2.6458 3.7417 4.0000
341.8069
340.6471
340.3036
340.0241
338.8043
337.5270
336.2928
336.1132
335.4153
335.2213
333.6805
330.4060
329.8989
329.6462
328.3428
327.3087
327.1218
326.5555
324.9407
-0.0313 + 0.5290i 0.6707 + 0.3211i 3.3478 + 1.7354i 1.9336 - 0.9417i 2.1415 - 1.6437i
0.9124 - 0.1853i 0.9210 - 0.3527i 1.8626 - 0.9590i 4.2785 + 0.5576i 0.0878 + 0.9393i
课程名称:MATLAB实验
题 目:实验二 MATLAB数值计算与符号运算功能
学生姓名:
专 业:电子信息工程
班 级:
学 号:
指导教师:张 静
实验地点:现代通信实验室
日 期:2012年12月2日
实验2 MATLAB数值计算、符号运算功能
一、实验目的
1、掌握建立矩阵、矩阵分析与处理的方法。
2、掌握线性方程组的求解方法。
B=[0.95;0.67;0.52];
X=A\B
X =
1.2000
0.6000
0.6000
(2)将方程右边向量元素b3=0.52改为0.53再求解,并比较b3的变化和解的相对变化。
程序如下:
C=[0.95;0.67;0.53];
X1=A\C
X1 =
3.0000
-6.6000
6.6000
(3)计算系数矩阵的条件数并分析结论。
2、不用rot90函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A,A左旋后得到B,右旋后得到C。
, ,
提示:先将A转置,再作上下翻转,则完成左旋90°;如将A转置后作左右翻转,则完成右旋转90°,可用flipud、fliplr函数。
程序及运行结果如下:
A=[1 4 7 10;2 5 8 11;3 6 9 12];
程序如下:
B=sum(P,2);
disp('最高分及学号:'),[Y S]=max(B)
最高分及学号:
Y =
437.2536
S =
54
disp('最低分及学号:'),[X S]=min(B)
最低分及学号:
X =
278.3152
S =
36
(4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。
随机数的最小元素为:4.8345e-005
(3)大于0.5的随机数个数占总数的百分比。
程序如下:
disp(['大于0.5的随机数个数占总数的百分比为:',num2str(size(find(x>0.5))/size(x)*100),'%'])
大于0.5的随机数个数占总数的百分比为:50.0567%
8、分别用3种不同的数值方法求解线性方程组。(提示:LU函数、inv函数)
324.1756
323.2536
320.5619
319.8783
318.6787
316.6444
313.5261
310.6905
309.9627
309.7136
307.9753
305.8118
300.7805
299.5111
298.9252
290.9905
285.4975
278.4728
278.3152
程序如下:
P=45+50*rand(100,5);
[Y S]=max(P)
Y =
93.0779 94.4220 94.7741 94.9739 94.5852
S =
37 74 78 75 62
[X S]=min(P)
X =
45.0599 45.4879 45.8337 45.0710 45.0171
Matrix must be positive definite.
命令执行时,出现错误信息,说明A为非正定矩阵。
9、求函数 在(0,1)内的最小值。
程序如下:
X=fminbnd('(x.^3+cos(x)+x*log10(x))/exp(x)',0,1)
X =
0.6638
10、已知x=6,y=5,利用符号表达式: 。(提示:定义符号常数 , )
350.5257
349.7219
348.5541
347.4418
347.3947
347.2428
346.6537
345.2698
345.2107
345.1214
344.9503
344.5771
343.4648
343.1131
342.6539
342.4628
342.1198
342.1098
341.8958
-0.6084 -0.7867 0.8725
0.3487 0.5501 0.4050
D =
-25.3169 0 0
0-10.5182 0
00 16.8351
数学意义:
在数学上,特别是线性代数中,对于一个给定的线性变换,它的特征向量(本征向量或称正规正交向量)是这样一个非零的向量v:当v经过这个线性变换的作用之后,得到的新向量(长度也许改变)仍然与原来的v保持在同一条线上。一个特征向量的长度在该线性变换下缩放的比例称为其特征值(本征值)。如果特征值为正,则表示v在经过线性变换的作用后方向也不变;如果特征值为负,说明方向会反转;如果特征值为0,则是表示缩回零点。但无论怎样,仍在同一条直线上。
提示:编程时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。
程序如下:
B=sum(P,2);
[X I]=sort(B);
zcj=flipud(X)
xsxh=flipud(I)
zcj =
437.2536
417.5861
409.8246
405.3662
400.4775
400.3304
398.9580
396.3125
395.3727
394.7027
390.2619
389.5924
389.0519
387.3632
385.5373
383.6731
379.2550
379.0279
377.8304
376.7025
375.3783
375.1935
373.1955
371.7458
b=[12,-6,4,0]';
[Q,R]=qr(A);
x=R\(Q\b)
x =
7.1667
-0.7222
-21.3056
-14.0000
方法三:
Cholesky分解:
A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];
b=[12,-6,4,0]';
R=chol(A)
??? Error using ==> chol
三、实验内容
1、已知 ,求A的特征值及特征向量,并分析其数学意义。
程序:
求A的特征值:A=[-29 6 18;20 5 12;-8 8 5];
E=eig(A)
运行结果:E =
-25.3169
-10.5182
16.8351
求A的特征向量:
[V,D]=eig(A)
运行结果:V =
0.7130 0.2803 0.2733
B=A'
B =
1 2 3
4 5 6
7 8 9
10 11 12
C=flipud(B)
C =
10 11 12
7 8 9
4 5 6
1 2 3
D=fliplr(B)
D =
3 2 1
6 5 4
9 8 7
12 11 10
3、建立一个5*5矩阵,求它的行列式值、秩。
程序及运行结果如下:
A=magic(5)
A =
17 24 1 8 15
3、掌握数据统计和分析方法、多项式的常用运算。
4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。
5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。
二、预习要求
(1)复习4、5、6章所讲内容;
(2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。
S =
82 5 92 36 74
(2)分别求每门课的平均分和标准方差。
程序如下:
y=mean(P)
S=std(P)
y =
66.7164 70.0872 71.3503 69.8392 71.4263
S =
13.9835 14.5437 14.3182 14.9585 13.9962
(3)5门课程总分的最高分、最低分及相应学生序号。
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
B=det(A)
B =
5.0700e+006
r=rank(A)
r =
5
4、下面是一个线性方程组 ,
(1)求方程的解。
程序如下:A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];
2.0000 2.4495 3.6056 4.4721 4.6904
3.1623 3.4641 4.3589 4.5826 1.7321
3.3166 4.2426 5.0000 1.4142 3.0000
6、将100个学生5门功课的成绩存入矩阵P中,进行如下处理:
(1)分别求每门课的最高分、最低分及相应学生序号。
程序如下:
x=sym('6');
y=sym('5');
z=(x+1)/(sqrt(3+x)-y)
z =
-7/2
11、已知: , , 求:
(1) 。
程序如下:
syms a b c d e f g h i;
A=[a,b,c;d,e,f;g,h,i];
P1=[0,1,0;1,0,0;0,0,1];
P2=[1,0,0;0,1,0;1,0,1];
方法一:
采用LU分解:
A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];
b=[12,-6,4,0]';
[L,U]=lu(A);
x=U\(L\b)
x =
7.1667
-0.7222
-21.3056
-14.0000
方法二:
QR分解:
A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];
18
64
4
1
49
95
79
99
65
82
43
100
96
89
33
40
41
73
56
15
5
30
31
39
36
7、利用MΒιβλιοθήκη BaiduTLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:
(1)均值和标准方差;
程序如下:
k=0;
x=rand(1,30000);
disp(['随机数的均值为:',num2str(mean(x))])
366.2966
365.3480
364.5533
363.1062
362.5595
361.3854
360.9448
360.4308
359.6062
358.4492
358.3805
358.0559
358.0461
357.7255
354.3539
354.2564
352.0669
351.6719
B =
3.5456 + 1.3435i 2.7962 - 1.5926i -0.3000 + 0.8860i 0.5706 - 0.1082i 1.4499 - 0.5287i
2.5518 - 1.5247i 2.1700 + 2.6661i 0.6534 + 0.2501i 1.2598 - 0.6915i 1.4272 - 0.7001i
随机数的均值为:0.49875
disp(['随机数的标准方差为:',num2str(std(x))])
随机数的标准方差为:0.28898
(2)最大元素和最小元素;
程序如下:
disp(['随机数的最大元素为:',num2str(max(x))])
随机数的最大元素为:0.99997
disp(['随机数的最小元素为:',num2str(min(x))])
xsxh =
54
68
93
21
53
62
91
87
71
55
42
75
66
35
14
84
72
26
9
98
12
76
8
45
61
20
80
25
48
13
97
32
58
86
60
29
11
24
67
44
46
81
51
17
47
57
83
69
85
77
92
10
3
59
90
38
37
52
22
78
74
6
7
16
34
50
19
88
2
70
63
94
23
28
27
程序如下:
D=cond(A)
D =
1.3533e+003
5、建立矩阵A,试比较sqrtm(A)和sqrt(A),分析它们的区别。
程序及运行结果如下:
A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
B=sqrtm(A)
B=P1*P2*A
1.0838 - 0.1626i 1.5043 - 1.0419i 2.4984 - 1.9125i 0.0198 + 1.1838i 2.9560 + 1.9331i
C=sqrt(A)
C =
4.1231 4.8990 1.0000 2.8284 3.8730
4.7958 2.2361 2.6458 3.7417 4.0000
341.8069
340.6471
340.3036
340.0241
338.8043
337.5270
336.2928
336.1132
335.4153
335.2213
333.6805
330.4060
329.8989
329.6462
328.3428
327.3087
327.1218
326.5555
324.9407
-0.0313 + 0.5290i 0.6707 + 0.3211i 3.3478 + 1.7354i 1.9336 - 0.9417i 2.1415 - 1.6437i
0.9124 - 0.1853i 0.9210 - 0.3527i 1.8626 - 0.9590i 4.2785 + 0.5576i 0.0878 + 0.9393i
课程名称:MATLAB实验
题 目:实验二 MATLAB数值计算与符号运算功能
学生姓名:
专 业:电子信息工程
班 级:
学 号:
指导教师:张 静
实验地点:现代通信实验室
日 期:2012年12月2日
实验2 MATLAB数值计算、符号运算功能
一、实验目的
1、掌握建立矩阵、矩阵分析与处理的方法。
2、掌握线性方程组的求解方法。
B=[0.95;0.67;0.52];
X=A\B
X =
1.2000
0.6000
0.6000
(2)将方程右边向量元素b3=0.52改为0.53再求解,并比较b3的变化和解的相对变化。
程序如下:
C=[0.95;0.67;0.53];
X1=A\C
X1 =
3.0000
-6.6000
6.6000
(3)计算系数矩阵的条件数并分析结论。
2、不用rot90函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A,A左旋后得到B,右旋后得到C。
, ,
提示:先将A转置,再作上下翻转,则完成左旋90°;如将A转置后作左右翻转,则完成右旋转90°,可用flipud、fliplr函数。
程序及运行结果如下:
A=[1 4 7 10;2 5 8 11;3 6 9 12];
程序如下:
B=sum(P,2);
disp('最高分及学号:'),[Y S]=max(B)
最高分及学号:
Y =
437.2536
S =
54
disp('最低分及学号:'),[X S]=min(B)
最低分及学号:
X =
278.3152
S =
36
(4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。
随机数的最小元素为:4.8345e-005
(3)大于0.5的随机数个数占总数的百分比。
程序如下:
disp(['大于0.5的随机数个数占总数的百分比为:',num2str(size(find(x>0.5))/size(x)*100),'%'])
大于0.5的随机数个数占总数的百分比为:50.0567%
8、分别用3种不同的数值方法求解线性方程组。(提示:LU函数、inv函数)
324.1756
323.2536
320.5619
319.8783
318.6787
316.6444
313.5261
310.6905
309.9627
309.7136
307.9753
305.8118
300.7805
299.5111
298.9252
290.9905
285.4975
278.4728
278.3152
程序如下:
P=45+50*rand(100,5);
[Y S]=max(P)
Y =
93.0779 94.4220 94.7741 94.9739 94.5852
S =
37 74 78 75 62
[X S]=min(P)
X =
45.0599 45.4879 45.8337 45.0710 45.0171
Matrix must be positive definite.
命令执行时,出现错误信息,说明A为非正定矩阵。
9、求函数 在(0,1)内的最小值。
程序如下:
X=fminbnd('(x.^3+cos(x)+x*log10(x))/exp(x)',0,1)
X =
0.6638
10、已知x=6,y=5,利用符号表达式: 。(提示:定义符号常数 , )
350.5257
349.7219
348.5541
347.4418
347.3947
347.2428
346.6537
345.2698
345.2107
345.1214
344.9503
344.5771
343.4648
343.1131
342.6539
342.4628
342.1198
342.1098
341.8958
-0.6084 -0.7867 0.8725
0.3487 0.5501 0.4050
D =
-25.3169 0 0
0-10.5182 0
00 16.8351
数学意义:
在数学上,特别是线性代数中,对于一个给定的线性变换,它的特征向量(本征向量或称正规正交向量)是这样一个非零的向量v:当v经过这个线性变换的作用之后,得到的新向量(长度也许改变)仍然与原来的v保持在同一条线上。一个特征向量的长度在该线性变换下缩放的比例称为其特征值(本征值)。如果特征值为正,则表示v在经过线性变换的作用后方向也不变;如果特征值为负,说明方向会反转;如果特征值为0,则是表示缩回零点。但无论怎样,仍在同一条直线上。
提示:编程时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。
程序如下:
B=sum(P,2);
[X I]=sort(B);
zcj=flipud(X)
xsxh=flipud(I)
zcj =
437.2536
417.5861
409.8246
405.3662
400.4775
400.3304
398.9580
396.3125
395.3727
394.7027
390.2619
389.5924
389.0519
387.3632
385.5373
383.6731
379.2550
379.0279
377.8304
376.7025
375.3783
375.1935
373.1955
371.7458
b=[12,-6,4,0]';
[Q,R]=qr(A);
x=R\(Q\b)
x =
7.1667
-0.7222
-21.3056
-14.0000
方法三:
Cholesky分解:
A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];
b=[12,-6,4,0]';
R=chol(A)
??? Error using ==> chol
三、实验内容
1、已知 ,求A的特征值及特征向量,并分析其数学意义。
程序:
求A的特征值:A=[-29 6 18;20 5 12;-8 8 5];
E=eig(A)
运行结果:E =
-25.3169
-10.5182
16.8351
求A的特征向量:
[V,D]=eig(A)
运行结果:V =
0.7130 0.2803 0.2733
B=A'
B =
1 2 3
4 5 6
7 8 9
10 11 12
C=flipud(B)
C =
10 11 12
7 8 9
4 5 6
1 2 3
D=fliplr(B)
D =
3 2 1
6 5 4
9 8 7
12 11 10
3、建立一个5*5矩阵,求它的行列式值、秩。
程序及运行结果如下:
A=magic(5)
A =
17 24 1 8 15
3、掌握数据统计和分析方法、多项式的常用运算。
4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。
5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。
二、预习要求
(1)复习4、5、6章所讲内容;
(2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。
S =
82 5 92 36 74
(2)分别求每门课的平均分和标准方差。
程序如下:
y=mean(P)
S=std(P)
y =
66.7164 70.0872 71.3503 69.8392 71.4263
S =
13.9835 14.5437 14.3182 14.9585 13.9962
(3)5门课程总分的最高分、最低分及相应学生序号。
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
B=det(A)
B =
5.0700e+006
r=rank(A)
r =
5
4、下面是一个线性方程组 ,
(1)求方程的解。
程序如下:A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];
2.0000 2.4495 3.6056 4.4721 4.6904
3.1623 3.4641 4.3589 4.5826 1.7321
3.3166 4.2426 5.0000 1.4142 3.0000
6、将100个学生5门功课的成绩存入矩阵P中,进行如下处理:
(1)分别求每门课的最高分、最低分及相应学生序号。
程序如下:
x=sym('6');
y=sym('5');
z=(x+1)/(sqrt(3+x)-y)
z =
-7/2
11、已知: , , 求:
(1) 。
程序如下:
syms a b c d e f g h i;
A=[a,b,c;d,e,f;g,h,i];
P1=[0,1,0;1,0,0;0,0,1];
P2=[1,0,0;0,1,0;1,0,1];
方法一:
采用LU分解:
A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];
b=[12,-6,4,0]';
[L,U]=lu(A);
x=U\(L\b)
x =
7.1667
-0.7222
-21.3056
-14.0000
方法二:
QR分解:
A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];
18
64
4
1
49
95
79
99
65
82
43
100
96
89
33
40
41
73
56
15
5
30
31
39
36
7、利用MΒιβλιοθήκη BaiduTLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:
(1)均值和标准方差;
程序如下:
k=0;
x=rand(1,30000);
disp(['随机数的均值为:',num2str(mean(x))])