通信系统仿真第二章教程文件_第1页
通信系统仿真第二章教程文件_第2页
通信系统仿真第二章教程文件_第3页
通信系统仿真第二章教程文件_第4页
通信系统仿真第二章教程文件_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信系统仿真第二章矩阵元素可以是任何数值表达式例:>>

x=[-1.3,

sqrt(3),

(1+2+3)*4/5]矩阵元素赋值矩阵元素的单独赋值例:>>

x(5)=abs(x(1))例:>>

x(5)=abs(x(6))

??Matlab自动将向量x

的长度扩展到5,并将未赋值部分置零。大矩阵可以把小矩阵作为其元素矩阵元素赋值例:>>

A=[A;

111213]在原矩阵的下方加一行如何在原矩阵的右边添加一列?单个元素的引用例:>>

A(2,3)矩阵元素的引用多个元素的引用:冒号的特殊用法利用小括弧和元素所在的位置(下标)x

(

i

):向量x中的第i个元素A

(

i,

j

):矩阵A中的第i行,第j

列元素a:b:c产生一个由等差序列组成的向量;a是首项,b是公差,c确定最后一项;若b=1,则b可以省略。例:>>

x=1:2:5>>

y=1:2:6例:>>

x=2:1:5>>

y=2:5例:>>

x=3:2:1例:>>

x(1:3)>>

A(3,1:3)矩阵元素的引用A(i:j,m:n)表示由矩阵A的第

i

到第j

行和第m

到第n列交叉线上的元素组成的子矩阵。可利用冒号提取矩阵的整行或整列。例:>>

A(1,:)>>

A(:,1:3)>>

A(:,:)Matlab帮助系统联机帮助

help

显示指定命令的简短使用说明例:>>

helpeig>>

helphelp

详细使用帮助

doc

以网页形式显示指定命令的帮助页例:>>

doceig

其它相关命令helpdesk、helpwinMatlab查找命令

lookfor

按指定的关键词查询与之相关的命令例:>>

lookforinverse

which

显示指定函数所在的目录例:>>

whicheig

其它相关命令cd、dir、more变量命名原则Matlab变量以字母开头后面可以跟字母、数字和下划线

长度不超过63个字符(6.5版本以前为

19个)变量名区分字母的大小写

Matlab语句的通常形式变量=

表达式表达式是用运算符将有关运算量连接起来的式子,其结果被赋给赋值号“=”左边的变量Matlab不需要任何类型声明和维数说明,变量名的第一个字符必须是字母。

a=1;num_students=25;分号和续行符的作用Matlab变量若不想在屏幕上输出结果,可以在语句最后加分号

如果语句很长,可用续行符“…”(三个点)续行

续行符的前面最好留一个空格例:变量的查询Matlab变量

who

显示工作空间中的所有变量

whos

查看工作空间中变量的详细属性系统预定义变量Matlab变量

pi

:圆周率

,其值为

imag(log(-1))

inf,Inf

:无穷大

nan,NaN

:Not-a-Number,一个不定值,如

0/0

eps

:浮点运算相对精度特殊变量

ans

i,j

:虚部单位,即应尽量避免给系统预定义变量重新赋值!数与算术表达式Matlab数值运算

Matlab中的数默认是双精度实数,表示方法同C语言3,-9,0.4,1.603e-12,3.23e+20

浮点运算的相对误差为

eps

浮点数表示范围为:10-308

~10308

复数的输入

z=3+4i

(4与i之间不能有空格)

z=3+4*i复数作为矩阵元素输入时,加号两边不能有空格!数学运算符

+

加法Matlab数值运算

-

减法

*乘法

/和

\

除法(右除和左除)

^

幂运算命令分隔符:逗号和分号输出格式Matlab的输出

Matlab以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量“ans”

Matlab中数的输出格式可以通过format

