南华大学《MATLAB及应用》实验报告1

更新时间:2023-11-28 06:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

核科学技术学院 实 验 报 告

实验项目名称 MATLAB数值计算 所属课程名称 MATLAB及应用 实 验 类 型 上机实验 实 验 日 期 2015年12月 日 指 导 教 师 谢 芹

班 级 学 号 姓 名 成 绩

一、实验名称

MATLAB数值计算

二、实验目的

(1)掌握MATLAB变量的使用 (2)掌握MATLAB数组的创建 (3)掌握MATLAB数组和矩阵的运算 (4)熟悉MATLAB多项式的运用

三、实验原理

1. 矩阵分析

矩阵转置:单引号(’)

矩阵的旋转:rot90(A,k),功能是将矩阵A逆时针旋转90度的k倍,缺省值是1

矩阵的左右翻转:fliplr(A) 矩阵的上下翻转:flipud(A) 矩阵的逆:inv(A),与A^(-1)等价 矩阵的行列式:det(A) 矩阵的秩: rank(A) 矩阵的迹:trace(A) 将矩阵化为最简式:rref(A)

矩阵的特征值与特征向量:(1) E = eig(A);矩阵A的所有特征值构成向量E;(2) [V,D]=eig(A);A的所有特征值构成对角阵D,A的特征向量构成V的列向量;

2. 多项式

多项式的建立:若多的项的全部根构成的向量为X,则以X为根的多项式为poly(X)

多项式的根:roots(p)计算以向量p为系数的多项式的根,包括重根,复根 多项式求值:polyval(p,x),p是多项式的系数,x可以是一个数也可以是一

个矩阵

多项式求拟合次数:polyfit(x,y,n),x可以是一个数也可以是一个矩阵,y是x对应的数或矩阵

多项式的四则运算:(1)P1+P2;(2)P1-P2;(3)conv(P1,P2), (4)deconv(P1,P2)

四、实验内容

1. 已知矩阵 11 12 13 14 21 22 23 24 A= 31 32 33 34

41 42 43 44

(1) 如何输出A的第1列? (2) 如何输出A的第2行? (3) 如何输出A的第2列和第3列?

?2223?(4) 要得到??,怎么办?

3233??(5) 如何输出A的第1列和第3列? (6) 如何将21和31按一列输出?

(7) 如何将A所有元素按从最左列至最右列新排列为一列输出? (8) 如何将A原阵输出? (9) 如何输出2阶全1阵? (10) 如何输出2阶单位阵? (11) 试用分块矩阵的方法生成阵

11 12 13 14 1 1

21 22 23 24 1 1 31 32 33 34 1 0 41 42 43 44 0 1

(12) 求A的主对角线

(13) 求除去A阵第1列后新阵的主对角线 (14) 求除去A阵第1行后新阵的主对角线 (15) 求除去A阵从左到右前2列后新阵的主对角线 (16) 要分别单独输出A阵元素11、22、33、44,怎么办? (17) 如何将11、31、12、32、13、33、14、34按顺序一行输出?

?23?54???127?3?? .求(1)A的逆;2. 已知 A??(2)A的行列式;(3)A的迹;

?5?421???76?2?3??(4)A的所有特征向量和特征值。

3. A=magic(3),B=7*rand(3),计算数组A、B乘积,计算A&B,A|B,~A,A==B,A>B 如何生成一个三阶幻方、3阶随机阵、1行2列全零阵、3行4列全一阵、3阶单位阵?

4. 生成一个4阶Hilbert矩阵H,(1)求H的转置;(2)将H旋转90度;(3)对H实行左右翻转;(4)对H实行上下翻转。 5 输入如下矩阵A

0 ?/3 A= ?/6 ?/2

(1) 求矩阵B1, B1中每一元素为对应矩阵A中每一元素的正弦函数 (2) 求矩阵B2, B2中每一元素为对应矩阵A中每一元素的余弦函数 (3) 求 B12+B22

(4) 求矩阵A的特征值与特征矢量:称特征矢量为M,而特征值矩阵为L (5) 求Msin(L)M-1

(6) 使用funm命令求矩阵A的正弦函数(结果应该与(5)同) (7) 求cosA

(8) 证明 sin2A+cos2A=I I是全1阵

6 某专业有三名研究生,本学期选修了四门课程,若这些研究生的姓名,学号,性别,出生年月,课程名称,考试成绩可任意假定, (1)分别用结构型变量和细胞型变量表示以上信息; (2)举例说明查阅以上任何一条信息的方法; (3)求每一个研究生的平均成绩.

7. 已知多项式p(x)?3x3?2x2?7x?9,试求:(1)p(x)的根;(2)由其根生成一个多项式q(x)并与p(x)比较;(3)计算p(1.5),p(-2),p(5)的值。 8 已知矩阵A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4],求 (1)A的特征多项式

