第3章 矩阵运算.ppt

上传人:s****8 文档编号:68704070 上传时间:2022-12-29 格式:PPT 页数:57 大小:469KB
返回 下载 相关 举报
第3章 矩阵运算.ppt_第1页
第1页 / 共57页
第3章 矩阵运算.ppt_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《第3章 矩阵运算.ppt》由会员分享,可在线阅读,更多相关《第3章 矩阵运算.ppt(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第3章章 MATLAB的数值计算的数值计算矩阵的构建矩阵的构建矩阵元素矩阵元素矩阵运算矩阵运算矩阵的关系运算和逻辑运算矩阵的关系运算和逻辑运算多项式运算多项式运算3.1 矩阵的构建矩阵的构建3.1.1 直接输入法直接输入法 创建矩阵最简单的方法就是创建矩阵最简单的方法就是直接输入矩阵元素直接输入矩阵元素,输,输入格式有以下的要求:入格式有以下的要求:1.整个矩阵以整个矩阵以“”作为首尾;作为首尾;2.每行中的元素用每行中的元素用“,”或空格分隔;或空格分隔;3.行与行之间用分号行与行之间用分号“;”或回车键分隔;或回车键分隔;4.矩阵中的元素可以是数字或者表达式;矩阵中的元素可以是数字或者表

2、达式;5.如果矩阵中没有元素,这样的矩阵称为如果矩阵中没有元素,这样的矩阵称为空阵空阵 (Empty Matrix)。)。a=1 2 3;4 5 6;7 8 9a=1 2 3 4 5 6 7 8 9 b=1 sin(pi/6)sqrt(9)3+5 6 0b=1.0000 0.5000 3.0000 8.0000 6.0000 0 a=1+5i 2+6i;3+7i 4+8i或或 a=1 2;3 4+i*5 6;7 83.1.2 利用内部函数产生矩阵利用内部函数产生矩阵 利用内部函数可以很容易产生一些常见的特殊矩阵,利用内部函数可以很容易产生一些常见的特殊矩阵,常用函数如下:常用函数如下:eye(

3、m,n)产生单位矩阵产生单位矩阵zeros(m,n)产生元素全为产生元素全为0的矩阵的矩阵ones(m,n)产生元素全为产生元素全为1的矩阵的矩阵rand(m,n)产生均匀分布的随机元素矩阵,范围产生均匀分布的随机元素矩阵,范围01randn(m,n)产生正态分布的随机元素矩阵产生正态分布的随机元素矩阵diag(x)产生矩阵产生矩阵x的对角阵的对角阵magic(m)产生魔术矩阵产生魔术矩阵说明:说明:当当eye、zeros、ones、rand、randn函数函数只有一个参数只有一个参数n时,则产生时,则产生nn的方阵。的方阵。eye(3)ans=1 0 0 0 1 0 0 0 1 eye(3,

4、4)ans=1 0 0 0 0 1 0 0 0 0 1 0 zeros(3)ans=0 0 0 0 0 0 0 0 0 ones(3,4)ans=1 1 1 1 1 1 1 1 1 1 1 1 a=magic(3)a=8 1 6 3 5 7 4 9 2 diag(a)ans=8 5 2x=ones(3)x=1 1 1 1 1 1 1 1 1 tril(x)ans=1 0 0 1 1 0 1 1 1 triu(x)ans=1 1 1 0 1 1 0 0 1tril:产生下三角矩阵产生下三角矩阵triu:产生上三角矩阵产生上三角矩阵3.1.3 数组的构建数组的构建 在在MATLAB中数组可以看作行

5、向量,即只有一行的中数组可以看作行向量,即只有一行的矩阵,矩阵,MATLAB创建数组可用以下特殊命令:创建数组可用以下特殊命令:1.冒号生成法冒号生成法(初值:步长:终值)(初值:步长:终值)0:0.4:2ans=0 0.4000 0.8000 1.2000 1.6000 2.0000 步长若省略,默认间隔步长若省略,默认间隔1 0:0.3:1.3ans=0 0.3000 0.6000 0.9000 1.2000初值初值=0,终值,终值=2,步长,步长=0.4 a=1:4;b=1:2:7;c=a;b%利用向量生成矩阵利用向量生成矩阵c=1 2 3 4 1 3 5 7 d=a 9 10%在在a的