命令指定format只改变变量的输出格式,但不会影响变量的值!各种format格式格式解释例format短格式(缺省显示格式),同short3.1416formatshort短格式(缺省显示格式),只显示5位3.1416formatlong长格式,双精度数15位,单精度数7位3.14159265358979formatshorte短格式e方式(科学计数格式)3.1416e+000formatlonge长格式e方式3.141592653589793e+000formatshortg短格式g方式3.1416formatlongg长格式g方式3.14159265358979formatcompact压缩格式formatloose自由格式format+/formatbank/formatrat/formathex(详情查看联机帮助)变量的存储存储当前工作空间中的变量

save

将所有变量存入文件

matlab.mat

savemydata

将所有变量存入指定文件

mydata.mat存储指定的变量

savemydata.mat

将所有变量存入文件

mydata.matsave

文件名变量名列表例:>>

savemydataAxz

变量名列表中各变量之间用空格分隔变量的读取将数据文件中的变量载入当前工作空间

loadmydata

载入数据文件中的所有变量

loadmydata

Ax

从数据文件中提取指定变量清除当前工作空间中的变量

clear清除当前工作空间中的所有变量

clearAx

清除指定的变量几个小技巧

Matlab的命令记忆功能:上下箭头键命令补全功能:Tab键

可以先输入命令的前几个字符,再按上下键缩小搜索范围用Esc键删除命令行(1)用线性等间距生成向量矩阵(start:step:end)》a=[1:2:10]a=13579(2)a=linspace(n1,n2,n)在线性空间上,行矢量的值从n1到n2,数据个数为n,缺省n为100。》a=linspace(1,10,10)a=12345678910(3)a=logspace(n1,n2,n)在对数空间上,行矢量的值从10n1到10n2,数据个数为n,缺省n为50。这个指令为建立对数频域轴坐标提供了方便。》a=logspace(1,3,3)a=1010010002.用matlab函数创建矩阵空阵[]—matlab允许输入空阵,当一项操作无结果时,返回空阵。rand——随机矩阵eye——单位矩阵zeros——全部元素都为0的矩阵ones——全部元素都为1的矩阵常见矩阵生成函数zeros(m,n)生成一个m

行n

列的零矩阵,m=n

时可简写为zeros(n)ones(m,n)生成一个m行n列的元素全为1的矩阵,

m=n

时可写为ones(n)eye(m,n)生成一个主对角线全为1的m

行n

列矩阵,

m=n

时可简写为eye(n),即为n

维单位矩阵diag(X)若X是矩阵,则diag(X)为X的主对角线向量若X是向量,diag(X)产生以X为主对角线的对角矩阵tril(A)提取一个矩阵的下三角部分triu(A)提取一个矩阵的上三角部分rand(m,n)产生0~1间均匀分布的随机矩阵m=n

时简写为rand(n)randn(m,n)产生均值为0,方差为1的标准正态分布随机矩阵

m=n

时简写为randn(n)其它特殊矩阵生成函数:magic、hilb、pascal》eye(2,3)ans=100010》zeros(2,3)ans=000000》ones(2,3)ans=111111》V=[572];A=diag(V)A=500070002》eye(2)ans=1001》zeros(2)ans=0000》ones(2)ans=1111如果已知A为方阵,则V=diag(A)可以提取A的对角元素构成向量V。

还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙矩阵等的创建。注意:matlab严格区分大小写字母,因此a与A是两个不同的变量。

matlab函数名必须小写。例子建立随机矩阵:

(1)在区间[20,50]内均匀分布的5阶随机矩阵。

