《MATLAB之第二讲 矩阵与多项式运算 (1).ppt》由会员分享,可在线阅读,更多相关《MATLAB之第二讲 矩阵与多项式运算 (1).ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二讲第二讲 数值计算功能数值计算功能一、矩阵的生成一、矩阵的生成数组与矩阵的运算数组与矩阵的运算1 1、逐个元素输入法、逐个元素输入法 直接输入法直接输入法 x=1 2 3 4 5 6 7 8;4 5 6 7 8 9 10 11;1 2 3 4 5 6 7 8;x=;y=2,4,53 6 8y=2 4 5 3 6 8 a=1;b=2;c=3;x=5 b c;a*b a+c c/bx=5.0000 2.0000 3.0000 2.0000 4.0000 1.50002.2.快速矩阵生成法快速矩阵生成法快速矩阵生成法快速矩阵生成法(1)数组的冒泡生成法:)数组的冒泡生成法:x=a:inc:b y
2、=1:1:8y=1 2 3 4 5 6 7 8 y=0:0.2:1y=0 0.2000 0.4000 0.6000 0.8000 1.0000 x=1:8;4:11x=1 2 3 4 5 6 7 8 4 5 6 7 8 9 10 11(2)(2)采用采用采用采用MatlabMatlab的矩阵生成函数生成函数的矩阵生成函数生成函数的矩阵生成函数生成函数的矩阵生成函数生成函数法法法法举例说明矩阵生成函数:举例说明矩阵生成函数:x=linspace(n1,n2,n)%在区间上生成线性分度的向量在区间上生成线性分度的向量x=linspace(1,10,10)x=12345678910a=%生成一个空距
3、阵生成一个空距阵a=a=logspace(n1,n2,n)%在区间上生成对数分度的向量a=logspace(1,3,3)a=101001000eyeeye(m,n(m,n););eyeeye(m(m)%生成单位矩阵生成单位矩阵生成单位矩阵生成单位矩阵eyeeye(2,3)(2,3)ansans=100100010010eye(2)ans=1001zeroszeros(m,n(m,n););zeroszeros(m(m)%生成零矩阵生成零矩阵生成零矩阵生成零矩阵zeroszeros(2,3)(2,3)ansans=000000000000zeros(2)ans=0000ones(m,n);one
4、s(m)%生成一矩阵生成一矩阵onesones(2,3(2,3)ansans=111111111111ones(2)ans=1111V=a1,a2,anA=V=a1,a2,anA=diagdiag(V(V)%生成对角矩阵:对角元素向量生成对角矩阵:对角元素向量生成对角矩阵:对角元素向量生成对角矩阵:对角元素向量V=572;V=572;A=A=diagdiag(V(V)A=A=500500070070002002A=123;234;345;V=diag(A)V=135rand(m,n)%随机矩阵:产生一个随机矩阵:产生一个mn的均匀分布随机矩阵的均匀分布随机矩阵rand(2,4)ans=0.95
5、010.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.100
6、00.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
7、.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.100
8、00.10000.10000.10000.30000.30000.30000.30000.30000.30000.50000.50000.50000.50000.50000.5000X,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(1 2 5)%x的第1,2,5个元素ans=146x(1:5)%x的前的前5个元素个元素ans=141236x(10:en
9、d)%x的第的第10个元素后的元素个元素后的元素ans=69710811x(10:-1:2)%x的第的第10个元素和第二元素的倒排个元素和第二元素的倒排ans=6857463124x(find(x5)%查找查找x中大于中大于5的非零元素的非零元素ans=1267869710811A(:)%由由A的各列按从左到右的次序,首尾相接而生成的各列按从左到右的次序,首尾相接而生成“一维长列一维长列”数组数组矩阵寻址矩阵寻址A=1234;3456A(2,3)%A的第二行第三列的元素的第二行第三列的元素A=12343456ans=5A(2,:)%A的第二行全部列的元素的第二行全部列的元素ans=3456A(
10、:,3)%A的全部行第的全部行第3列的元素列的元素ans=35ans=132435462.数组赋值数组赋值x=141236475869710811x(4)=100%给给x的第的第4个元素重新赋值为个元素重新赋值为100 x=Columns1through1314121006475869710Columns14through15811x(3)=%删掉掉删掉掉3个元素个元素x=Columns1through131410064758697108Column1411x(16)=1%加入第加入第16个元素个元素x=Columns1through131410064758697108Columns14thr
11、ough161101矩阵赋值矩阵赋值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=Columns1through13141216475869710Columns14thro
12、ugh15811D=1:4;2:5;3:6;4:7D=1234234534564567D(:)ans=123423453456矩阵赋值矩阵赋值A(2,3)=5%改变位於第二列,第三行的元素值改变位於第二列,第三行的元素值A=1324354624354657A=1324354624554657B=A(2,1:3)%取出部份矩阵取出部份矩阵BB=245A=A;43211345%再增加一列再增加一列A=132435462455465743211345A(:,2)=%删除第二列(:代表所有行)删除第二列(:代表所有行)A=124354625546574211345A(13,:)=%删除第一和第三行(:
13、代表所有列)删除第一和第三行(:代表所有列)A=24554657A(:,23)=ones(2)%双下标赋值方式:把双下标赋值方式:把A的第的第2、3列元素全赋为列元素全赋为1A=123456784567891011A=111456784117891011三、矩阵的运算三、矩阵的运算1.矩阵的转置矩阵的转置在矩阵变量后加在矩阵变量后加“”来表示转置运算来表示转置运算A=123;456A=123456B=AB=142536转置:对于实矩阵用(转置:对于实矩阵用(转置:对于实矩阵用(转置:对于实矩阵用()符号或()符号或()符号或()符号或(.)求转置结果是一样的;然而对于含复数求转置结果是一样的;
14、然而对于含复数求转置结果是一样的;然而对于含复数求转置结果是一样的;然而对于含复数的矩阵,则(的矩阵,则(的矩阵,则(的矩阵,则()将同时对复数进行共轭)将同时对复数进行共轭)将同时对复数进行共轭)将同时对复数进行共轭处理,而处理,而处理,而处理,而(.)则只是将其排列形式进)则只是将其排列形式进)则只是将其排列形式进)则只是将其排列形式进行转置。行转置。行转置。行转置。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
15、+2.0000i2.0000-7.0000i2.矩阵的算术运算矩阵的算术运算四则运算与幂运算四则运算与幂运算只有维数相同的矩阵才能进只有维数相同的矩阵才能进行加减运算。行加减运算。注意只有当两个矩阵中前一注意只有当两个矩阵中前一个矩阵的列数和后一个矩阵个矩阵的列数和后一个矩阵的行数相同时,才可以进行的行数相同时,才可以进行乘法运算。乘法运算。ab运算等效运算等效于于求求a*x=b的的解;解;而而a/b等效于等效于求求x*b=a的解。只有方阵才的解。只有方阵才可以求幂。可以求幂。点运算是两个维数相同矩阵点运算是两个维数相同矩阵对应元素之间的运算,在有对应元素之间的运算,在有的教材中也定义为数组运
16、算。的教材中也定义为数组运算。如:如:如:如:a=12;34a=12;34;b=35;59b=35;59c=c=a+ba+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.0
17、02.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=3m,n=m,n=size(size(A,x)A,x):返回矩阵的行列返回矩阵的行列返回矩阵的行列返回矩阵的行列数数数数mm与与与与n n,当,当,当,当x=1x=1,则
18、则则则只返回行数只返回行数只返回行数只返回行数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、求矩阵大小的函数、求矩阵大小的函数、求矩阵大小的函数、求矩
19、阵大小的函数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=102120240064.矩阵的专用函数矩阵的专用函数(matfun)A=10,
20、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.
21、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(指数函指数函数
22、数)、sqrt(平方根)(平方根)等命等命令也可以作用到矩阵上,令也可以作用到矩阵上,但这种运算是定义在矩阵但这种运算是定义在矩阵的单个元素上的,即分别的单个元素上的,即分别对矩阵的每一个元素进行对矩阵的每一个元素进行计算。计算。超越数学函数可以在函数超越数学函数可以在函数后加上后加上m而成为矩阵的超而成为矩阵的超越函数,例如:越函数,例如:expm,sqrtm。矩阵的超矩阵的超越函数要求运算矩阵为方越函数要求运算矩阵为方阵。阵。norm(A)%求矩阵范数求矩阵范数ans=109.5895norm(A,inf)%求矩阵的无穷范数求矩阵的无穷范数ans=138第四章第四章多项式的表达式及其操作多
23、项式的表达式及其操作1.多项式的表达多项式的表达Matlab约定降幂多项式约定降幂多项式P(x)=anxn+an-1xn-1+a1x+a0用系数行向量用系数行向量P=anan-1a1a0表示。表示。2.多项式行向量的生成方法多项式行向量的生成方法直接输入法直接输入法和和利用指令生成法利用指令生成法。直接输入法,按照约定将多项式的各项系数以降幂次序排放在行向量的元素直接输入法,按照约定将多项式的各项系数以降幂次序排放在行向量的元素位置上。位置上。注意:多项式缺的幂次项的系数为零。注意:多项式缺的幂次项的系数为零。利用指令生成法利用指令生成法利用指令利用指令P=poly(AR)生成多项式系数向量。
24、其中,若生成多项式系数向量。其中,若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.0
25、000588.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.1253.3.多项式的运算函数多项式的运算函数多项式的运算函数多项式的运算函数的
26、的“商商”和和“余余”多多项项式。式。求求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+3a=156;b=1;r,sk=residue(b,a)%b,a分别是分子、分母多项式系数向量;分别是分子、分母多项式系数向量;r,s,k分分别是留数,极点和直项别是留数,极点和直项r=-1.00001.0000s=-3.0000-2.0000k=求根。求根。p=1362069;roots(p)%计算多项式的根计算多项式的根ans=-2.5473+1.5948i-2.5473-1.5948i1.0473+2.5578i1.0473-2.5578i小结数组和矩阵的生成矩阵的寻访和赋值矩阵的运算矩阵函数多项式的表达和生成多项式运算函数