6、基础上扩展的基础上扩展d=1 2 3 4 9 102.linspace函数函数 linspace(a,b,n)差值差值=(b-a)/(n-1)a=linspace(0,1,4)a=0 0.3333 0.6667 1.0000 初值初值=0,终值,终值=1,元素个数,元素个数=43.logspace函数函数 logspace(a,b,n)公比公比=10(b-a)/(n-1)logspace(0,2,5)ans=1.0000 3.1623 10.0000 31.6228 100.0000 初值初值=100,终值,终值=102,元素个数,元素个数=5,公比,公比=100.53.2 矩阵的元素矩阵的元

7、素3.2.1 矩阵元素的下标表示矩阵元素的下标表示 1.全下标表示全下标表示 一一个个mn矩阵矩阵A的第的第i行,第行,第j列元素表示为列元素表示为A(i,j),即,即由行下标和列下标表示,由行下标和列下标表示,行列数从行列数从1开开始始。注意:注意:当给元素赋值时,如果超出矩阵范围,则自动扩当给元素赋值时,如果超出矩阵范围,则自动扩充矩阵;当取值时,若超出矩阵范围,则提示错误。充矩阵;当取值时,若超出矩阵范围,则提示错误。a=1 2;3 4;a(1,2)=9;a(2,3)=8;a(2,4)?Index exceeds matrix dimensions.aa=1 9 0 3 4 82.单下标

8、表示单下标表示 将矩阵的所有将矩阵的所有列列按从左到右的顺序接成按从左到右的顺序接成“一维长一维长列列”,然后对元素进行编号。一个,然后对元素进行编号。一个mn矩阵矩阵A的元素的元素 A(i,j)对应的下标为对应的下标为(j-1)*m+i。a=1 2 3;4 5 6;a(1,2)ans=2 a(3)ans=2 a(5)=10a=1 2 10 4 5 63.2.2 子矩阵子矩阵 1.全下标表示全下标表示(1)a(i j,k l):行数为:行数为i、j,列数为,列数为k、l的元素构成的元素构成子矩阵;子矩阵;(2)a(i:j,k:l):取行数为:取行数为ij,列数为,列数为kl的元素构成的的元素构

9、成的子矩阵子矩阵(3)a(i:j,:):取行数为:取行数为ij,所有列的元素构成的子矩,所有列的元素构成的子矩阵阵(4)a(end,k:j):取行数最大值,列数为:取行数最大值,列数为kj的元素构成的元素构成的子矩阵的子矩阵2.单下标表示单下标表示a(i j;k l):取单下标为:取单下标为i、j、k、l的元素构成子矩阵。的元素构成子矩阵。a=magic(5)a=17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 a(1 2,3 4)ans=1 8 7 14 a(1:2,3:5)ans=1 8 15 7 14 16

10、 a(1:2,:)ans=17 24 1 8 15 23 5 7 14 16 a(end,1:2)ans=11 18 a(1 3;4 5)ans=17 4 10 113.2.3 矩阵元素的删除矩阵元素的删除 删除矩阵元素可以简单的将该元素赋值为空矩阵删除矩阵元素可以简单的将该元素赋值为空矩阵(用(用 表示)。表示)。a=rand(3,4)a=0.8913 0.0185 0.6154 0.7382 0.7621 0.8214 0.7919 0.1763 0.4565 0.4447 0.9218 0.4057 a(2)=a=Columns 1 through 8 0.8913 0.4565 0.0

