《南华大学《MATLAB及应用》实验报告1.doc》由会员分享,可在线阅读,更多相关《南华大学《MATLAB及应用》实验报告1.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、核科学技术学院实 验 报 告实验项目名称 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
2、) 矩阵的逆: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可以是一个数也可以是一个矩阵 多项
3、式求拟合次数: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 3441 42 43 44(1) 如何输出A的第1列? (2) 如何输出A的第2行? (3) 如何输出A的第2列和第3列?(4) 要得到,怎么办?(5) 如何输出A的第1列和第3列?(6) 如何将21和31按一列输出?(7) 如何将A所有元素按从最左列至最右列新排列为一列输出? (8
4、) 如何将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按顺序一行输出?2. 已知 .求(1)A的逆;(2)A的行列式;(3)
5、A的迹;(4)A的所有特征向量和特征值。3. A=magic(3),B=7*rand(3),计算数组A、B乘积,计算A&B,A|B,A,A=B,AB 如何生成一个三阶幻方、3阶随机阵、1行2列全零阵、3行4列全一阵、3阶单位阵?4. 生成一个4阶Hilbert矩阵H,(1)求H的转置;(2)将H旋转90度;(3)对H实行左右翻转;(4)对H实行上下翻转。5 输入如下矩阵A 0 p/3A p/6 p/2(1) 求矩阵B1,B1中每一元素为对应矩阵中每一元素的正弦函数(2) 求矩阵B2, B2中每一元素为对应矩阵中每一元素的余弦函数(3) 求 B12+B22(4) 求矩阵的特征值与特征矢量:称特征
6、矢量为,而特征值矩阵为(5) 求Msin(L)M-1 (6) 使用funm命令求矩阵A的正弦函数(结果应该与(5)同)(7) 求cosA(8) 证明 sin2A+cos2A=I I是全1阵6 某专业有三名研究生,本学期选修了四门课程,若这些研究生的姓名,学号,性别,出生年月,课程名称,考试成绩可任意假定, (1)分别用结构型变量和细胞型变量表示以上信息; (2)举例说明查阅以上任何一条信息的方法; (3)求每一个研究生的平均成绩.7. 已知多项式,试求:(1)p(x)的根;(2)由其根生成一个多项式q(x)并与p(x)比较;(3)计算p(1.5),p(-2),p(5)的值。8 已知矩阵A=1.
7、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 44A=A(:,1)A=A(2
8、,:)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 44A = 11 21 31 41A = 21 22 23 24A
9、 = 12 13 22 23 32 33 42 43A = 22 23 32 33A = 11 13 21 23 31 33 41 43A = 21 31A = 11 21 31 41 12 22 32 42 13 23 33 43 14 24 34 44A = 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44A = 1 1 1 1A = 1 0 0 1A = 11 12 13 14 1 1 21 22 23 24 1 1 31 32 33 34 1 0 41 42 43 44 0 1A = 11 22 33 44A = 12 23 34A = 2
10、1 32 43A = 1324A = 11 22 33 44B = 11 13 21 23 31 33 41 432、Matlab程序:A=2 3 -5 4;-1 2 7 -3;5 -4 2 1;7 6 -2 -3inv(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 -3ans = 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
11、.0777 -0.1069ans = -1.9180e+03ans = 3E = -5.6545 + 0.0000i 4.6888 + 0.0000i 1.9828 + 8.2711i 1.9828 - 8.2711iV = 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.
12、0000i 0.5903 + 0.0000i -0.8936 + 0.0000i 0.6157 + 0.0000i -0.1444 + 0.2359i -0.1444 - 0.2359iD = -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.0000
13、i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.9828 - 8.2711i3、Matlab程序:A=magic(3)B=7*rand(3)A*BA&BA|BAA=BAB运行结果;A = 8 1 6 3 5 7 4 9 2B = 5.7031 6.3936 1.9495 6.3405 4.4265 3.8282 0.8889 0.6828 6.7025ans = 57.2985 59.6723 59.6394 55.0343 46.0929 71.9072 81.6550 66.7787 55.6566ans = 1 1 1 1 1
14、 1 1 1 1ans = 1 1 1 1 1 1 1 1 1ans = 0 0 0 0 0 0 0 0 0ans = 0 0 0 0 0 0 0 0 0ans = 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 2ans = 0.9649 0.9572 0.1419 0.1576 0.4854 0.4218 0.9706 0.8003 0.9157ans = 0 0ans = 1 1 1 1 1 1 1 1 1 1
15、1 1ans = 1 0 0 0 1 0 0 0 14、Matlab程序:H=hilb(4)Hrot90(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.1429ans = 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.1
16、667 0.1429ans = 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.2500ans = 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.2500ans = 0.2500 0.2000 0.1667 0.1429 0.3333 0.2500 0.2000 0
17、.1667 0.5000 0.3333 0.2500 0.20001.0000 0.5000 0.3333 0.25005、A=0 pi/3;pi/6 pi/2 B1=sin(A)B2=cos(A)B12+B22M,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.5708B1 = 0 0.8660 0.5000 1.0000B2 = 1.0000 0.5000 0.8660 0.0000ans = 1.8660 1.3660 1.3660
18、 1.8660M = -0.9628 -0.4896 0.2703 -0.8719L = -0.2940 0 0 1.8648ans = -0.1200 0.6048 0.3024 0.7873ans = -0.1200 0.6048 0.3024 0.7873ans = 0.7873 -0.6048 -0.3024 -0.1200ans = 1.0000 -0.0000 -0.0000 1.00006、(1)% 细胞型变量A1=鲁明,20140001,男,19950214,MATLAB,99,ENGLISH,88,Matrix,96,Math,94;A2=钱旭,20140006,男,1995
19、0425,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,Ma
20、trix,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; endend运行结果:name =鲁明Birthans =1995
21、0214(3)求研究生平均成绩程序如下:for i=1:3Average(i)=(C(i).MATLAB+C(i).ENGLISH+C(i).Matrix+C(i).Math)/4; endAverage运行结果:Average = 94.2500 91.0000 91.25007、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.0000iq = 1.0000 -0.6667 2.3333 3.0000ans = 25.1
22、250 -37.0000 369.00008、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 = x4 - (69*x3)/10 - (3863*x2)/50 - (8613*x)/100 + 12091/20 ans = 7.2778e+04ans = 13.0527 + 0.0000i -4.1671 + 1.9663i -4.1671 - 1.9663i 2.1815 + 0.0000i a
23、ns = 4*x3 - (207*x2)/10 - (3863*x)/25 - 8613/1009、因题目给出的实验数据是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.0989s = R: 10x10 double df: 141 normr: 5.4090e-09得到的拟合曲线图像:(此处按题号顺序写上所写的程序语句内容以及matlab中出现的程序运行结果)六、实验总结