(2)特征多项式中未知数为20 时的值 (3)特征多项式的根 (4)特征多项式的导数 9. 在实验中测得如下10组数据:

X 1 2 3 4 5 6 10 12 15 16 Y 7 15 19 30 38 37 23 69 39 28 (1)求最多能拟合多项式的次数是多少?并求出各项系数。 (2)将数据点和拟合曲线在同一图中绘出。

五、实验过程及结果(含源代码)

1、

Matlab程序: A=[11 12 13 14;21 22 23 24;31 32 33 34;41 42 43 44] A=A(:,1) A=A(2,:) A=A(:,2:3) A=A(2:3,2:3) A=A(:,1:2:3) A=A(2:3,1) A=A(:) A=A(:,:) A=ones(2,2) A=eye(2) A=[A,[ones(2,2);eye(2)]] A=diag(A)

A=diag(A,1) A=diag(A,-1) A=diag(A,2) A=diag(A) B=[A(1,1) A(1,3) A(2,1) A(2,3) A(3,1) A(3,3) A(4,1) A(4,3)] 运行结果: A = 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 A = 11 21 31 41 A = 21 22 23 24 A = 12 13 22 23 32 33 42 43 A = 22 23 32 33 A = 11 13 21 23 31 33 41 43 A = 21 31 A = 11 21 31 41 12 22 32 42 13 23 33 43 14 24 34 44 A = 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 A = 1 1 1 1 A = 1 0 0 1 A = 11 12 13 14 1 1 21 22 23 24 1 1 31 32 33 34 1 0 41 42 43 44 0 1 A = 11 22 33 44 A = 12 23 34 A = 21 32 43 A = 13 24 A = 11 22 33 44 B = 11 13 21 23 31 33 41 43 2、

Matlab程序:

A=[2 3 -5 4;-1 2 7 -3;5 -4 2 1;7 6 -2 -3] inv(A) det(A) trace(A) E = eig(A) [V,D]=eig(A) 运行结果: A = 2 3 -5 4 -1 2 7 -3 5 -4 2 1 7 6 -2 -3 ans = 0.0198 0.0010 0.1069 0.0610 0.1199 0.1116 -0.0636 0.0271 0.0709 0.1616 0.0667 -0.0448 0.2388 0.1178 0.0777 -0.1069 ans = -1.9180e+03 ans = 3 E = -5.6545 + 0.0000i 4.6888 + 0.0000i 1.9828 + 8.2711i 1.9828 - 8.2711i V = 0.3850 + 0.0000i 0.4655 + 0.0000i -0.0889 + 0.4794i -0.0889 - 0.4794i -0.1196 + 0.0000i 0.4083 + 0.0000i -0.1447 - 0.5624i -0.1447 + 0.5624i -0.1972 + 0.0000i 0.4872 + 0.0000i 0.5903 + 0.0000i 0.5903 + 0.0000i -0.8936 + 0.0000i 0.6157 + 0.0000i -0.1444 + 0.2359i -0.1444 - 0.2359i D = -5.6545 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 4.6888 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.9828 + 8.2711i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.9828 - 8.2711i

3、

Matlab程序:

A=magic(3) B=7*rand(3) A*B A&B A|B ~A A==B A>B 运行结果;

A = 8 1 6 3 5 7 4 9 2 B = 5.7031 6.3936 1.9495 6.3405 4.4265 3.8282 0.8889 0.6828 6.7025 ans = 57.2985 59.6723 59.6394 55.0343 46.0929 71.9072 81.6550 66.7787 55.6566 ans = 1 1 1 1 1 1 1 1 1 ans = 1 1 1 1 1 1 1 1 1 ans = 0 0 0 0 0 0 0 0 0 ans = 0 0 0 0 0 0 0 0 0 ans = 1 0 1 0 1 1 1 1 0 三阶幻方magic(3) 三阶随机rand(3) 一行两列零矩阵zeros(1,2) 三行四列全一矩阵ones(3,4) 三阶单位矩阵eye(3) 运行结果: ans = 8 1 6 3 5 7 4 9 2 ans = 0.9649 0.9572 0.1419 0.1576 0.4854 0.4218 0.9706 0.8003 0.9157 ans = 0 0 ans = 1 1 1 1 1 1 1 1 1 1 1 1 ans = 1 0 0 0 1 0 0 0 1 4、

Matlab程序:

H=hilb(4) H' rot90(H) fliplr(H) flipud(H) 运行结果:

H = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429 ans = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429 ans = 0.2500 0.2000 0.1667 0.1429 0.3333 0.2500 0.2000 0.1667 0.5000 0.3333 0.2500 0.2000 1.0000 0.5000 0.3333 0.2500 ans = 0.2500 0.3333 0.5000 1.0000 0.2000 0.2500 0.3333 0.5000 0.1667 0.2000 0.2500 0.3333 0.1429 0.1667 0.2000 0.2500 ans = 0.2500 0.2000 0.1667 0.1429 0.3333 0.2500 0.2000 0.1667 0.5000 0.3333 0.2500 0.2000 1.0000 0.5000 0.3333 0.2500 5、

