资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,代数部分,交作业邮箱:,1,多项式的表达与计算,多项式的表达,用多项式的系数组成的行向量来表达多项式,如果有缺项,输入时用0作为缺项的系数。,例 输入多项式,p=1 0 2 3 9,以惯用的方式表示上述多项式,y=poly2str(p,x),2,多项式的运算,多项式a与b之和、差:a+b, a-b (a, b表示多项式对应的系数向量),多项式a与b乘积:conv(a,b),多项式a除以b:q,r=deconv(a,b) 商是q, 余式是r,3,例 求两个多项式的和、差、乘积和除法运算,并用习惯形式表达,a=1 7 16 18 8;,b=0 0 0 1 3;,a+b,y1=poly2str(a+b,x),a-b,y2=poly2str(a-b,x),conv(a,b),q,r=deconv(a,b),如果改成下述命令呢?,a=1 7 16 18 8;,b=1 3;,4,计算多项式a的变量在点x处的值:,polyval(a,x),,x可以是向量,也可以是矩阵,计算结果是与x同维的向量或矩阵。,例 求多项式3*x2+2*x+1在x=1,4,5,8时的值,p=3,2,1;,x=1,4,5,8;,polyval(p,x),5,对有理分式求导数:,num, den=polyder(p1,p2),p1,是有理分式的分子,,p2,是有理分式的分母,,num,是导数的分子,,den,是导数的分母。,例 p1=1 1 -6 2 0 4,p2=1 4 1 -7,num, den=polyder(p1,p2);,d1=poly2str(num,x),d2=poly2str(den,x),6,代数式的符号运算,factor(s):,对s定义的多项式因式分解,expand(s),对s定义的多项式展开,collect(s,x),对s定义的多项式中x的同类项合并,simple(s),对s定义的多项式化简,subs(s,old,new),用变量old替换new后,s的结果,7,例 对多项式a3-b3进行因式分解,s=sym(a3-b3 ),y=factor(s),例 设多项式s=(1+2*x-y)2,求其展开的多项式,并按y的幂次合并形式展开多项式,s=sym(1+2*x-y)2),p=expand(s),collect(p,y),8,例 对多项式x3-6*x2+11*x-6进行因式分解,并求x=1时的函数值,s=sym(x3-6*x2+11*x-6),y=factor(s),z=subs(s,x,1),vpa(z) %给出数值型计算结果,9,求多项式方程的根,roots(p),求多项式p的所有的根,solve(s,x),对方程s关于变量x求解,x1,x2,xn=solve(s1,s2,sn,x1,x2,xn),对n个方程s1,s2,sn的指定变量x1,x2,xn求解,并将结果赋给x1,x2,xn。,10,例 求方程组,的解,syms x y,s1=x+3*y;,s2=x2+y2-1;,x,y=solve(s1,s2,x,y),11,例 求方程x5+x4-4*x3+9*x-10的所有根,p=1 -4 0 9 -10,r=roots(p),或者,s=sym(x4-4*x3+9*x-10=0),y=solve(s),double(y),12,矩阵的建立,逐个元素输入;编辑器创建;导入到Matlab;,(其它方法)一维数组,a=1:0.1:10,b=linspace(1,10,100)%线性采样法,c=1:-0.1:0,d=logspace(0,3,4)%对数采样法,f=logspace(1,2,5),x= %建立一个空矩阵,13,生成单位矩阵、零矩阵、元素全为1的矩阵、对角矩阵,eye(3); eye(3,4);zeros(3,4);zeros(3);,ones(3);ones(3,4) ;,a=1 2 3 4 5,diag(a),diag(a,1),diag(a,2),diag(a,-2),14,提取矩阵的对角线元素,设A为mn矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。,15,例 先建立55矩阵A,然后将A的第一行元素乘以1,第二行乘以2,第五行乘以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A %用D左乘A,对A的每行乘以一个指定常数,16,产生01间均匀分布的随机矩阵,rand(2,4),产生均值为0,方差为1的标准正态分布随机矩阵,randn(3,5),生成随机排列向量,randpem(6),17,用于专门学科的特殊矩阵,(1) 魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,n,n,共n,n,个整数组成。MATLAB提供了求魔方矩阵的函数,magic(n),,其功能是生成一个n阶魔方阵。,18,例 将101-125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。M=100+magic(5),19,(2) 范得蒙矩阵范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数,vander(V),生成以向量V为基础向量的范得蒙矩阵。例如,A=vander(1;2;3;5)即可得到上述范得蒙矩阵。,20,(3) 伴随矩阵MATLAB生成伴随矩阵的函数是,compan(p),,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。,例 为了求多项式的x3-7x+6的伴随矩阵,可使用命令:p=1,0,-7,6;compan(p),21,查询,a=2 3 5 0 9 6 7 8,a(3),a(1 4),a(4:end),a(3:-1:1)%由前三个元素倒排,a(find(a7)%查询大于7的所有元素,a(2)=16,a(1 3 6)=1 34 67,size(a),22,b=1 2 3 4;5 6 7 8;9 10 11 12,b(3, 1),b(3)%查询第三个元素(以列的顺序),b(3,:),b(:,3),b(:)%把矩阵的每列以左右为次序,首尾相连成一个列向量,b(2 4; 5 6),b(2 4),b(find(b7),b(:,1:3),b(2,1:3),23,求向量的最大和最小值,y=max(X),返回向量,X,的最大值存入,y,,,如果,X,中包含复数元素,则按模取最大值。,y,I=max(X),返回向量,X,的最大值存入,y,,,最大值的序号存入,I,,,如果,X,中包含复数元素,则按模取最大值。,求向量,X,的最小值的函数是,min(X),,,用法和,max(X),完全相同。,24,例,已知x=-43,72,9,16,23,47, 求向量x的最大值和最小值。,y=max(x) %求向量x中的最大值,y,l=max(x) %求向量x中的最大值及其该元素的位置,z=min(x) %求向量x中的最小值,z,m=min(x) %求向量x中的最小值及其该元素的位置,25,max(A),返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。,Y,U=max(A),返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。,求矩阵最小值的函数是,min,,其用法和max完全相同。,求矩阵元素的最大值和最小值,26,矩阵的基本运算,矩阵的加、减、数乘、乘、转置、逆运算、矩阵乘幂分别为,a+b;a-b;k*a;a*b;a;transpose(a);,inv(a);a(-1);an,计算方阵的行列式、求矩阵的秩、矩阵行变换化简、矩阵的迹分别为,det(a); rank(a); rref(a); trace(a),它们都符合矩阵的运算规律。,27,矩阵除法在MATLAB中,有两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,如3/4和43有相同的值,都等于0.75。又如,设a=10.5,25,则a/5=5a=2.1000 5.0000。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般ABB/A。,28,矩阵的伪逆如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A同型的矩阵B,使得:ABA=ABAB=B此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。,29,例,a=1,2,3,b=1,2,3,a+b,a-b,a,试试下列命令,a*b,inv(a),a.*b,a*b,a*b,例,a=1,2;3,4,b=1,2;1 2,a*b,inv(a),a/b %ab-1,ab %a-1b,30,例,计算行列式,syms a b c d,D=a b c d;a a+b a+b+c a+b+c+d;,a 2*a+b 3*a+b+c 4*a+3*b+2*c+d;,a 3*a+b 6*a+b+c 10*a+6*b+3*c+d;,det(D),31,解线性方程组,求逆法,对于线性方程组Ax=B,或者xA=B,如果A是可逆方阵,则可直接求出。,例 解下列方程组,A=1 2 3;1 3 5;1 3 6,b=2 4 5,x=inv(A)*b,x=Ab,32,练习,解方程组,33,A=2 2 -1 1;4 3 -1 2;8 3 -3 4;3 3 -2 -2;,b=4 6 12 6;,x=inv(A)*b,执行结果为:,x =,0.6429,0.5000,-1.5000,0.2143,由执行结果可知方程组的解为:,0.6429 0.5000 -1.5000 0.2143 。,34,例 求矩阵X,使满足:AXB = C。,A=1 2 3;2 2 1;3 4 3;,B=2,1;5 3;,C=1 3;2 0;3 1;,X=AC/B,35,初等变换法,通过对系数矩阵、增广矩阵进行行初等变换来求解。,例 求非齐次方程的解,A=2 3 1;1 -2 4;,3 8 -2; 4 -1 9,B=4;-5;13;-6,b=(A,B),rref(b),36,对于齐次线性方程组,还可以用下述命令求解,null,例 求方程组的解,A=1 -2 3 -4; 0 1 -1 1; -1 0 -1 2; 1 -3 4 -5,a=null(A),试试看:,a=null(A,r),37,矩阵的特征值与特征向量,poly(A),求矩阵A的特征多项式,d=eig(A),方阵A的全部特征值组成列向量d,V,D=eig(A),得到一个矩阵A的特征值在对角线上的对角矩阵D,矩阵V的列是相应的特征向量,满足AV=VD。,注意:这三条指令求出的是数值解,并不是解析解。,38,例 求矩阵 的特征多项式,特征值,特征向量,A=1,-1;2,4,p=poly(A),poly2str(p,x),V,D=eig(A),39,矩阵的对角化,代数中的结论:如果n阶矩阵A有n个互异的特征值,则A与对角矩阵相似;如果A是实对称矩阵,则必有可逆矩阵P,使得,其中B是以A的特征值为对角元素的对角矩阵,P可由A的线性无关的特征向量得到,实际上,对于实对称矩阵来说,其n个互异的特征值对应的特征向量组成的是正交矩阵。,40,例 求矩阵P,将下述矩阵A对角化,并求,A=4 6 0; -3 -5 0; -3 -6 1,p,d=eig(A),p*d10*inv(p),41,例 求正交矩阵P,将下述矩阵A对角化,A=2 -2 0; -2 1 -2; 0 -2 0,p,d=eig(A),p*p,p(-1)*A*p,p*A*p的输出结果呢?,42,例 判断下述二次型 的类型(正定、负定、半正定、半负定),并将其化为标准形,,A=-5 2 2; 2 -6 0; 2 0 -4,p,d=eig(A),43,例 用求特征值的方法解方程:3x,5,-7x,4,+5x,2,+2x-18=0,p=3,-7,0,5,2,-18;A=compan(p); %A的相伴矩阵(友矩阵)x1=eig(A) %求A的特征值x2=roots(p) %直接求多项式p的零点,44,同型的向量或矩阵比较,U=max(A,B),A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。,U=max(A,n),n,是一个标量,结果,U,是与,A,同型的向量或矩阵,,U,的每个元素等于,A,对应元素和,n,中的较大者。,min,函数的用法和,max,完全相同。,45,例 分析下列程序的功能。,x=4 5 6;1 4 8;,y=1 7 5;4 5 7;,p=max(x,y) ;,p,分析:,取两个23的二维数组x和y同一位置上的元素值大者构成一个新矩阵p。,46,平均值和中值,求数据序列平均值的函数是mean,求数据序列中值的函数是median。,mean(X),返回向量,X,的算术平均值。,median(X),返回向量,X,的中值。,mean(A),返回一个行向量,其第,i,个元素是,A,的第,i,列的算术平均值。,47,median(A),返回一个行向量,其第i个元素是A的第i列的中值。,mean(A,dim),当,dim,为,1,时,该函数等同于,mean(A),;当,dim,为,2,时,返回一个列向量,其第,i,个元素是,A,的第,i,行的算术平均值。,median(A,dim),当,dim,为,1,时,该函数等同于,median(A),;当,dim,为,2,时,返回一个列向量,其第,i,个元素是,A,的第,i,行的中值。,48,例,已知x=1 8 4 2;9 6 2 5;3 6 7 1,从不同维方向求出其平均值和中值。,median(x),median(x,1),%按列方向,求数组的中值,median(x,2),%,按行方向,求数组的中值,mean(x),mean(x,1),%,按列方向,,,求数组的平均值,mean(x,2),%,按行方向,,,求数组的平均值,49,求和与求积,sum(X),返回向量X各元素的和。,prod(X),返回向量,X,各元素的乘积。,设A是一个矩阵,函数的调用格式为:,sum(A),返回一个行向量,其第,i,个元素是,A,的第,i,列的元素和。,prod(A),返回一个行向量,其第,i,个元素是,A,的第,i,列的元素乘积,。,50,sum(A,dim),当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。,prod(A,dim),当,dim,为,1,时,该函数等同于,prod(A),;当,dim,为,2,时,返回一个列向量,其第,i,个元素是,A,的第,i,行的各元素乘积。,51,例,已知,x=4 5 6;1 4 8,分析矩阵x的每行、每列元素的乘积和全部元素的乘积。,sum(x),sum(x,1),%求数组各列元素的和,sum(x,2),%求数组各行元素的和,sum(sum(x),%求数组所有元素的和,52,prod(x),prod(x,1),%求数组各列元素的乘积,prod(x,2),%求数组各行元素的乘积,prod(prod(x),%求数组所有元素的乘积,53,累加和与累乘积,cumsum(X),返回向量X累加和向量。,cumprod(X),返回向量X累乘积向量。,cumsum(A),返回一个矩阵,其第i列是A的第i列的累加和向量。,54,cumprod(A),返回一个矩阵,其第i列是A的第i列的累乘积向量。,cumsum(A,dim,),当,dim,为,1,时,该函数等同于,cumsum(A,),;当,dim,为,2,时,返回一个矩阵,其第,i,行是,A,的第,i,行的累加和向量。,cumprod(A,dim,),当,dim,为,1,时,该函数等同于,cumprod(A,),;当,dim,为,2,时,返回一个向量,其第,i,行是,A,的第,i,行的累乘积向量。,55,例 已知a = 1 2 3; 3 9 6; 4 10 8; 4 0 7,求矩阵a的每行、每列元素的乘积和全部元素的累加和。,cumsum(a),%求矩阵的各列元素的累加和,cumsum(a,2),%求矩阵的各行元素的累加和,cumprod(a),cumprod(a,1),%求矩阵的各列元素的累乘积,cumprod(a,2),%求矩阵的各行元素的累乘积,56,矩阵的分解,1 LU分解,L,U=lu(A),求上三角矩阵U和交换下三角矩阵L,使LU=A。,L,U,P=lu(A),求上三角矩阵U、有单位对角线的下三角矩阵L和交换矩阵P,满足LU=PA。,57,对三阶魔方矩阵作LU分解。,L,U=lu(magic(3),为验证结果的正确性,用语句:,L*U,58,求方程组的一个特解。,59,qr因式分解,Q,R=qr(A),求得mm的矩阵Q和上三角矩阵R,Q的列形成了一个正交基,Q和R满足A=QR。,Q,R,P=qr(A),求矩阵Q、上三角矩阵R和交换矩阵P。Q的列形成一个正交基,R的对角线元素按大小降序排列,它们满足AP=QR。,60,对矩阵作qr因式分解。,a=2 5 4;5 2 1;4 1 8;,Q,R=qr(a),Q,R,P=qr(A),61,
展开阅读全文