1、全国大学生数学建模竞赛讲座MATLAB数值计算功效主讲教师:徐标主讲教师:徐标 5 27 5 27第1页 1、生成数组函数“:”使用方法使用方法例例1 av=1:10%1 av=1:10%产生一个从产生一个从1 1到到1010数组,间隔为数组,间隔为1 1 av=1,2,3,4,5,6,7,8,9,10 av=1,2,3,4,5,6,7,8,9,10例例2 aw=1:2:10%2 aw=1:2:10%产生一个从产生一个从1 1到到1010之间数组,间隔为之间数组,间隔为2 2 aw=1,3,5,7,9 aw=1,3,5,7,9例例3 as=0:pi/40:4*pi3 as=0:pi/40:4*
2、pi as=as=0.7854 1.5708 2.3562 3.1416 3.9270 4.7124 0.7854 1.5708 2.3562 3.1416 3.9270 4.7124 5.4978 6.28325.4978 6.2832一一 数组与矩阵创建数组与矩阵创建第2页例例4 al=10:-2:04 al=10:-2:0 al=10 8 6 4 2 0 al=10 8 6 4 2 0例5 aj=linspace(0,1,10)%利用线性等分指令生成向量 aj=aj=0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.1111 0.2222 0.333
3、3 0.4444 0.5556 0.6667 0.7778 0.8889 1.00000.7778 0.8889 1.0000 例例6 ak=logspace(1,2,10)%6 ak=logspace(1,2,10)%利用对数等分指令生利用对数等分指令生成向量成向量 ak=ak=10.0000 12.9155 16.6810 21.5443 27.8256 10.0000 12.9155 16.6810 21.5443 27.8256 35.9381 46.415935.9381 46.4159 59.9484 77.4264 59.9484 77.4264 100.0000100.0000
4、第3页例例7 ap=rand(1,5)7 ap=rand(1,5)ap=0.0153 0.7468 0.4451 0.9318 0.4660第4页 2、生成矩阵函数eye 生成单位矩阵 ones全1阵 zeros 全零阵 rand 均匀随机阵 randn 正态随机阵调用格式eye(n)%生成n维单位阵eye(m,n)%生成mn维单位阵eye(size(A)%生成与A同维单位阵第5页 3、几个特殊矩阵产生diag diag 对角形矩阵对角形矩阵 compan compan 伴随阵伴随阵hilb Hilberthilb Hilbert阵阵 pascal Pascalpascal Pascal三角阵
5、三角阵vander Vandermondevander Vandermonde阵阵 hadamard Hadamarthadamard Hadamart阵阵gallery gallery 试验矩阵试验矩阵 hankel Hankel hankel Hankel阵阵magic magic 魔方阵魔方阵 toeplitz Toeplitz toeplitz Toeplitz阵阵wilkinson Wilkinsonwilkinson Wilkinson特征试验阵特征试验阵 kron Kronecker kron Kronecker张量积张量积第6页4、数据输出格式format 5位定点表示 for
6、mat short e 5 位浮点表示format long 15位定点表示 format long e 15位浮点表示format rat 近似有理数表示 format bank(金融)元,角,分format compact 显示变量之间不要空行 format loose 显示变量之间要空行第7页例例例例1 1 format long format long pi pians=ans=3.14159265358979 3.14159265358979例例例例2 2 format rat format rat A=1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5 A=1,1/
7、2,1/3;1/2,1/3,1/4;1/3,1/4,1/5A=A=1 1/2 1/3 1 1/2 1/3 1/2 1/3 1/4 1/2 1/3 1/4 1/3 1/4 1/5 1/3 1/4 1/5 第8页 例例例例3 3 format loose%format loose%要空行要空行 A,c A,c A=A=1 1/2 1/3 1 1/2 1/3 1/2 1/3 1/4 1/2 1/3 1/4 1/3 1/4 1/5 1/3 1/4 1/5 c=c=335/113 335/113 format compact%format compact%不要空行不要空行 A,c A,cA=A=1 1/
8、2 1/3 1 1/2 1/3 1/2 1/3 1/4 1/2 1/3 1/4 1/3 1/4 1/5 1/3 1/4 1/5 c=c=335/113 335/113 第9页二、矩阵运算与数组运算二、矩阵运算与数组运算1、矩阵运算、矩阵运算l l加法加法 A+B A+B l l数乘矩阵数乘矩阵 k*A k*Al lA AA A转置转置l lAn AnAn An次幂次幂l linv(A)Ainv(A)A逆阵逆阵l lA/B AA/B A右除右除B Bl lBA ABA A左除左除B B第10页例例1 1 A=1,2 A=1,23,4;3,4;B=1,-2 B=1,-23,-13,-1 C=A+B
9、;C=A+B;D=3*AD=3*A A,B,C,D A,B,C,D第11页例例2 2 求求A A逆和逆和A A转置转置 INVERSEA=inv(A);INVERSEA=inv(A);TRARA=A;TRARA=A;INVERSEA,TRARA%INVERSEA,TRARA%输出输出A A逆和转置逆和转置例3 左除和右除 A/B A/B BA BA A*inv(B)A*inv(B)inv(B)*A inv(B)*A第12页2、数组运算、数组运算 (在数组运算中小黑点绝对不可缺乏,向量加法向量加法 A.+B A.+B数乘向量数乘向量 k.*A k.*A 同维数组对应元素相乘同维数组对应元素相乘
10、A.*B A.*B 同维数组对应元素相除同维数组对应元素相除 A./B A./B或或B.AB.AA A元素自乘元素自乘n n次次 A.n A.n向量内积(标量积、点积)向量内积(标量积、点积)X*Y(X,YX*Y(X,Y都是列向量都是列向量)第13页例例4 4 比较比较A*BA*B和和A.*BA.*B区分区分 A.*B A.*Bans=ans=1 -4 1 -4 9 -49 -4 A*B A*Bans=ans=-4 -4 15 -10 15 -10 例例5 5 两个列向量内积两个列向量内积X=1,2,3;X=1,2,3;Y=3,-1,2;Y=3,-1,2;X*YX*YY*XY*Xans=7an
11、s=7第14页三、数组函数与矩阵函数三、数组函数与矩阵函数1.基本数组函数 数组函数对向量作用规则是对于(能够用(能够用help eifunhelp eifun查看基本函数)查看基本函数)第15页例例1 format compact%1 format compact%设置数据格式为五位设置数据格式为五位 A=1,2,3,4,5;6,7,8,9,10;A=1,2,3,4,5;6,7,8,9,10;log(A)log(A)ans=ans=0 0.6931 1.0986 1.3863 1.6094 0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794
12、2.1972 2.3026 1.7918 1.9459 2.0794 2.1972 2.3026第16页矩阵函数矩阵函数cond(A)Acond(A)A条件数条件数 det(A)Adet(A)A行列式行列式eig(A)Aeig(A)A特征值特征值 norm(A,1)A1norm(A,1)A1范数范数norm(A)A2norm(A)A2范数范数 norm(A,inf)norm(A,inf)次次 A A无穷范数无穷范数norm(A.fro)AFnorm(A.fro)AF范数范数 rank(A)Arank(A)A秩秩 trace(A)Atrace(A)A迹数迹数 svd(A)Asvd(A)A奇异值分
13、解奇异值分解expm(A)Aexpm(A)A指数指数 logm(A)Alogm(A)A对数对数sqtrm(A)Asqtrm(A)A平方根平方根第17页例例2 2 计算三阶计算三阶HilbertHilbert阵条件数阵条件数H3=1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5H3=1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5;format ratformat rat H3 H3d=det(H3),trace3=trace(H3),rank3=rank(H3),cond3d=det(H3),trace3=trace(H3),rank3=rank(H3),c
14、ond3=cond(H3)=cond(H3)n1=norm(H3,1),n2=norm(H3),n3=norm(H3,inf),nf=nn1=norm(H3,1),n2=norm(H3),n3=norm(H3,inf),nf=norm(H3,fro)orm(H3,fro)第18页 例2 结构6阶Hilbert矩阵format rat%设置数据格式为有理分数 H6=hilb(6)n6=cond(H6)n6=1.4951e+007第19页四、向量与矩阵处理四、向量与矩阵处理1.标识A A(i,j i,j)表示矩阵表示矩阵A A第第i i行、第行、第j j列交叉点处元素;列交叉点处元素;A A(u,
15、vu,v)提取)提取A A子矩阵,子矩阵,u,vu,v是两个向量,分别指定是两个向量,分别指定 行与列;行与列;0-10-1向量标识向量标识 A A(L1L1,:),:)A A(:,(:,L2L2)A A(L1L1,L2L2)A A(L1L1,:)表示提取,:)表示提取AL1AL1指定行、全部列;指定行、全部列;A A(:,(:,L2L2)表示提取)表示提取A A全部行,全部行,L2L2指定列;指定列;A A(L1L1,L2L2)表示提取)表示提取AL1AL1指定行,指定行,L2L2指定列指定列 组成子矩阵。组成子矩阵。第20页例例1 A=1,2,3,4,5;6,7,8,9,10;11,12,
16、13,14,15;1 A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;A AA=A=1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 6 7 8 9 10 11 12 13 14 15 11 12 13 14 15 A(1,3,:)A(1,3,:)ans=ans=1 2 3 4 5 1 2 3 4 5 11 12 13 14 15 11 12 13 14 15 A(:,2,4,5)A(:,2,4,5)ans=ans=2 4 5 2 4 5 7 9 10 7 9 10 12 14 15 12 14 15第21页 A(:,1:3)A(:,1:3)ans=an
17、s=1 2 3 1 2 3 6 7 8 6 7 8 11 12 13 11 12 13 A(1,2,1,3,5)A(1,2,1,3,5)ans=ans=1 3 5 1 3 5 6 8 10 6 8 10第22页例例2 2 将向量中满足不超出将向量中满足不超出0.50.5元素提取出来元素提取出来先编写一个先编写一个M-M-文件文件rand(seed,0);rand(seed,0);x=rand(1,10);x=rand(1,10);L=x=0.5;L=x tiquyuansu tiquyuansux=x=0.2190 0.0470 0.6789 0.6793 0.9347 0.3835 0.21
18、90 0.0470 0.6789 0.6793 0.9347 0.3835 0.5194 0.8310 0.0346 0.05350.5194 0.8310 0.0346 0.0535x=x=0.2190 0.0470 0.3835 0.0346 0.0535 0.2190 0.0470 0.3835 0.0346 0.0535第23页2.空阵用于缩维例例3 3 提取提取A 1,3,5A 1,3,5列列 A=1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18;A=1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18;A1
19、=A(:,1,3,5)A1=A(:,1,3,5)A1=A1=1 3 5 1 3 5 7 9 11 7 9 11 13 15 17 13 15 17 A(:,2,4,6)=A(:,2,4,6)=A=A=1 3 5 1 3 5 7 9 11 7 9 11 13 15 17 13 15 17第24页 3.特殊矩阵提取V=diag(A)V=diag(A)提取提取A A对角线上元素结构一个向量对角线上元素结构一个向量M=diag(V)M=diag(V)用用V V元素作元素作A A对角元,结构一个对对角元,结构一个对角形矩阵角形矩阵L=tril(A)LL=tril(A)L主对角线及以下元素取自主对角线及以
20、下元素取自A A对应元对应元素,而其它元素为零素,而其它元素为零U=triu(A)UU=triu(A)U主对角线及以上元素取自主对角线及以上元素取自A A对应对应元素,而其它元素为零元素,而其它元素为零第25页例例4 4 A=1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18;A=1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18;L=tril(A)L=tril(A)L=L=1 0 0 0 0 0 1 0 0 0 0 0 7 8 0 0 0 0 7 8 0 0 0 0 13 14 15 0 0 0 13 14 15 0
21、 0 0 U=triu(A)U=triu(A)U=U=1 2 3 4 5 6 1 2 3 4 5 6 0 8 9 10 11 12 0 8 9 10 11 12 0 0 15 16 17 18 0 0 15 16 17 18第26页五、线性方程组五、线性方程组 解法解法(1)假如系数矩阵假如系数矩阵A行数行数m等于列数等于列数n,且,且 A为非奇异阵,称方程为恰定方程;为非奇异阵,称方程为恰定方程;(2)假如假如mn,称方程为超定方程;,称方程为超定方程;(3)假如假如m A=1,0,1 A=1,0,12,1,02,1,0-3,2,-5;-3,2,-5;b=1,2,-1;b=1,2,-1;x=
22、inv(A)*b x=inv(A)*b解解解解2 2 用左除法用左除法用左除法用左除法 x=Ab x=Ab(这两种方法推荐用第二种,它不但速度快,而且精度高)。(这两种方法推荐用第二种,它不但速度快,而且精度高)。(这两种方法推荐用第二种,它不但速度快,而且精度高)。(这两种方法推荐用第二种,它不但速度快,而且精度高)。第29页二、用左除法解超定方程及欠定方程二、用左除法解超定方程及欠定方程 例例3 解方程组解方程组 第30页六、多项式六、多项式 第31页2.多项式惯用函数roots(p)%roots(p)%返回多项式根向量返回多项式根向量注注1 1:多项式:多项式p p是一个行向量,而是一个
23、行向量,而poly(p)poly(p)是一个是一个列向量;列向量;注注2 2:多项式零系数项要填上零。:多项式零系数项要填上零。poly(q)%poly(q)%结构一个以结构一个以q q向量为根多项式;向量为根多项式;poly(A)%poly(A)%得出方阵得出方阵A A特征多项式;特征多项式;polyxalpolyxal(p p,x x)%求多项式求多项式p p在某点在某点x x处值处值;polyvalm(p,A)%polyvalm(p,A)%第32页3.3.多项式加、减法多项式加、减法l l依向量加法依向量加法 例例 a=1,2,3,4;a=1,2,3,4;b=1,4,9,16;b=1,4
24、,9,16;d=a+bd=a+b系统回复系统回复d=d=2 6 12 20 2 6 12 20当两个多项式次数不一样时,要用当两个多项式次数不一样时,要用0 0补足补足例例 c=1,-5,0,1,-5%c=1,-5,0,1,-5%四次多项式四次多项式e=c+0,b%e=c+0,b%将三次多项式将三次多项式b b前面加一个前面加一个0 0,补足成四次多项式,再相加。,补足成四次多项式,再相加。系统回复系统回复 e=e=1 -3 6 13 151 -3 6 13 15第33页第34页b=-2,5;b=-2,5;a=1,6,3;a=1,6,3;r,p,k=residue(b,a)r,p,k=residue(b,a)r=r=-3.2454 -3.2454 1.2454 1.2454p=p=-5.4495 -5.4495 -0.5505 -0.5505k=k=表明表明 第35页第36页