11、185 0.8214 0.4447 0.6154 0.7919 0.9218 Columns 9 through 11 0.7382 0.1763 0.40573.2.4 矩阵元素的数量矩阵元素的数量1.numel函数函数 n=numel(a):计算矩阵:计算矩阵a中元素的总数中元素的总数2.size函数函数d=size(a):d=m n,m为为a的行数,的行数,n为为a的列数的列数m n=size(a):m为为a的行数,的行数,n为为a的列数的列数m=size(a,dim):m为矩阵为矩阵a的第的第dim维的大小维的大小 a=rand(2,3)a=0.2844 0.0648 0.5828 0

12、.4692 0.9883 0.4235 d=size(a)d=2 3 m=size(a,2)m=3 numel(a)ans=63.3 矩阵与数组运算矩阵与数组运算MATLAB算术运算算术运算矩阵算术运算矩阵算术运算数组算术运算数组算术运算矩阵算术运算:按照线性代数运算法则定义矩阵算术运算:按照线性代数运算法则定义数组算术运算:按照元素逐个执行数组算术运算:按照元素逐个执行3.3.1 矩阵的运算矩阵的运算+加法加法 -减法减法 *乘法乘法 幂幂 左除左除 /右除右除 转置转置1.矩阵的加减法矩阵的加减法 矩阵的加减法是矩阵的加减法是对应元素的加减法对应元素的加减法,只有当两个只有当两个矩阵维数相

13、同或者其中一个为标量时,矩阵维数相同或者其中一个为标量时,才可以进行加才可以进行加减法运算。减法运算。a=1 2;3 4;b=5 6;7 8;a+bans=6 8 10 12 3+aans=4 5 6 7 b-3ans=2 3 4 52.矩阵的乘法矩阵的乘法 矩阵的乘法使用矩阵的乘法使用“*”运算符,两个矩阵要相乘,运算符,两个矩阵要相乘,只有当前一矩阵的列数与后一矩阵行数相等或者其中只有当前一矩阵的列数与后一矩阵行数相等或者其中一个为标量时才能进行。一个为标量时才能进行。a=1 2;3 4;b=5 6 7;8 9 10;a*bans=21 24 27 47 54 61 b*a?Error u

14、sing=*Inner matrix dimensions must agree.3*aans=3 6 9 123.矩阵的除法矩阵的除法 矩阵的除法有矩阵的除法有左除和右除左除和右除两种,分别用两种,分别用“”和和“/”表示。通常矩阵除法可以用来表示。通常矩阵除法可以用来求未知矩阵求未知矩阵。若若 A*X=B,则,则 X=AB 若若 X*A=B,则,则 X=B/A注意:注意:若若A、B都为矩阵时,这两个结果是不同都为矩阵时,这两个结果是不同 的,即的,即ABB/A。若若A、B中有一个为标量,设中有一个为标量,设A为标量,为标量,则则 这两个结果是相同的,即这两个结果是相同的,即AB=B/A。a

15、=1 2;3 4;b=5 6;8 9;c=a*bc=21 24 47 54 c/aans=-6 9 -13 20 acans=5.0000 6.0000 8.0000 9.0000 a=2;c=a*b acans=5 6 8 9 c/aans=5 6 8 9c=10 12 16 18例例:求解以下方程:求解以下方程 A=1 3 2;2 2 3;3 1 1A=1 3 2 2 2 3 3 1 1 B=1;10;7B=1 10 7 ABans=2 -3 44.矩阵的乘方矩阵的乘方 矩阵的乘方使用矩阵的乘方使用“”运算符,如运算符,如AP,当,当P为整为整数时,该指令运算结果可做如下解释:数时,该指令

16、运算结果可做如下解释:(1)当)当P0,表示方阵,表示方阵A直接自乘直接自乘P次;次;(2)当)当P a=1 2;3 4a=1 2 3 4 a2ans=7 10 15 22 a0ans=1 0 0 1 a(-2)ans=5.5000 -2.5000 -3.7500 1.75005.矩阵的转置矩阵的转置 矩阵的转置使用矩阵的转置使用“”运算符,矩阵的转置就是运算符,矩阵的转置就是将第将第i行第行第j列的元素和第列的元素和第j行第行第i列的元素进行互换。列的元素进行互换。对于有对于有复数元素复数元素的矩阵的矩阵A,A为为共轭转置,共轭转置,A.为为非共轭转置。非共轭转置。a=1 2;3 4a=1