(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。

命令如下:

x=20+(50-20)*rand(5)

y=0.6+sqrt(0.1)*randn(5)

此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。2.用于专门学科的特殊矩阵

(1)魔方矩阵

魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。

M=100+magic(5)

(2)范得蒙矩阵

范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。例如,A=vander([1;2;3;5])即可得到上述范得蒙矩阵。

(3)希尔伯特矩阵

在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。

使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。例求4阶希尔伯特矩阵及其逆矩阵。

命令如下:

formatrat%以有理形式输出

H=hilb(4)

H=invhilb(4)

(4)托普利兹矩阵

托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x,y均为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。例如

T=toeplitz(1:6)(5)伴随矩阵

MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的x3-7x+6的伴随矩阵,可使用命令:

p=[1,0,-7,6];

compan(p)(6)帕斯卡矩阵

我们知道,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。例子例求(x+y)5的展开式。

在MATLAB命令窗口,输入命令:

pascal(6)

矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。例子产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。

(1)生成5阶随机方阵A。

A=fix((90-10+1)*rand(5)+10)

(2)判断A的元素是否可以被3整除。

P=rem(A,3)==0

其中,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。此时,0被扩展为与A同维数的零矩阵,P是进行等于(==)比较的结果矩阵。建立矩阵A,然后找出大于4的元素的位置。

(1)建立矩阵A。

A=[4,-65,-54,0,6;56,0,67,-45,0]

(2)找出大于4的元素的位置。

find(A>4)先建立5×5矩阵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的每行乘以一个指定常数

2.三角阵

三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全为0的一种矩阵,而下三角阵则是对角线以上的元素全为0的一种矩阵。(1)上三角矩阵

求矩阵A的上三角阵的MATLAB函数是triu(A)。

triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵A的第k条对角线以上的元素。例如,提取矩阵A的第2条对角线以上的元素,形成新的矩阵B。

(2)下三角矩阵

在MATLAB中,提取矩阵A的下三角矩阵的函数是tril(A)和tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k)完全相同。2.4.2矩阵的转置与旋转

1.矩阵的转置

转置运算符是单撇号(‘)。

2.矩阵的旋转

利用函数rot90(A,k)将矩阵A旋转90º的k倍,当k为1时可省略。3.矩阵的左右翻转

对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依次类推。MATLAB对矩阵A实施左右翻转的函数是fliplr(A)。

4.矩阵的上下翻转

MATLAB对矩阵A实施上下翻转的函数是flipud(A)。2.4.3矩阵的逆与伪逆

1.矩阵的逆

对于一个方阵A,如果存在一个与其同阶的方阵B,使得:

A·B=B·A=I(I为单位矩阵)

则称B为A的逆矩阵,当然,A也是B的逆矩阵。

求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在MATLAB中,求一个矩阵的逆非常容易。求方阵A的逆矩阵可调用函数inv(A)。

例用求逆矩阵的方法解线性方程组。

Ax=b

其解为:

x=A-1b2.矩阵的伪逆

如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A‘同型的矩阵B,使得:

A·B·A=A

B·A·B=B

此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。2.4.4方阵的行列式

把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。2.4.5矩阵的秩与迹

1.矩阵的秩

矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是rank(A)。

2.矩阵的迹

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。2.4.6向量和矩阵的范数

矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。1.向量的3种常用范数及其计算函数

在MATLAB中,求向量范数的函数为:

(1)norm(V)或norm(V,2):计算向量V的2—范数。

(2)norm(V,1):计算向量V的1—范数。

(3)norm(V,inf):计算向量V的∞—范数。2.矩阵的范数及其计算函数

MATLAB提供了求3种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。

2.4.7矩阵的条件数

在MATLAB中,计算矩阵A的3种条件数的函数是:

(1)cond(A,1)计算A的1—范数下的条件数。

(2)cond(A)或cond(A,2)计算A的2—范数下的条件数。

(3)cond(A,inf)计算A的∞—范数下的条件数。2.4.8矩阵的特征值与特征向量

在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有3种:

(1)E=eig(A):求矩阵A的全部特征值,构成向量E。