A=[0 pi/3;pi/6 pi/2] B1=sin(A) B2=cos(A) B1^2+B2^2 [M,L]=eig(A) M*sin(L)*inv(M) funm(A,‘sin’) funm(A,’cos‘) (funm(A,‘sin’))^2+(funm(A,’cos’))^2 运行结果:

A = 0 1.0472 0.5236 1.5708 B1 = 0 0.8660 0.5000 1.0000 B2 = 1.0000 0.5000 0.8660 0.0000 ans = 1.8660 1.3660 1.3660 1.8660 M =

-0.9628 -0.4896 0.2703 -0.8719 L = -0.2940 0 0 1.8648 ans = -0.1200 0.6048 0.3024 0.7873 ans = -0.1200 0.6048 0.3024 0.7873 ans = 0.7873 -0.6048 -0.3024 -0.1200 ans = 1.0000 -0.0000 -0.0000 1.0000 6、 (1)

% 细胞型变量 A1={'鲁明',20140001,'男',19950214,'MATLAB',99,'ENGLISH',88,'Matrix',96,'Math',94}; A2={'钱旭',20140006,'男',19950425,'MATLAB',98,'ENGLISH',80,'Matrix',90,'Math',96}; A3={'肖蝴',20140009,'女',19951001,'MATLAB',97,'ENGLISH',89,'Matrix',88,'Math',90}; %结构型变量 B1=struct('Name','鲁明','StuNumber',20140001,'Sex','男','Birth',19950214,... 'MATLAB',99,'ENGLISH',88,'Matrix',96,'Math',94); B2=struct('Name','钱旭','StuNumber', 20140006,'Sex','男','Birth', 19950425,... 'MATLAB',98,'ENGLISH',80,'Matrix',90,'Math',96); B3=struct('Name','肖蝴','StuNumber', 20140009,'Sex','女','Birth', 19951001,... 'MATLAB',97,'ENGLISH',90,'Matrix',88,'Math',90); C=[B1 B2 B3]; (2)

例如查询生日: Matlab程序如下: name='鲁明' information='Birth'; for i=1:3 if strcmp(C(i).Name,name)==1 disp(information); getfield(C(i),information) break; end end 运行结果: name = 鲁明 Birth ans = 19950214

(3)求研究生平均成绩 程序如下: for i=1:3 Average(i)=(C(i).MATLAB+C(i).ENGLISH+C(i).Matrix+C(i).Math)/4; end Average 运行结果: Average = 94.2500 91.0000 91.2500 7、

p=[3 -2 7 9]; x=roots(p) q=poly(x) b=[1.5 -2 5]; polyval(p,b) 运行结果: x = 0.7513 + 1.7392i 0.7513 - 1.7392i -0.8358 + 0.0000i q = 1.0000 -0.6667 2.3333 3.0000 ans = 25.1250 -37.0000 369.0000 8、

A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]; p=poly(A); poly2sym(p) polyval(p,20) roots(p) Dp=polyder(p); poly2sym(Dp) 运行结果: ans = x^4 - (69*x^3)/10 - (3863*x^2)/50 - (8613*x)/100 + 12091/20 ans = 7.2778e+04 ans = 13.0527 + 0.0000i -4.1671 + 1.9663i -4.1671 - 1.9663i 2.1815 + 0.0000i ans = 4*x^3 - (207*x^2)/10 - (3863*x)/25 - 8613/100 9、因题目给出的实验数据是10组,可以看做是10个多项式方程组,

仅当多项式的次数小于方程组的个数时,方程组为超定方程,此时才可以进行最小二乘多项式拟合,因此,最多拟合次数为9次。

Matlab程序如下;

X=[1 2 3 4 5 6 10 12 15 16]; Y=[7 15 19 30 38 37 23 69 39 28]; a=polyfit(X,Y,9); x2=1:0.1:16; y2=polyval(a,x2); plot(X,Y,'r*',x2,y2,'b-') legend('原数据点','拟合曲线') [a,s]=polyfit(x2,y2,9) 运行结果: a = Columns 1 through 7 0.0000 -0.0005 0.0150 -0.2693 2.9713 -20.5126 85.9563 Columns 8 through 10 -204.4409 250.3796 -107.0989 s = R: [10x10 double] df: 141 normr: 5.4090e-09 得到的拟合曲线图像:

(此处按题号顺序写上所写的程序语句内容以及matlab中出现的程序运行结果)

六、实验总结

本文来源:https://www.bwwdw.com/article/hg4t.html

Top