17、2 3 4 aans=1 3 2 4 a=1+i 2+i;3+i 4+i;aans=1.0000-1.0000i 3.0000-1.0000i 2.0000-1.0000i 4.0000-1.0000i a.ans=1.0000+1.0000i 3.0000+1.0000i 2.0000+1.0000i 4.0000+1.0000i6.矩阵的逆矩阵的逆 在在MATLAB中,使用函数中,使用函数inv计算矩阵的逆矩阵。计算矩阵的逆矩阵。A是可逆矩阵的充分必要条件是是可逆矩阵的充分必要条件是|A|0,即可逆矩阵是,即可逆矩阵是非奇异方阵。非奇异方阵。a=magic(3)a=8 1 6 3 5 7

18、4 9 2 inv(a)ans=0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 a*inv(a)ans=1.0000 0 -0.0000 -0.0000 1.0000 0 0.0000 0 1.0000 a(-2)ans=0.0293 -0.0124 -0.0124 -0.0124 0.0293 -0.0124 -0.0124 -0.0124 0.0293 inv(a2)ans=0.0293 -0.0124 -0.0124 -0.0124 0.0293 -0.0124 -0.0124 -0.0124 0.02

19、937.方阵的行列式方阵的行列式 在在MATLAB中,求方阵的行列式的函数中,求方阵的行列式的函数是是det,用法:用法:det(a)。a=magic(3)a=8 1 6 3 5 7 4 9 2 det(a)ans=-3608.矩阵的特征值矩阵的特征值 如果如果AX=X存在非零解向量,则称存在非零解向量,则称为为A的一个特的一个特征值,相应的非零解向量征值,相应的非零解向量X称为与称为与相对应的特征向量。相对应的特征向量。在在MATLAB中,以函数中,以函数eig计算矩阵计算矩阵的特征值。的特征值。用法一:用法一:eig(a),把它的特征值以把它的特征值以列向量列向量的形式显的形式显 示出来。

