MATLAB数值计算功能.ppt
全国大学生数学建模竞赛讲座,MATLAB数值计算功能,主讲教师:徐标 2007 5 27,1、生成数组的函数“:”的用法例1 av=1:10%产生一个从1到10的数组,间隔为1 av=1,2,3,4,5,6,7,8,9,10例2 aw=1:2:10%产生一个从1到10之间的数组,间隔为2 aw=1,3,5,7,9例3 as=0:pi/40:4*pi as=0.7854 1.5708 2.3562 3.1416 3.9270 4.7124 5.4978 6.2832,一 数组与矩阵的创建,例4 al=10:-2:0 al=10 8 6 4 2 0例5 aj=linspace(0,1,10)%利用线性等分指令生成向量 aj=0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 例6 ak=logspace(1,2,10)%利用对数等分指令生成向量 ak=10.0000 12.9155 16.6810 21.5443 27.8256 35.9381 46.4159 59.9484 77.4264 100.0000,例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 对角形矩阵 compan 伴随阵hilb Hilbert阵 pascal Pascal三角阵vander Vandermonde阵 hadamard Hadamart阵gallery 试验矩阵 hankel Hankel阵magic 魔方阵 toeplitz Toeplitz阵wilkinson Wilkinson特性试验阵 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 format long pians=例2 format rat A=1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5A=1 1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5,例3 format loose%要空行 A,c A=1 1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5 c=335/113 format compact%不要空行 A,cA=1 1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5 c=335/113,二、矩阵运算与数组运算,1、矩阵运算加法 A+B 数乘矩阵 k*AA A的转置An A的n次幂inv(A)A的逆阵A/B A右除BBA A左除B,例1 A=1,23,4;B=1,-23,-1 C=A+B;D=3*A A,B,C,D,例2 求A的逆和A的转置 INVERSEA=inv(A);TRARA=A;INVERSEA,TRARA%输出A的逆和转置例3 左除和右除,A/B BA A*inv(B)inv(B)*A,2、数组运算(在数组运算中小黑点绝对不可缺少,向量加法 A.+B数乘向量 k.*A 同维数组对应元素相乘 A.*B 同维数组对应元素相除 A./B或B.AA的元素自乘n次 A.n向量的内积(标量积、点积)X*Y(X,Y都是列向量),例4 比较A*B和A.*B的区别 A.*Bans=1-4 9-4 A*Bans=-4 15-10 例5 两个列向量的内积X=1,2,3;Y=3,-1,2;X*YY*Xans=7,三、数组函数与矩阵函数,1.基本数组函数 数组函数对向量的作用规则是对于(可以用help eifun查看基本函数),例1 format compact%设置数据格式为五位 A=1,2,3,4,5;6,7,8,9,10;log(A)ans=0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972 2.3026,矩阵函数cond(A)A的条件数 det(A)A的行列式eig(A)A的特征值 norm(A,1)A的1范数norm(A)A的2范数 norm(A,inf)次 A的无穷范数norm(A.fro)A的F范数 rank(A)A的秩 trace(A)A的迹数 svd(A)A的奇异值分解expm(A)A的指数 logm(A)A的对数sqtrm(A)A的平方根,例2 计算三阶Hilbert阵的条件数H3=1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5;format rat H3d=det(H3),trace3=trace(H3),rank3=rank(H3),cond3=cond(H3)n1=norm(H3,1),n2=norm(H3),n3=norm(H3,inf),nf=norm(H3,fro),例2 构造6阶Hilbert矩阵format rat%设置数据格式为有理分数 H6=hilb(6)n6=cond(H6)n6=1.4951e+007,四、向量与矩阵处理,1.标识A(i,j)表示矩阵A的第i行、第j列交叉点处的元素;A(u,v)提取A的子矩阵,u,v是两个向量,分别指定 行与列;0-1向量标识 A(L1,:)A(:,L2)A(L1,L2)A(L1,:)表示提取A的L1指定的行、所有列;A(:,L2)表示提取A的所有行,L2指定的列;A(L1,L2)表示提取A的L1指定的行,L2指定的列 构成子矩阵。,例1 A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;AA=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A(1,3,:)ans=1 2 3 4 5 11 12 13 14 15 A(:,2,4,5)ans=2 4 5 7 9 10 12 14 15,A(:,1:3)ans=1 2 3 6 7 8 11 12 13 A(1,2,1,3,5)ans=1 3 5 6 8 10,例2 将向量中满足不超过0.5的元素提取出来先编写一个M-文件rand(seed,0);x=rand(1,10);L=x tiquyuansux=0.2190 0.0470 0.6789 0.6793 0.9347 0.3835 0.5194 0.8310 0.0346 0.0535x=0.2190 0.0470 0.3835 0.0346 0.0535,2.空阵用于缩维例3 提取A 的1,3,5列 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=1 3 5 7 9 11 13 15 17 A(:,2,4,6)=A=1 3 5 7 9 11 13 15 17,3.特殊矩阵的提取V=diag(A)提取A的对角线上的元素构造一个向量M=diag(V)用V的元素作A的对角元,构造一个对角形矩阵L=tril(A)L的主对角线及以下的元素取自A的相应元素,而其它元素为零U=triu(A)U的主对角线及以上的元素取自A的相应元素,而其它元素为零,例4 A=1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18;L=tril(A)L=1 0 0 0 0 0 7 8 0 0 0 0 13 14 15 0 0 0 U=triu(A)U=1 2 3 4 5 6 0 8 9 10 11 12 0 0 15 16 17 18,五、线性方程组 的解法,(1)如果系数矩阵A的行数m等于列数n,且 A为非奇异阵,称方程为恰定方程;(2)如果mn,称方程为超定方程;(3)如果mn,称方程为欠定方程。,一、恰定方程解法1.用逆阵法例1 求x,使 其中:,解1 用逆阵法 A=1,0,12,1,0-3,2,-5;b=1,2,-1;x=inv(A)*b解2 用左除法 x=Ab(这两种方法推荐用第二种,它不但速度快,而且精度高)。,二、用左除法解超定方程及欠定方程 例3 解方程组,六、多项式,2.多项式的常用函数roots(p)%返回多项式的根向量注1:多项式p是一个行向量,而poly(p)是一个列向量;注2:多项式的零系数项要填上零。poly(q)%构造一个以q向量为根的多项式;poly(A)%得出方阵A的特征多项式;polyxal(p,x)%求多项式p在某点x处的值;polyvalm(p,A)%,3.多项式的加、减法依向量加法 例 a=1,2,3,4;b=1,4,9,16;d=a+b系统回复d=2 6 12 20当两个多项式次数不同时,要用0补足例 c=1,-5,0,1,-5%四次多项式e=c+0,b%将三次多项式b前面加一个0,补足成四次多项式,再相加。系统回复 e=1-3 6 13 15,b=-2,5;a=1,6,3;r,p,k=residue(b,a)r=-3.2454 1.2454p=-5.4495-0.5505k=表明,