1/23核科学技术学院实验报告实验项目名称MATLAB数值计算所属课程名称MATLAB及应用实验类型上机实验实验日期指导教师班级学号姓名成绩2/23一、实验名称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为系数的多项式的根,包括重根,复根3/23多项式求值: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.已知矩阵1112131421222324A=3132333441424344(1)如何输出A的第1列?(2)如何输出A的第2行?(3)如何输出A的第2列和第3列?(4)要得到22233233,怎么办?(5)如何输出A的第1列和第3列?(6)如何将21和31按一列输出?(7)如何将A所有元素按从最左列至最右列新排列为一列输出?(8)如何将A原阵输出?(9)如何输出2阶全1阵?(10)如何输出2阶单位阵?(11)试用分块矩阵的方法生成阵1112131411212223241131323334104142434401(12)求A的主对角线(13)求除去A阵第1列后新阵的主对角线(14)求除去A阵第1行后新阵的主对角线4/23(15)求除去A阵从左到右前2列后新阵的主对角线(16)要分别单独输出A阵元素11、22、33、44,怎么办?(17)如何将11、31、12、32、13、33、14、34按顺序一行输出?2.已知2354127354217623A.求(1)A的逆;(2)A的行列式;(3)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输入如下矩阵A0/3A=/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=II是全1阵6某专业有三名研究生,本学期选修了四门课程,若这些研究生的姓名,学号,性别,出生年月,课程名称,考试成绩可任意假定,(1)分别用结构型变量和细胞型变量表示以上信息;(2)举例说明查阅以上任何一条信息的方法;(3)求每一个研究生的平均成绩.7.已知多项式32()3279pxxxx,试求:(1)p(x)的根;(2)由其根生成一5/23个多项式q(x)并与p(x)比较;(3)计算p(1.5),p(-2),p(5)的值。8已知矩阵A=[1.2350.9;51.756;3901;1234],求(1)A的特征多项式(2)特征多项式中未知数为20时的值(3)特征多项式的根(4)特征多项式的导数9.在实验中测得如下10组数据:X12345610121516Y7151930383723693928(1)求最多能拟合多项式的次数是多少?并求出各项系数。(2)将数据点和拟合曲线在同一图中绘出。五、实验过程及结果(含源代码)1、在MATLAB中新建.m文件,输入实验代码如下并保存:clc,clearA=[11121314;21222324;31323334;41424344];A1=A(:,1)A2=A(2,:)A3=A(:,2:3)A4=A(2:3,2:3)A5=A(:,1:2:3)A6=A(2:3)A7=A(:)A8=A(:,:)A9=ones(2,2)6/23A10=eye(2)A11=[A,[ones(2,2);eye(2)]]A12=diag(A)A13=diag(A,1)A14=diag(A,-1)A15=diag(A,2)点击“run”运行得到结果如下:A1=11213141A2=21222324A3=1213222332334243A4=222332337/23A5=1113212331334143A6=2131A7=11213141122232421323334314248/233444A8=11121314212223243132333441424344A9=1111A10=1001A11=1112131411212223241131323334104142434401A12=1122339/2344A13=122334A14=213243A15=13242、在命令窗口输入代码如下:A=[23-54;-127-3;5-421;76-2-3];inv(A)ans=0.01980.00100.10690.06100.11990.1116-0.06360.02710.07090.16160.0667-0.04480.23880.11780.0777-0.1069det(A)10/23ans=-1918trace(A)ans=3E=eig(A)E=-5.65454.68881.9828+8.2711i1.9828-8.2711i[V,D]=eig(A)V=0.38500.4655-0.0889+0.4794i-0.0889-0.4794i-0.11960.4083-0.1447-0.5624i-0.1447+0.5624i-0.19720.48720.59030.5903-0.89360.6157-0.1444+0.2359i-0.1444-0.2359iD=11/23-5.654500004.688800001.9828+8.2711i00001.9828-8.2711i3、在命令窗口键入实验代码如下:A=magic(3),B=7*rand(3)A=816357492B=6.65093.40193.19531.61806.23910.12954.24795.33475.7499A*Bans=80.312665.462260.190812/2357.777878.743850.482449.661180.428725.4465A&Bans=111111111A|Bans=111111111~Aans=000000000A==Bans=00000000013/23ABans=101101010A=magic(3)A=816357492B=rand(3)B=0.95010.48600.45650.23110.89130.01850.60680.76210.8214C=zeros(1,2)14/23C=00D=ones(3,4)D=111111111111E=eye(3)E=1000100014、在命令窗口键入实验代码及运行结果如下:H=hilb(4)H=15/231.00000.50000.33330.25000.50000.33330.25000.20000.33330.25000.20000.16670.25000.20000.16670.1429H'ans=1.00000.50000.33330.25000.50000.33330.25000.20000.33330.25000.20000.16670.25000.20000.16670.1429rot90(H)ans=0.25000.20000.16670.14290.33330.25000.20000.16670.50000.33330.25000.20001.00000.50000.33330.2500fliplr(H)ans=0.25000.33330.50001.00000.20000.25000.33330.50000.16670.20000.25000.33330.14290.16670.20000.250016/23flipud(H)ans=0.25000.20000.16670.14290.33330.25000.20000.16670.50000.33330.25000.20001.00000.50000.33330.25005、在命令窗口键入实验代码及运行结果如下:A=[0pi/3;pi/6pi/2]A=01.04720.52361.5708B1=sin(A)B1=00.86600.50001.0000B2=cos(A)B2=1.00000.50000.86600.0000B1^2+B2^2ans=1.86601.366017/231.36601.8660[M,L]=eig(A)M=-0.9628-0.48960.2703-0.8719L=-0.2940001.8648M*sin(L)*inv(M)ans=-0.12000.60480.30240.7873funm(A,@sin)ans=-0.12000.60480.30240.7873funm(A,@cos)ans=0.7873-0.6048-0.3024-0.1200(funm(A,@sin))^2+(funm(A,@cos))^2ans=18/231.0000-0.0000-0.00001.00006、实验代码及运行结果如下:(1)分别用细胞型变量和结构型变量表示题示信息如下:%细胞型变量A1={'李明',20130001,'男',19890214,'MATLAB',99,'ENGLISH',88,'Matrix',96,'Math',94};A2={'张远',20130006,'男',19900425,'MATLAB',98,'ENGLISH',80,'Matrix',90,'Math',96};A3={'王云',20130009,'女',19901001,'MATLAB',97,'ENGLISH',89,'Matrix',88,'Math',90};%结构型变量B1=struct('Name','李明','StuNumber',20130001,'Sex','男','Birth',19890214,...'MATLAB',99,'ENGLISH',88,'Matrix',96,'Math',94);B2=struct('Name','张远','StuNumber',20130006,'Sex','男','Birth',19900425,...'MATLAB',98,'ENGLISH',80,'Matrix',90,'Math',96);B3=struct('Name','王云','StuNumber',20130009,'Sex','女','Birth',19901001,...'MATLAB',