20、示出来。用法二:用法二:v,d=eig(a),v为特征向量,为特征向量,G=1 2 0;2 5-1;4 10-1;eig(G)ans=3.7321 0.2679 1.0000 v,d=eig(G)v=-0.2440 -0.9107 0.4472 -0.3333 0.3333 -0.0000 -0.9107 -0.2440 0.8944d=3.7321 0 0 0 0.2679 0 0 0 1.00009.矩阵矩阵的特征多项式的特征多项式 设设A为为n阶方阵,如果阶方阵,如果和和n维非零列向量维非零列向量X使关系使关系式式AX=X成立,那么(成立,那么(A-E)X=0称为矩阵称为矩阵A的特征的特

21、征方程,方程,|A-E|称为方阵称为方阵A的特征多项式。的特征多项式。在在MATLAB中,以中,以函数函数poly计算矩阵的特征多项计算矩阵的特征多项式。式。a=-2 1 1;0 2 0;-4 1 3;poly(a)ans=1 -3 0 4 poly2sym(poly(a)ans=x3-3*x2+410.矩阵的秩矩阵的秩 设在矩阵设在矩阵A中存在一个不等于中存在一个不等于0的的r阶子式阶子式D,且所,且所有(有(r+1)阶子式全为)阶子式全为0,那么称,那么称D为方阵为方阵A的最高阶非的最高阶非零子式,零子式,r为矩阵为矩阵A的秩。的秩。在在MATLAB中,以函数中,以函数rank计算计算矩阵

22、的秩。矩阵的秩。a=magic(4)a=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 rank(a)ans=3 det(a)ans=03.3.2 数组的运算数组的运算数组运算符与矩阵运算符的区别便是多一个小黑点。数组运算符与矩阵运算符的区别便是多一个小黑点。.+加法加法.-减法减法 .*乘法乘法 .幂幂 .左除左除 ./右除右除 .转置转置 数组数组的运算操作都的运算操作都是对元素逐个进行是对元素逐个进行的的。a=ones(3);b=magic(3)b=8 1 6 3 5 7 4 9 2 a*bans=15 15 15 15 15 15 15 15 15 a.*

23、bans=8 1 6 3 5 7 4 9 2 b2ans=91 67 67 67 91 67 67 67 91 b.2ans=64 1 36 9 25 49 16 81 4 a=1 2 3;b=4 5 6;a.*bans=4 10 18 a.2ans=1 4 9 a.bans=4.0000 2.5000 2.0000 a=1+j 2+j 3+ja=1.0000+1.0000i 2.0000+1.0000i 3.0000+1.0000i a.ans=1.0000+1.0000i 2.0000+1.0000i 3.0000+1.0000i3.4 矩阵关系运算与逻辑运算矩阵关系运算与逻辑运算说明说明

24、:(1)表达式输入:非)表达式输入:非0“逻辑真逻辑真”,0“逻辑假逻辑假”(2)表达式输出:)表达式输出:1“逻辑真逻辑真”,0“逻辑假逻辑假”3.4.1 关系运算关系运算两个维数相同的矩阵进行比较两个维数相同的矩阵进行比较:相对应:相对应元元素进行比较,结果为一个同维数矩阵;素进行比较,结果为一个同维数矩阵;矩阵和标量进行比较矩阵和标量进行比较:标量和矩阵中的每:标量和矩阵中的每一个一个元素进行比较,结果为同维数矩阵。元素进行比较,结果为同维数矩阵。关关 系系 操操 作作 符符=大于等于大于等于大于大于=等于等于 a=1 2;3 4;b=1 3;4 4;a abans=0 0 0 0 a=

25、bans=1 0 0 1 a=2ans=0 1 0 0 a=bans=1 1 1 1 、=仅比较实部,而仅比较实部,而=、=同时比同时比较实部和虚部。较实部和虚部。3.4.2 逻辑运算逻辑运算 如果如果A和和B是维数相同的矩阵,或者其中一个是标是维数相同的矩阵,或者其中一个是标量,则可以对矩阵进行逻辑运算。量,则可以对矩阵进行逻辑运算。与与A&B或或and(A,B)或或A|B或或or(A,B)非非A或或not(A)异或异或xor(a,b)a=0 1 0 1;b=0 1 1 0;and(a,b)ans=0 1 0 0 a&bans=0 1 0 0 a|bans=0 1 1 1 xor(a,b)a

26、ns=0 0 1 1 a&1ans=0 1 0 13.5 各种运算符的优先级各种运算符的优先级 MATLAB对各种运算的优先级别做了规定。计算时,对各种运算的优先级别做了规定。计算时,遵守的规定是较高优先级先于较低优先级,相同优先级遵守的规定是较高优先级先于较低优先级,相同优先级遵从从左到右原则。遵从从左到右原则。优先级优先级运算符运算符最高最高().、.、.*、*、./、/、.、+、-:、=、=、=&最低最低|x=5;y=3;z=2;X=ones(3);Y=magic(3)Y=8 1 6 3 5 7 4 9 2 Z=zeros(3);a=x2*(X+Y)+za=227 52 177 102

