第二讲矩阵与多项式运算精选文档.ppt
第二讲矩阵与多项式运算本讲稿第一页,共三十四页一、矩阵的生成第三章数组与矩阵的运算1、逐个元素输入法 直接输入法x=12345678;4567891011;12345678;x=;y=2,4,5368y=245368a=1;b=2;c=3;x=5bc;a*ba+cc/bx=5.00002.00003.00002.00004.00001.5000本讲稿第二页,共三十四页2.2.快速矩阵生成法快速矩阵生成法(1)数组的冒泡生成法:x=a:inc:by=1:1:8y=12345678y=0:0.2:1y=00.20000.40000.60000.80001.0000 x=1:8;4:11x=123456784567891011本讲稿第三页,共三十四页(2)(2)采用采用MatlabMatlab的矩阵生成函数生成函数法的矩阵生成函数生成函数法本讲稿第四页,共三十四页举例说明矩阵生成函数:x=linspace(n1,n2,n)%在区间上生成线性分度的向量x=linspace(1,10,10)x=12345678910a=%生成一个空距阵a=a=logspace(n1,n2,n)%在区间上生成对数分度的向量a=logspace(1,3,3)a=101001000本讲稿第五页,共三十四页eyeeye(m,n);(m,n);eyeeye(m)(m)%生成单位矩阵生成单位矩阵eyeeye(2,3)(2,3)ans=ans=100100010010eye(2)ans=1001zeroszeros(m,n);(m,n);zeroszeros(m)(m)%生成零矩阵生成零矩阵zeroszeros(2,3)(2,3)ans=ans=000000000000zeros(2)ans=0000ones(m,n);ones(m)%生成一矩阵onesones(2,3)(2,3)ans=ans=111111111111ones(2)ans=1111本讲稿第六页,共三十四页V=a1,a2,anA=V=a1,a2,anA=diagdiag(V)(V)%生成对角矩阵:对角元素向量生成对角矩阵:对角元素向量V=572;A=V=572;A=diagdiag(V)(V)A=A=500500070070002002A=123;234;345;V=diag(A)V=135rand(m,n)%随机矩阵:产生一个mn的均匀分布随机矩阵rand(2,4)ans=0.95010.60680.89130.45650.23110.48600.76210.0185%2x4随机矩阵本讲稿第七页,共三十四页a=1:1:10;b=0.1:0.1:1;c=ba;%组成一个新的数组ans=Columns1through51.0000+0.1000i2.0000+0.2000i3.0000+0.3000i4.0000+0.4000i5.0000+0.5000iColumns6through106.0000+0.6000i7.0000+0.7000i8.0000+0.8000i9.0000+0.9000i10.0000+1.0000ic=Columns1through80.10000.20000.30000.40000.50000.60000.70000.8000Columns9through160.90001.00001.00002.00003.00004.00005.00006.0000Columns17through207.00008.00009.000010.0000a+b*i%复数数组的生成本讲稿第八页,共三十四页X,Y=meshprid(-1:0.4:1,-.5:0.2:0.5);%用于3D绘图XX=-1.0000-0.6000-0.20000.20000.60001.0000-1.0000-0.6000-0.20000.20000.60001.0000-1.0000-0.6000-0.20000.20000.60001.0000-1.0000-0.6000-0.20000.20000.60001.0000-1.0000-0.6000-0.20000.20000.60001.0000-1.0000-0.6000-0.20000.20000.60001.0000YY=-0.5000-0.5000-0.5000-0.5000-0.5000-0.5000-0.3000-0.3000-0.3000-0.3000-0.3000-0.3000-0.1000-0.1000-0.1000-0.1000-0.1000-0.10000.10000.10000.10000.10000.10000.10000.30000.30000.30000.30000.30000.30000.50000.50000.50000.50000.50000.5000本讲稿第九页,共三十四页X,Y=meshgrid(-2:.2:2,-2:.2:2);Z=X.*exp(-X.2-Y.2);mesh(Z)%画出3D图本讲稿第十页,共三十四页二二.矩阵的子矩阵寻访与赋值矩阵的子矩阵寻访与赋值本讲稿第十一页,共三十四页1.子数组寻址x=141236475869710811x(3)%x的第三个元素ans=12x(125)%x的第1,2,5个元素ans=146x(1:5)%x的前5个元素ans=141236x(10:end)%x的第10个元素后的元素ans=69710811x(10:-1:2)%x的第10个元素和第二元素的倒排ans=6857463124x(find(x5)%查找x中大于5的非零元素ans=1267869710811本讲稿第十二页,共三十四页A(:)%由A的各列按从左到右的次序,首尾相接而生成“一维长列”数组矩阵寻址A=1234;3456A(2,3)%A的第二行第三列的元素A=12343456ans=5A(2,:)%A的第二行全部列的元素ans=3456A(:,3)%A的全部行第3列的元素ans=35ans=13243546本讲稿第十三页,共三十四页2.数组赋值x=141236475869710811x(4)=100%给x的第4个元素重新赋值为100 x=Columns1through1314121006475869710Columns14through15811x(3)=%删掉掉3个元素x=Columns1through131410064758697108Column1411x(16)=1%加入第16个元素x=Columns1through131410064758697108Columns14through161101本讲稿第十四页,共三十四页矩阵赋值A=1:8;4:11%直接赋值A=123456784567891011A(:)=1:4;2:5;3:6;4:7%全元素赋值,保持A的“行宽,列长”。A和D两个数组的总元素相等,但“行宽,列长”不一定相同。A=1324354624354657数组赋值x=141236475869710811x(14)=11%把当前x数组的第一、四个元素都赋值为1x=Columns1through13141216475869710Columns14through15811 D=1:4;2:5;3:6;4:7D=1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 D(:)ans=1 2 3 4 2 3 4 5 3 4 5 6本讲稿第十五页,共三十四页矩阵赋值A(2,3)=5%改变位於第二列,第三行的元素值A=1324354624354657A=1324354624554657B=A(2,1:3)%取出部份矩阵BB=245A=A;43211345%再增加一列A=132435462455465743211345A(:,2)=%删除第二列(:代表所有行)A=124354625546574211345A(13,:)=%删除第一和第三行(:代表所有列)A=24554657本讲稿第十六页,共三十四页A(:,23)=ones(2)%双下标赋值方式:把A的第2、3列元素全赋为1A=123456784567891011A=111456784117891011本讲稿第十七页,共三十四页三、矩阵的运算1.矩阵的转置在矩阵变量后加“”来表示转置运算A=123;456A=123456B=AB=142536转置:对于实矩阵用(转置:对于实矩阵用()符号或()符号或(.)求转置结果是一样的;然而对于含复数求转置结果是一样的;然而对于含复数的矩阵,则(的矩阵,则()将同时对复数进行共轭)将同时对复数进行共轭处理,而处理,而(.)则只是将其排列形式进行转置。)则只是将其排列形式进行转置。a=1 2 3;4 5 6 a=1 4 2 5 3 6a=1 2 3;4 5 6.a=1 4 2 5 3 6b=1+2i2-7ib=1.0000-2.0000i2.0000+7.0000ib=1+2i2-7i.b=1.0000+2.0000i2.0000-7.0000i本讲稿第十八页,共三十四页2.矩阵的算术运算本讲稿第十九页,共三十四页四则运算与幂运算只有维数相同的矩阵才能进行加减运算。注意只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘法运算。ab运算等效于求a*x=b的解;而a/b等效于求x*b=a的解。只有方阵才可以求幂。点运算是两个维数相同矩阵对应元素之间的运算,在有的教材中也定义为数组运算。如:如:a=12;34a=12;34;b=35;59b=35;59c=a+bc=a+bc=c=4747813813d=a-bd=a-bd=d=-2-3-2-3-2-5-2-5aa*b=1323;2951b=1323;2951aa/b=-0.500.50;3.501.50b=-0.500.50;3.501.50aa b=-1-1;23b=-1-1;23aa 3=3754;811183=3754;81118aa.*.*b=310;1536b=310;1536aa././b=0.330.40;0.600.44b=0.330.40;0.600.44aa.b=3.002.50;1.672.25b=3.002.50;1.672.25aa.3=18;27643=18;2764本讲稿第二十页,共三十四页四四.矩阵函数矩阵函数1.elfun基本函数库基本函数库A=1:1:5;B=0:10:50;sin(A)%对矩阵A中各元素求正玄函数值ans=0.84150.90930.1411-0.7568-0.9589sign(A)%符号函数ans=11111mean(A)%求平均值ans=3本讲稿第二十一页,共三十四页m,n=m,n=size(size(A,x)A,x):返回矩阵的行列数:返回矩阵的行列数mm与与n n,当,当x=1x=1,则只返回,则只返回行数行数mm,当,当x=2x=2,则只返回列数,则只返回列数n n。lengthlength(A)=(A)=maxmax(size(A)(size(A):返回行数或列数的最大值。:返回行数或列数的最大值。rankrank(A)(A):求矩阵的秩:求矩阵的秩a=1 2 3;3 4 5;m,n=size(a)m=2n=3length(a)ans=3max(size(a)ans=3rank(a)ans=22 2、求矩阵大小的函数、求矩阵大小的函数本讲稿第二十二页,共三十四页3.常用矩阵变换函数常用矩阵变换函数(elmat)本讲稿第二十三页,共三十四页A=10,212;34,2,4;98,34,6A=10212342498346fliplr(A)%矩阵左右翻转ans=12210423463498flipud(A)%矩阵上下翻转ans=98346342410212rot90(A)%矩阵反时针90度翻转ans=12462234103498tril(A)%产生下三角矩阵ans=1000342098346triu(A)%产生上三角矩阵ans=10212024006本讲稿第二十四页,共三十四页4.矩阵的专用函数矩阵的专用函数(matfun)本讲稿第二十五页,共三十四页A=10,212;34,2,4;98,34,6rank(A)%计算矩阵的秩ans=3det(A)%计算矩阵的行列式ans=10656inv(A)%求矩阵的逆ans=-0.01160.0372-0.00150.0176-0.10470.03450.0901-0.0135-0.0045v,u=eig(A)%求矩阵的特征值和特征向量,返回值中v为特征向量,u为特征值v=-0.2960-0.36350.3600-0.29250.4128-0.7886-0.90930.8352-0.4985u=48.8395000-19.8451000-10.9943C=eye(2);expm(C)%矩阵的指数函数ans=2.7183002.7183F=funm(A,sin)%一般矩阵函数,对A矩阵求正玄F=-1.2022-1.31690.49290.57761.9880-1.14590.19751.7427-1.6144本讲稿第二十六页,共三十四页注意:注意:求逆:求逆:invinv(A)(A);求行列式:求行列式:detdet(A)(A)要求矩阵必须为要求矩阵必须为方阵方阵了解矩阵超越函数在MATLAB中exp(指数函数)、sqrt(平方根)等命令也可以作用到矩阵上,但这种运算是定义在矩阵的单个元素上的,即分别对矩阵的每一个元素进行计算。超越数学函数可以在函数后加上m而成为矩阵的超越函数,例如:expm,sqrtm。矩阵的超越函数要求运算矩阵为方阵。norm(A)%求矩阵范数ans=109.5895norm(A,inf)%求矩阵的无穷范数ans=138本讲稿第二十七页,共三十四页第四章第四章 多项式的表达式及其操作多项式的表达式及其操作1.多项式的表达多项式的表达Matlab约定降幂多项式P(x)=anxn+an-1xn-1+a1x+a0用系数行向量P=anan-1a1a0表示。2.多项式行向量的生成方法多项式行向量的生成方法直接输入法直接输入法和利用指令生成法利用指令生成法。直接输入法直接输入法,按照约定将多项式的各项系数以降幂次序排放在行向量的元素位置上。注意:多项式缺的幂次项的系数为零。本讲稿第二十八页,共三十四页利用指令生成法利用指令生成法利用指令P=poly(AR)生成多项式系数向量。其中,若AR是方阵,则多项式P就是该方阵的特征多项式;若AR是行向量,即AR=ar1ar2arn,则AR的元素被认为是多项式P的根,即P=(x-ar1)(x-ar2)(x-arn)=anxn+an-1xn-1+a1x+a0.利用命令poly2str(P,s)可得到习惯方式显示的多项式,其中,s是多项式中的自变量。本讲稿第二十九页,共三十四页AR=147;3116;53268;P=poly(AR)%AR的特征多项式P=1.0000-80.0000588.0000-147.0000PPA=poly2str(P,s)%用习惯的方式显示多项式PPA=s3-80s2+588s-147R=-0.5-0.3+0.4i-0.3-0.4i%复向量R=-0.5000-0.3000+0.4000i-0.3000-0.4000iP=poly(R)%R的特征多项式P=1.00001.10000.55000.1250PPR=poly2str(P,s)%用习惯的方式显示多项式PPR=s3+1.1s2+0.55s+0.125本讲稿第三十页,共三十四页3.3.多项式的运算函数多项式的运算函数本讲稿第三十一页,共三十四页的“商”和“余”多项式。求p1=conv(102,conv(14,11);%计算分子多项式计算分子多项式p2=1011;%分母分母q,r=deconv(p1,p2);%多项式相除,商为多项式相除,商为q,余为余为rcq=商多项式为;cr=余多项式为;disp(cq,poly2str(q,s),disp(cr,poly2str(r,s)商多项式为s+5余多项式为5s2+4s+3本讲稿第三十二页,共三十四页a=156;b=1;r,sk=residue(b,a)%b,a分别是分子、分母多项式系数向量;r,s,k分别是留数,极点和直项r=-1.0000 1.0000s=-3.0000 -2.0000k=求根。p=1 3 6 20 69;roots(p)%计算多项式的根计算多项式的根 ans=-2.5473+1.5948i -2.5473-1.5948i 1.0473+2.5578i 1.0473-2.5578i本讲稿第三十三页,共三十四页小结数组和矩阵的生成矩阵的寻访和赋值矩阵的运算矩阵函数多项式的表达和生成多项式运算函数本讲稿第三十四页,共三十四页