(2)[V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。(3)[V,D]=eig(A,‘nobalance’):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。例用求特征值的方法解方程。

3x5-7x4+5x2+2x-18=0

p=[3,-7,0,5,2,-18];

A=compan(p);%A的伴随矩阵

x1=eig(A)%求A的特征值

x2=roots(p)%直接求多项式p的零点2.5矩阵的超越函数

1.矩阵平方根sqrtm

sqrtm(A)计算矩阵A的平方根。

2.矩阵对数logm

logm(A)计算矩阵A的自然对数。此函数输入参数的条件与输出结果间的关系和函数sqrtm(A)完全一样3.矩阵指数expm、expm1、expm2、expm3

expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都求矩阵指数eA。

4.普通矩阵函数funm

funm(A,‘fun’)用来计算直接作用于矩阵A的由‘fun’指定的超越函数值。当fun取sqrt时,funm(A,‘sqrt’)可以计算矩阵A的平方根,与sqrtm(A)的计算结果一样。

2.6字符串

在MATLAB中,字符串是用单撇号括起来的字符序列。

MATLAB将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。字符串是以ASCII码形式存储的。abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。相反,char函数可以把ASCII码矩阵转换为字符串矩阵。例建立一个字符串向量,然后对该向量做如下处理:

(1)取第1~5个字符组成的子字符串。

(2)将字符串倒过来重新排列。

(3)将字符串中的小写字母变成相应的大写字母,其余字符不变。

(4)统计字符串中小写字母的个数。命令如下:

ch='ABc123d4e56Fg9';

subch=ch(1:5)%取子字符串

revch=ch(end:-1:1)%将字符串倒排

k=find(ch>='a'&ch<='z');%找小写字母的位置

ch(k)=ch(k)-('a'-'A');%将小写字母变成相应的大写字母

char(ch)

length(k)%统计小写字母的个数

与字符串有关的另一个重要函数是eval,其调用格式为:

eval(t)

其中t为字符串。它的作用是把字符串的内容作为对应的MATLAB语句来执行。3.矩阵的修改直接修改可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。指令修改可以用A(,)=来修改。例如a=[120;305;789]a=120305789a(3,3)=0a=120305780矩阵加、减(+,-)运算规则:相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。三、矩阵运算2.矩阵乘()运算规则:A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘。a=[123;456;780];b=[1;2;3];c=a*bc=143223

d=[-1;0;2];f=pi*df=-3.141606.2832

矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种矩阵除运算

a^p——a自乘p次幂

方阵>1的整数3.矩阵乘方——a^n,a^p,p^a对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量a^p使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,a^p则无意义。

a=[1,2,3;4,5,6;7,8,9];a^2ans=303642668196102126150※当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。

a^0.5ans=

0.4498+0.7623i0.5526+0.2068i0.6555-0.3487i1.0185+0.0842i1.2515+0.0228i1.4844-0.0385i1.5873-0.5940i1.9503-0.1611i2.3134+0.2717ia=[12;34];b=[35;59]》c=a+bd=a-b》c=d=47-2-3813-2-5》a*b=[1323;2951]》a/b=[-0.500.50;3.50–1.50]》a\b=[-1-1;23]》a^3=[3754;81118]》a.*b=[310;1536]》a./b=[0.330.40;0.600.44]》a.\b=[3.002.50;1.672.25]》a.^3=[18;2764]只有维数相同的矩阵才能进行加减运算。注意只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘法运算。a\b运算等效于求a*x=b的解;而a/b等效于求x*b=a的解。只有方阵才可以求幂。点运算是两个维数相同矩阵对应元素之间的运算,本书定义为数组运算。inv——矩阵求逆det——行列式的值eig——矩阵的特征值diag——对角矩阵’——矩阵转置sqrt——矩阵开方4.矩阵的其它运算求逆和行列式要求矩阵必须为方阵

》a=[123;456;235];》b=inv(a)b=-2.33330.33331.00002.66670.3333-2.0000-0.6667-0.33331.0000》det(a)ans=-3转置:对于实矩阵用(’)符号或(.’)求转置结果是一样的;然而对于含复数的矩阵,则(’)将同时对复数进行共轭处理,而(.’)则只是将其排列形式进行转置。》a=[123;456]'a=142536》a=[123;456].'a=142536》b=[1+2i2-7i]'b=1.0000-2.0000i2.0000+7.0000i》b=[1+2i2-7i].'b=1.0000+2.0000i2.0000-7.0000i5.矩阵的一些特殊操作矩阵的变维

a=[1:12];b=reshape(a,3,4)c=zeros(3,4);c(:)=a(:)矩阵的变向

rot90:旋转;fliplr:上翻;flipud:下翻矩阵的抽取

diag:抽取主对角线;tril:抽取主下三角;

triu:抽取主上三角矩阵的扩展关系运算关系符号意义<<=>>===~=小于小于或等于大于大于或等于等于不等于4.数组运算(1)数组的加和减(2)数组的乘和除(3)数组的乘方

数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同数组加减(.+,.-)a.+ba.-b5.矩阵的数组运算对应元素相加减(与矩阵加减等效)2.数组乘除(,./,.\)ab——a,b两数组必须有相同的行和列两数组相应元素相乘。a=[123;456;789];b=[246;135;7910];a.*bans=281841530497290a=[123;456;789];b=[246;135;7910];a*bans=253746558510985133172a./b=b.\aa.\b=b./aa./b=b.\a—都是a的元素被b的对应元素除a.\b=b./a—都是a的元素被b的对应元素除例:a=[123];b=[456];c1=a.\b;c2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000——给出a,b对应元素间的商.3.数组乘方(.^)—元素对元素的幂例:a=[123];b=[456];z=a.^2z=1.004.009.00z=a.^bz=1.0032.00729.00应用举例1、行列式计算;2、求解线性方程组;3、解特征值问题4、矩阵分解6、矩阵分解(1)奇异值分解[U,S,V]=svd(A)例:a=9868可以验证:u*u’=Iv*v’=Iu*s*v’=a求矩阵A的奇异值及分解矩阵,满足U*S*V’=A,其中U、V矩阵为正交矩阵(U*U’=I),S矩阵为对角矩阵,它的对角元素即A矩阵的奇异值。[u,s,v]=svd(a)u=0.7705-0.63750.63750.7705s=15.5765001.5408v=0.6907-0.72310.72310.6907(2)特征值分解[V,D]=eig(A)例:a=9868[v,d]=eig(a)v=0.7787-0.73200.62740.6813d=15.4462001.5538求矩阵A的特征向量V及特征值D,满足A*V=V*D。其中D的对角线元素为特征值,V的列为对应的特征向量。如果D=eig(A)则只返回特征值。可以验证:A*V=V*D(3)正交分解[Q,R]=qr(A)例:a=9868[q,r]=qr(a)q=-0.8321-0.5547-0.55470.8321r=-10.8167-11.094002.2188将矩阵A做正交化分解,使得Q*R=A,其中Q为正交矩阵(其范数为1,指令norm(Q)=1),R为对角化的上三角矩阵。norm(q)ans=1q*rans=9.00008.00006.00008.0000(4)三角分解[L,U]=lu(A)将A做对角线分解,使得A=L*U,其中L为下三角矩阵,U为上三角矩阵。注意:L实际上是一个“心理上”的下三角矩阵,它事实上是一个置换矩阵P的逆矩阵与一个真正下三角矩阵L1(其对角线元素为1)的乘积。[L1,U1,P]=lu(A)例:a=[123;456;789]

比较:[l1,u1,p]=lu(a)[l,u]=lu(a)l1=1.00000.141.0000.570.501.00u1=7.008.009.0000.861.71000.00p=001100010l=0.141.0000.570.501.001.0000u=7.008.009.0000.861.71000.00可以验证:u1=u,inv(p)*l1=la=l*up*a=l1*u1matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。

f(x)=anxn+an-1xn-1+……+a0

可用行向量p=[anan-1……a1+a0]表示poly——产生特征多项式系数向量特征多项式一定是n+1维的特征多项式第一个元素一定是1四、多项式运算例:a=[123;456;780];p=poly(a)p=1.00-6.00-72.00-27.00p是多项式p(x)=x3-6x2-72x-27的matlab描述方法,我们可用:p1=poly2str(p,‘x’)—函数文件,显示数学多项式的形式p1=x^3-6x^2-72x-272.roots——求多项式的根a=[123;456;780];p=poly(a)p=1.00-6.00-72.00-27.00r=roots(p)r=12.12-5.73——显然r是矩阵a的特征值

-0.39当然我们可用poly令其返回多项式形式p2=poly(r)p2=1.00-6.00-72.00-27.00matlab规定多项式系数向量用行向量表示,一组根用列向量表示。3.conv,convs多项式乘运算例:a(x)=x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(4x2+5x+6)a=[123];b=[456];c=conv(a,b)=conv([123],[456])c=4.0013.0028.0027.0018.00p=poly2str(c,'x')p=4x^4+13x^3+28x^2+27x+184.deconv多项式除运算a=[123];c=[4.0013.0028.0027.0018.00]d=deconv(c,a)d=4.005.006.00[d,r]=deconv(c,a)余数c除a后的整数5.多项式微分matlab提供了polyder函数多项式的微分。命令格式:polyder(p):求p的微分polyder(a,b):求多项式a,b乘积的微分[p,q]=polyder(a,b):求多项式a,b商的微分例:a=[12345];poly2str(a,'x')ans=x^4+2x^3+3x^2+4x+5b=polyder(a)b=4664poly2str(b,'x')ans=4x^3+6x^2+6x+4五、代数方程组求解matlab中有两种除运算左除和右除。对于方程ax+b,a为an×m矩阵,有三种情况:当n=m时,此方程成为“恰定”方程当n>m时,此方程成为“超定”方程当n<m时,此方程成为“欠定”方程

matlab定义的除运算可以很方便地解上述三种方程1.恰定方程组的解方程ax+b(a为非奇异)x=a-1

b

矩阵逆两种解:x=inv(a)b—采用求逆运算解方程x=a\b—采用左除运算解方程方程ax=ba=[12;23];b=[8;13];x=inv(a)*b

x=a\bx=x=2.002.003.003.00

=

ax=b例:x1+2x2=82x1+3x2=132.超定方程组的解方程ax=b,m<n时此时不存在唯一解。方程解(a'a)x=a'bx=(a'

a)-1a'b——求逆法

x=a\b——matlab用最小二乘法找一个准确地基本解。例:x1+2x2=12x1+3x2=23x1+4x2=3

解1x=a\b

解2x=inv(a'a)a'b

x=x=1.001.0000.00

=

ax=b3.欠定方程组的解

当方程数少于未知量个数时,即不定情况,有无穷多个解存在。matlab可求出两个解:用除法求的解x是具有最多零元素的解是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。

x1+2x2+3x3=12x1+3x2+4x3=2a=[123;234];b=[1;2];x=a\bx=pinv(a)bx=x=1.000.8300.330-0.17=ax=b六、函数优化寻优函数:fmin——单变量函数fmins——多变量函数constr——有约束条件无约束条件七、数据分析与插值函数max——各列最大值mean——各列平均值sum——各列求和std——各列标准差var——各列方差sort——各列递增排序矩阵的函数>>helpmatfunMatrixfunctions-numericallinearalgebra.

Matrixanalysis.norm-Matrixorvectornorm.normest-Estimatethematrix2-norm.rank-Matrixrank.det-Determinant.trace-Sumofdiagonalelements.null-Nullspace.orth-Orthogonalization.rref-Reducedrowechelonform.subspace-Anglebetweentwosubspaces.

3.矩阵的函数

Linearequations.\and/-Linearequationsolution;use"helpslash".inv-Matrixinv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论