27、152 202 127 252 77 b=Y&Z+xb=1 1 1 1 1 1 1 1 1 c=Y=Z+X=Y*xc=0 0 0 0 0 0 0 0 03.6 基本统计处理基本统计处理3.6.1 查最大值(查最大值(max)1.C=max(A)返回矩阵返回矩阵A各各列列的最大值;若的最大值;若A为向量,返回该向量为向量,返回该向量的最大值。的最大值。2.C,I=max(A)将矩阵将矩阵A各各列列中的最大元素值及其该元素的位置赋中的最大元素值及其该元素的位置赋予行向量予行向量C与与I;当;当A是向量时,是向量时,C、I是标量。是标量。3.C,I=max(A,dim)按矩阵按矩阵A的第的第dim维

28、的方向查取最大的元素及其该元维的方向查取最大的元素及其该元素的位置赋予向量素的位置赋予向量C与与I。若。若dim=1,按列操作(默认);,按列操作(默认);若若dim=2,按行操作。,按行操作。x=2 4 7 4 8 3;m=max(x)m=8 m,n=max(x)m=8n=5 x=3 5 1;9 4 6;max(x)ans=9 5 6 m,n=max(x)m=9 5 6n=2 1 2 m,n=max(x,1)m=9 5 6n=2 1 2 m,n=max(x,2)m=5 9n=2 14、2个向量或矩阵对应元素的比较个向量或矩阵对应元素的比较y=max(a,b)注意:注意:若若a、b(维数相同)

29、都为矩阵,则对应元素分别进(维数相同)都为矩阵,则对应元素分别进行比较,返回一个最大值,结果为一个同维数矩阵;若其行比较,返回一个最大值,结果为一个同维数矩阵;若其中一个为标量,则矩阵中每一个位置的元素和该标量进行中一个为标量,则矩阵中每一个位置的元素和该标量进行比较,返回一个最大值,比较,返回一个最大值,结果为同维数矩阵结果为同维数矩阵。a=5 6 3 0;3 7 2 1;2 9 1 8 a=5 6 3 0 3 7 2 1 2 9 1 8b=ones(3,4)*4 b=4 4 4 4 4 4 4 4 4 4 4 4 y=max(a,b)y=5 6 4 4 4 7 4 4 4 9 4 8 y=

30、max(a,4)y=5 6 4 4 4 7 4 4 4 9 4 83.6.2 查取最小值(查取最小值(min)min函数用来求取数据序列中的最小值,使函数用来求取数据序列中的最小值,使用方法和用方法和max函数相同。函数相同。3.6.3 求中值(求中值(median)1.Y=median(X):返回矩阵):返回矩阵X各各列列元素的中值元素的中值赋予行向量赋予行向量Y;若;若X为向量,为向量,Y为标量。为标量。2.Y=median(X,dim):将数组):将数组X的第的第dim维方维方向的元素求其中值赋予向量向的元素求其中值赋予向量Y;若;若dim=1,按列,按列操作(默认),若操作(默认),若

31、dim=2,按行操作。,按行操作。x=3 5 1;9 4 6;2 4 3 x=3 5 1 9 4 6 2 4 3 median(x,2)ans=3 6 3 a=1 2 3 4 2;median(a)ans=2 a=5 6 3 0;1 4 2 9;2 9 1 8;3 9 4 7;median(a)ans=2.5000 7.5000 2.5000 7.5000 median(x)ans=3 4 33.6.4 求平均值(求平均值(mean)1.Y=mean(X):返回矩阵):返回矩阵X各各列列元素的平均值赋予元素的平均值赋予行向量行向量Y;若;若X为向量,为向量,Y为标量。为标量。2.Y=mean(

32、X,dim):将数组):将数组X的第的第dim维方向的元素维方向的元素的平均值赋予向量的平均值赋予向量Y;若;若dim=1,按列操作,若,按列操作,若dim=2,按行操作。,按行操作。a=1 2 3;4 5 6a=1 2 3 4 5 6 mean(a)ans=2.5000 3.5000 4.5000 mean(a,2)ans=2 53.6.5 求和(求和(sum)1.Y=sum(X):返回矩阵):返回矩阵X各各列列元素的和赋予行向量元素的和赋予行向量Y;若;若X为向量,为向量,Y为标量。为标量。2.Y=sum(X,dim):将数组):将数组X的第的第dim维方向的元素维方向的元素的和赋予向量的

