建模课件代数部分



《建模课件代数部分》由会员分享,可在线阅读,更多相关《建模课件代数部分(61页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,,*,代数部分,交作业邮箱:,,,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,,例
2、 求两个多项式的和、差、乘积和除法运算,并用习惯形式表达,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*x^2+2*x+1在x=1,4,5,8时的值,,p=[3,2,1];,,x=[1
3、,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定义的
4、多项式中x的同类项合并,,simple(s),对s定义的多项式化简,,subs(s,'old','new'),用变量old替换new后,s的结果,7,,例 对多项式a^3-b^3进行因式分解,,s=sym('a^3-b^3 '),,y=factor(s),例 设多项式s=(1+2*x-y)^2,求其展开的多项式,并按y的幂次合并形式展开多项式,,s=sym('((1+2*x-y)^2)'),,p=expand(s),,collect(p,'y'),8,,例 对多项式x^3-6*x^2+11*x-6进行因式分解,并求x=1时的函数值,,s=sym('x^3-6*x^2+11*x-6'),,y=f
5、actor(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=x^2+y^2-1;,,[x,y]=solve(s1,s2,x,y),11,,例 求方程x^5+x^4-4*x^3+9
6、*x-10的所有根,,p=[1 -4 0 9 -10],,r=roots(p),,或者,,s=sym('x^4-4*x^3+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
7、);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为m×n矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。,,15,,例 先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,2
8、2;10,12,19,21,3;...11,18,25,2,19];D=diag(1:5);D*A %用D左乘A,对A的每行乘以一个指定常数,16,,产生0~1间均匀分布的随机矩阵,rand(2,4),,产生均值为0,方差为1的标准正态分布随机矩阵,,randn(3,5),,生成随机排列向量,,randpem(6),17,,用于专门学科的特殊矩阵,(1) 魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n,×n,共n,×n,个整数组成。MATLAB提供了求魔方矩阵的函数,magic(n),
9、,其功能是生成一个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是一个多项
10、式的系数向量,高次幂系数排在前,低次幂排在后。,,例 为了求多项式的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(a>7))%查询大于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),,
11、b(:)%把矩阵的每列以左右为次序,首尾相连成一个列向量,,b([2 4; 5 6]),,b([2 4]),,b(find(b>7)),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
12、的最大值和最小值。,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,,矩阵的基本运算,矩阵的加、减、数乘、乘、转置、逆运算
13、、矩阵乘幂分别为,,a+b;a-b;k*a;a*b;a';transpose(a);,,inv(a);a^(-1);a^n,计算方阵的行列式、求矩阵的秩、矩阵行变换化简、矩阵的迹分别为,,det(a); rank(a); rref(a); trace(a),,它们都符合矩阵的运算规律。,27,,矩阵除法在MATLAB中,有两种矩阵除法运算:\和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。A\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,如3/4和4\
14、3有相同的值,都等于0.75。又如,设a=[10.5,25],则a/5=5\a=[2.1000 5.0000]。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般A\B≠B/A。,28,,矩阵的伪逆如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A‘同型的矩阵B,使得:A·B·A=AB·A·B=B此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。,29,,例,,a=[1,2,3],,b=[1,2,3],,a+b,,a-b,,a',,试试下列命令,,a*
15、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,,a\b %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
16、3 5;1 3 6],,b=[2 4 5]',,x=inv(A)*b,,x=A\b,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
17、;3 1];,,X=A\C/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的
18、全部特征值组成列向量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的线性无关的特征向量得到,实际上,对于实
19、对称矩阵来说,其n个互异的特征值对应的特征向量组成的是正交矩阵。,40,,例 求矩阵P,将下述矩阵A对角化,并求,A=[4 6 0; -3 -5 0; -3 -6 1],,[p,d]=eig(A),p*d^10*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
20、,,例 用求特征值的方法解方程: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,的每个元
21、素等于,A,对应元素和,n,中的较大者。,min,函数的用法和,max,完全相同。,,45,,例 分析下列程序的功能。,x=[4 5 6;1 4 8];,,y=[1 7 5;4 5 7];,,p=max(x,y) ;,,p,分析:,取两个2×3的二维数组x和y同一位置上的元素值大者构成一个新矩阵p。,46,,平均值和中值,求数据序列平均值的函数是mean,求数据序列中值的函数是median。,mean(X),,,返回向量,X,的算术平均值。,median(X),,,,返回向量,X,的中值。,mean(A),,,,返回一个行向量,其第,i,个元素是,A,的第,i,列的算术平均值。,47,,med
22、ian(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),,%按列方向,求数组的中
23、值,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时
24、,返回一个列向量,其第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),,%求数组
25、各行元素的乘积,,,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,
26、时,该函数等同于,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和交换
27、下三角矩阵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),,,,求得m×m的矩阵Q和上三角矩阵R,Q的列形成了一个正交基,Q和R满足A=Q×R。,,[Q,R,P]=qr(A),,,求矩阵Q、上三角矩阵R和交换矩阵P。Q的列形成一个正交基,R的对角线元素按大小降序排列,它们满足A×P=Q×R。,60,,对矩阵作qr因式分解。,a=[2 5 4;5 2 1;4 1 8];,,[Q,R]=qr(a),,[Q,R,P]=qr(A),61,,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。