MATLAB数值计算功能.ppt
全国大学生数学建模竞赛讲座MATLAB数值计算功能主讲教师:徐标主讲教师:徐标 2007 5 27 2007 5 27 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*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一一 数组与矩阵的创建数组与矩阵的创建例例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.3333 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例例7 ap=rand(1,5)7 ap=rand(1,5)ap=0.0153 0.7468 0.4451 0.9318 0.4660 2、生成矩阵的函数eye 生成单位矩阵 ones全1阵 zeros 全零阵 rand 均匀随机阵 randn 正态随机阵调用格式eye(n)%生成n维的单位阵eye(m,n)%生成mn维的单位阵eye(size(A)%生成与A同维的单位阵 3、几种特殊矩阵的产生diag diag 对角形矩阵对角形矩阵 compan compan 伴随阵伴随阵hilb Hilberthilb Hilbert阵阵 pascal Pascalpascal Pascal三角阵三角阵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张量积张量积4、数据输出格式format 5位定点表示 format short e 5 位浮点表示format long 15位定点表示 format long e 15位浮点表示format rat 近似有理数表示 format bank(金融)元,角,分format compact 显示变量之间不要空行 format loose 显示变量之间要空行例例例例1 1 format long format long pi pians=ans=例例例例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/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 例例例例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/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 二、矩阵运算与数组运算二、矩阵运算与数组运算1、矩阵运算、矩阵运算l l加法加法 A+B A+B l l数乘矩阵数乘矩阵 k*A k*Al lA AA A的转置的转置l lAn AAn A的的n n次幂次幂l linv(A)Ainv(A)A的逆阵的逆阵l lA/B AA/B A右除右除B Bl lBA ABA A左除左除B B例例1 1 A=1,2 A=1,23,4;3,4;B=1,-2 B=1,-23,-13,-1 C=A+B;C=A+B;D=3*AD=3*A A,B,C,D A,B,C,D例例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)*A2、数组运算、数组运算 (在数组运算中小黑点绝对不可缺少,向量加法向量加法 A.+B A.+B数乘向量数乘向量 k.*A k.*A 同维数组对应元素相乘同维数组对应元素相乘 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都是列向都是列向量量)例例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=7ans=7三、数组函数与矩阵函数三、数组函数与矩阵函数1.基本数组函数 数组函数对向量的作用规则是对于(可以用(可以用help eifunhelp eifun查看基本函数)查看基本函数)例例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 2.1972 2.3026 1.7918 1.9459 2.0794 2.1972 2.3026矩阵函数矩阵函数cond(A)Acond(A)A的条件数的条件数 det(A)Adet(A)A的行列式的行列式eig(A)Aeig(A)A的特征值的特征值 norm(A,1)Anorm(A,1)A的的1 1范数范数norm(A)Anorm(A)A的的2 2范数范数 norm(A,inf)norm(A,inf)次次 A A的无穷范数的无穷范数norm(A.fro)Anorm(A.fro)A的的F F范数范数 rank(A)Arank(A)A的秩的秩 trace(A)Atrace(A)A的迹数的迹数 svd(A)Asvd(A)A的奇异值分解的奇异值分解expm(A)Aexpm(A)A的指数的指数 logm(A)Alogm(A)A的对数的对数sqtrm(A)Asqtrm(A)A的平方根的平方根例例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),cond3=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)例2 构造6阶Hilbert矩阵format rat%设置数据格式为有理分数 H6=hilb(6)n6=cond(H6)n6=1.4951e+007四、向量与矩阵处理四、向量与矩阵处理1.标识A A(i,j i,j)表示矩阵表示矩阵A A的第的第i i行、第行、第j j列交叉点处的元素;列交叉点处的元素;A A(u,vu,v)提取)提取A A的子矩阵,的子矩阵,u,vu,v是两个向量,分别指定是两个向量,分别指定 行与列;行与列;0-10-1向量标识向量标识 A A(L1L1,:),:)A A(:,(:,L2L2)A A(L1L1,L2L2)A A(L1L1,:)表示提取,:)表示提取A A的的L1L1指定的行、所有列;指定的行、所有列;A A(:,(:,L2L2)表示提取)表示提取A A的所有行,的所有行,L2L2指定的列;指定的列;A A(L1L1,L2L2)表示提取)表示提取A A的的L1L1指定的行,指定的行,L2L2指定的列指定的列 构成子矩阵。构成子矩阵。例例1 A=1,2,3,4,5;6,7,8,9,10;11,12,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 A(:,1:3)A(:,1:3)ans=ans=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例例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.2190 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.05352.空阵用于缩维例例3 3 提取提取A A 的的1,3,51,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=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 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的主对角线及以下的元素取自的主对角线及以下的元素取自A A的的相应元素,而其它元素为零相应元素,而其它元素为零U=triu(A)UU=triu(A)U的主对角线及以上的元素取自的主对角线及以上的元素取自A A的相应元素,而其它元素为零的相应元素,而其它元素为零例例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 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五、线性方程组五、线性方程组 的解法的解法(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=inv(A)*b x=inv(A)*b解解解解2 2 用左除法用左除法用左除法用左除法 x=Ab x=Ab(这两种方法推荐用第二种,它不但速度快,而且精度高)。(这两种方法推荐用第二种,它不但速度快,而且精度高)。(这两种方法推荐用第二种,它不但速度快,而且精度高)。(这两种方法推荐用第二种,它不但速度快,而且精度高)。二、用左除法解超定方程及欠定方程二、用左除法解超定方程及欠定方程 例例3 解方程组解方程组 六、多项式六、多项式 2.多项式的常用函数roots(p)%roots(p)%返回多项式的根向量返回多项式的根向量注注1 1:多项式:多项式p p是一个行向量,而是一个行向量,而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)%3.3.多项式的加、减法多项式的加、减法l l依向量加法依向量加法 例例 a=1,2,3,4;a=1,2,3,4;b=1,4,9,16;b=1,4,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 15b=-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=表明表明