33、和赋予向量Y;若;若dim=1,按列操作,若,按列操作,若dim=2,按,按行操作。行操作。x=3 5 1;9 4 6;sum(x)ans=12 9 7 sum(ans)ans=28 sum(x,1)ans=12 9 7 sum(x,2)ans=9 193.6.6 求积(求积(prod)1.Y=prod(X):返回矩阵):返回矩阵X各各列列元素的积赋予行向量元素的积赋予行向量Y;若;若X为向量,为向量,Y为标量。为标量。2.Y=prod(X,dim):将数组):将数组X的第的第dim维方向的元素维方向的元素的积赋予向量的积赋予向量Y;若;若dim=1,按列操作,若,按列操作,若dim=2,按,

34、按行操作。行操作。a=1 2 3;4 5 6a=1 2 3 4 5 6 prod(a)ans=4 10 18 prod(a,2)ans=6 1203.6.7 排序(排序(sort)1.Y=sort(X):将矩阵):将矩阵X的各的各列列元素升序排列。元素升序排列。2.Y=sort(X,dim):将矩阵:将矩阵X的第的第dim维元素升序排列;维元素升序排列;若若dim=1,按列操作,若,按列操作,若dim=2,按行操作。,按行操作。3.Y=sort(X,dim,mode):按照:按照mode模式对矩阵模式对矩阵X进行进行排列,若排列,若mode为为ascend表示升序排列,若表示升序排列,若mod

35、e为为descend表示降序排列。表示降序排列。x=3 7 5;6 8 3;0 4 2;sort(x)ans=0 4 2 3 7 3 6 8 5 sort(x,2)ans=3 5 7 3 6 8 0 2 4 sort(x,2,descend)ans=7 5 3 8 6 3 4 2 03.7 多项式运算多项式运算 多项式是形如多项式是形如p(x)=a0 xn+a1xn-1+an-1x+an的式子,的式子,在在MATLAB中,多项式用行向量表示中,多项式用行向量表示P=a0 a1an-1 an。3.7.1 多项式的创建多项式的创建1.直接输入系数直接输入系数 直接输入向量,直接输入向量,MATLA

36、B将按降幂自动将向量的元将按降幂自动将向量的元素分配给多项式各项的系数,该向量可以是行向量或素分配给多项式各项的系数,该向量可以是行向量或列列向量。向量。P=3 5 0 1 0 12;y=poly2sym(P)y=3*x5+5*x4+x2+122.由多项式的根逆推多项式由多项式的根逆推多项式 若已知某多项式的根,可用若已知某多项式的根,可用poly函数反推出与其函数反推出与其相相对应的多项式。对应的多项式。roots=1 2;p=poly(roots)p=1 -3 2 poly2sym(p)ans=x2-3*x+23.7.2 多项式的运算多项式的运算1.多项式的求值多项式的求值(1)代数多项式

37、求值:)代数多项式求值:polyval函数函数 polyval(P,X)计算向量)计算向量P为系数的多项式在为系数的多项式在点点X的的值,如果值,如果X是矩阵或者向量,该命令是矩阵或者向量,该命令对对X的每个元素的每个元素都都进行计算。进行计算。(2)矩阵多项式求值:)矩阵多项式求值:polyvalm函数函数 Y=polyvalm(P,X)计算向量)计算向量P为系数的多项式为系数的多项式在在矩阵矩阵X的值的值,X必须为方阵。必须为方阵。Y=P(1)Xn+P(2)Xn-1+P(N)X+P(N+1)I p=1 2 3;poly2sym(p)ans=x2+2*x+3 polyval(p,2)ans=

38、11 a=1 2;3 4;polyval(p,a)ans=6 11 18 27 polyvalm(p,a)ans=12 14 21 33 b=1 2 3;4 5 6;polyvalm(p,b)?Error using=polyvalmMatrix must be square.2.多项式的根多项式的根 求多项式的根,即多项式为零的值。设多项式由求多项式的根,即多项式为零的值。设多项式由行向量行向量p表示,其系数按降序排列,使用表示,其系数按降序排列,使用roots函数计函数计算多项式的根,格式为算多项式的根,格式为roots(p)。例:计算多项式例:计算多项式x4+3x2+12x-7的根。的根

39、。p=1 0 3 12-7p=1 0 3 12 -7 roots(p)ans=0.7876+2.4351i 0.7876-2.4351i -2.0872 0.5121 polyval(p,ans)ans=1.0e-013*-0.0178+0.8793i -0.0178-0.8793i 0.1954 0 3.多项式的四则运算多项式的四则运算(1)加法和减法)加法和减法 如果两个多项式的向量阶数相同,可直接如果两个多项式的向量阶数相同,可直接进行加减法计算;如果向量阶数不同进行加减法计算;如果向量阶数不同,不能直,不能直接进行运算,需要在接进行运算,需要在低阶多项式的前面补低阶多项式的前面补0,使

40、其具有相同的阶数。使其具有相同的阶数。a=8 2 2 8;b=6 1 6 1;poly2sym(a)ans=8*x3+2*x2+2*x+8 poly2sym(b)ans=6*x3+x2+6*x+1 c=a+bc=14 3 8 9 poly2sym(c)ans=14*x3+3*x2+8*x+9 d=a-bd=2 1 -4 7 poly2sym(d)ans=2*x3+x2-4*x+7 e=2 4 5;d+e?Error using=plusMatrix dimensions must agree.d+0 eans=2 3 0 12 poly2sym(ans)ans=2*x3+3*x2+12(2)乘

41、法)乘法 使用使用conv函数对多项式进行乘法计算,其函数对多项式进行乘法计算,其格式为格式为 conv(a,b)例:计算例:计算(x3+2x2+3x+4)(5x3+6x2+7x+8)a=1 2 3 4;b=5 6 7 8;poly2sym(a)ans=x3+2*x2+3*x+4 poly2sym(b)ans=5*x3+6*x2+7*x+8 conv(a,b)ans=5 16 34 60 61 52 32 poly2sym(ans)ans=5*x6+16*x5+34*x4+60*x3+61*x2+52*x+32(3)除法)除法 使用使用deconv函数函数对多项式进行对多项式进行除法计算。除法

42、计算。q,r=deconv(v,u):用多项式用多项式v除以多项式除以多项式u,商赋,商赋予予q,余数赋予,余数赋予r。deconv是是conv的逆运算,的逆运算,v=conv(u,q)+r。a=1 2 3 4;b=5 6 7 8;c=conv(a,b);q,r=deconv(c,a)q=5 6 7 8r=0 0 0 0 0 0 0 c=c+0 0 0 4 3 2 1;q,r=deconv(c,a)q=5 6 7 12r=0 0 0 0 -5 -10 -15(4)求导)求导 polyder polyder(P):对:对多项式多项式P求导求导,并返回求导结果,并返回求导结果 polyder(P,

43、Q):相当于相当于polyder(P*Q)p,q=polyder(P,Q)求求P/Q的导数,导数的分子存入的导数,导数的分子存入p,分母存入,分母存入q。例:计算多项式(例:计算多项式(3x2-2x+1)(4x2+5x+6)的导数的导数 a=3-2 1;b=4 5 6;polyder(a,b)ans=48 21 24 -7所以所求结果为:所以所求结果为:48x3+21x2+24x-7例:计算有理分式例:计算有理分式1/(x2+5)的导数的导数 a=1;b=1 0 5;p,q=polyder(a,b)p=-2 0q=1 0 10 0 25所以结果为:所以结果为:-2x/(x4+10 x2+25)(5)多项式积分)多项式积分 polyint polyint(p,k):表示对多项式:表示对多项式p求积分求积分,常数项为,常数项为k(默认值为(默认值为0)。)。例:计算例:计算 a=3-2 1;polyint(a)ans=1 -1 1 0 polyint(a,3)ans=1 -1 1 3所以,计算结果为所以,计算结果为x3-x2+x+k。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