第三章 MATLAB常用函数Word文档下载推荐.docx

上传人:b****6 文档编号:20169724 上传时间:2023-01-17 格式:DOCX 页数:36 大小:80.29KB
下载 相关 举报
第三章 MATLAB常用函数Word文档下载推荐.docx_第1页
第1页 / 共36页
第三章 MATLAB常用函数Word文档下载推荐.docx_第2页
第2页 / 共36页
第三章 MATLAB常用函数Word文档下载推荐.docx_第3页
第3页 / 共36页
第三章 MATLAB常用函数Word文档下载推荐.docx_第4页
第4页 / 共36页
第三章 MATLAB常用函数Word文档下载推荐.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

第三章 MATLAB常用函数Word文档下载推荐.docx

《第三章 MATLAB常用函数Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第三章 MATLAB常用函数Word文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。

第三章 MATLAB常用函数Word文档下载推荐.docx

acosh

反双曲余弦

指数函数

exp

E为底的指数

log10

10为底的对数

pow2

2的幂

log

自然对数

log2

2为底的对数

sqrt

平方根

复数函数

abs

绝对值

conj

复数共轭

real

复数实部

angle

相角

imag

复数虚部

圆整函数和求余函数

ceil

向+∞圆整

rem

求余数

fix

向0圆整

round

向靠近整数圆整

floor

向-∞圆整

sign

符号函数

mod

模除求余

矩阵变换函数

fiplr

矩阵左右翻转

diag

产生或提取对角阵

fipud

矩阵上下翻转

tril

产生下三角

fipdim

矩阵特定维翻转

triu

产生上三角

Rot90

矩阵反时针90翻转

其他函数

min

最小值

max

最大值

mean

平均值

median

中位数

std

标准差

diff

相邻元素的差

sort

排序

length

个数

norm

欧氏(Euclidean)长度

sum

总和

prod

总乘积

dot

内积

cumsum

累计元素总和

cumprod

累计元素总乘积

cross

外积

MATLAB数据分析与多项式计算

数据统计处理

最大值和最小值

MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。

1.求向量的最大值和最小值

求一个向量X的最大值的函数有两种调用格式,分别是:

(1)y=max(X):

返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。

(2)[y,I]=max(X):

返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。

求向量X的最小值的函数是min(X),用法和max(X)完全相同。

例 

求向量x的最大值。

命令如下:

x=[-43,72,9,16,23,47];

y=max(x) 

 

%求向量x中的最大值

[y,l]=max(x) 

%求向量x中的最大值及其该元素的位置

2.求矩阵的最大值和最小值

求矩阵A的最大值的函数有3种调用格式,分别是:

(1)max(A):

返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。

(2)[Y,U]=max(A):

返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。

(3)max(A,[],dim):

dim取1或2。

dim取1时,该函数和max(A)完全相同;

dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。

求最小值的函数是min,其用法和max完全相同。

分别求3×

4矩阵x中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。

3.两个向量或矩阵对应元素的比较

函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为:

(1)U=max(A,B):

A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。

(2)U=max(A,n):

n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。

min函数的用法和max完全相同。

例求两个2×

3矩阵x,y所有同一位置上的较大元素构成的新矩阵p。

求和与求积

数据序列求和与求积的函数是sum和prod,其使用方法类似。

设X是一个向量,A是一个矩阵,函数的调用格式为:

sum(X):

返回向量X各元素的和。

prod(X):

返回向量X各元素的乘积。

sum(A):

返回一个行向量,其第i个元素是A的第i列的元素和。

prod(A):

返回一个行向量,其第i个元素是A的第i列的元素乘积。

sum(A,dim):

当dim为1时,该函数等同于sum(A);

当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。

prod(A,dim):

当dim为1时,该函数等同于prod(A);

当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。

例求矩阵A的每行元素的乘积和全部元素的乘积。

平均值和中值

求数据序列平均值的函数是mean,求数据序列中值的函数是median。

两个函数的调用格式为:

mean(X):

返回向量X的算术平均值。

median(X):

返回向量X的中值。

mean(A):

返回一个行向量,其第i个元素是A的第i列的算术平均值。

median(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行的中值。

例分别求向量x与y的平均值和中值。

累加和与累乘积

在MATLAB中,使用cumsum和cumprod函数能方便地求得向量和矩阵元素的累加和与累乘积向量,函数的调用格式为:

cumsum(X):

返回向量X累加和向量。

cumprod(X):

返回向量X累乘积向量。

cumsum(A):

返回一个矩阵,其第i列是A的第i列的累加和向量。

cumprod(A):

返回一个矩阵,其第i列是A的第i列的累乘积向量。

cumsum(A,dim):

当dim为1时,该函数等同于cumsum(A);

当dim为2时,返回一个矩阵,其第i行是A的第i行的累加和向量。

cumprod(A,dim):

当dim为1时,该函数等同于cumprod(A);

当dim为2时,返回一个向量,其第i行是A的第i行的累乘积向量。

例求s的值。

标准方差与相关系数

1.求标准方差

在MATLAB中,提供了计算数据序列的标准方差的函数std。

对于向量X,std(X)返回一个标准方差。

对于矩阵A,std(A)返回一个行向量,它的各个元素便是矩阵A各列或各行的标准方差。

std函数的一般调用格式为:

Y=std(A,flag,dim)

其中dim取1或2。

当dim=1时,求各列元素的标准方差;

当dim=2时,则求各行元素的标准方差。

flag取0或1,当flag=0时,按σ1所列公式计算标准方差,当flag=1时,按σ2所列公式计算标准方差。

缺省flag=0,dim=1。

对二维矩阵x,从不同维方向求出其标准方差。

2.相关系数

MATLAB提供了corrcoef函数,可以求出数据的相关系数矩阵。

corrcoef函数的调用格式为:

corrcoef(X):

返回从矩阵X形成的一个相关系数矩阵。

此相关系数矩阵的大小与矩阵X一样。

它把矩阵X的每列作为一个变量,然后求它们的相关系数。

corrcoef(X,Y):

在这里,X,Y是向量,它们与corrcoef([X,Y])的作用一样。

例生成满足正态分布的10000×

5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。

X=randn(10000,5);

M=mean(X)

D=std(X)

R=corrcoef(X)

MATLAB中对向量X是排序函数是sort(X),函数返回一个对X中的元素按升序排列的新向量。

sort函数也可以对矩阵A的各列或各行重新排序,其调用格式为:

[Y,I]=sort(A,dim)

其中dim指明对A的列还是行进行排序。

若dim=1,则按列排;

若dim=2,则按行排。

Y是排序后的矩阵,而I记录Y中的元素在A中位置。

例对二维矩阵做各种排序。

多项式计算

多项式的四则运算

1.多项式的加减运算

2.多项式乘法运算

函数conv(P1,P2)用于求多项式P1和P2的乘积。

这里,P1、P2是两个多项式系数向量。

例求多项式x4+8x3-10与多项式2x2-x+3的乘积。

3.多项式除法

函数[Q,r]=deconv(P1,P2)用于对多项式P1和P2作除法运算。

其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。

这里,Q和r仍是多项式系数向量。

deconv是conv的逆函数,即有P1=conv(P2,Q)+r。

求多项式x4+8x3-10除以多项式2x2-x+3的结果。

多项式的导函数

对多项式求导数的函数是:

p=polyder(P):

求多项式P的导函数

p=polyder(P,Q):

求P·

Q的导函数

[p,q]=polyder(P,Q):

求P/Q的导函数,导函数的分子存入p,分母存入q。

上述函数中,参数P,Q是多项式的向量表示,结果p,q也是多项式的向量表示。

例求有理分式的导数。

P=[1];

Q=[1,0,5];

[p,q]=polyder(P,Q)

Matlab符号计算

MATLAB自产生之日起就在数值计算应用方面独占鳌头。

但仍有缺少符号运算的缺陷,1993年MathWorks公司从加拿大滑铁卢大学购入了Maple函数库的使用权,在此基础上开发了MATLAB自己的符号计算工具箱(SymbolicToolbox),且保留了与Maple的接口。

从此,MATLAB便集数值计算、符号计算和图形可视化三大基本功能于一体,成为在数值计算领域中功能强大、操作简单、最受用户喜爱的语言。

在MATLAB中实现符号计算功能主要有以下3种途径:

(1)通过调用MATLAB自己开发的各种功能函数进行常用符号运算。

这些功能主要包括符号矩阵的基本操作、符号矩阵的运算、符号微积分运算、符号线性方程求解、符号微分方程求解、特殊数学符号函数、符号函数图形等,这些内容将在本章中作详细的介绍。

对于众多喜爱和熟悉MATLAB的用户来说,这些操作十分简单,很容易学习和掌握。

(2)MATLAB语言中的符号计算功能已径很强大了,但为了一些特殊专业人员提供方便,MATLAB中还保留着与Maple的接口,以实现更多功能。

在应用过程中需了解一些Maple的操作语法。

本章中将对此作简单介绍。

(3)对那些习惯了计算器的人来说,MATLAB同样是最佳的选择,因为MATLAB还提供了符号运算计算器(Functioncalculator)功能。

符号表达式的生成

MATLAB将数值计算中的变量认为是被赋值的数值变量,将符号运算中数字也视为符号。

符号表达式包括符号函数和符号方程,两者的区别是:

前者不包括等号,而后者必须带有符号。

但这两者的创建方式是相同的,并且和MATLAB中的字符串变量的生成方法相同。

(1)创建符号函数

>

f='

log(x)'

f=

log(x)

(2)创建符号方程

eqation='

a*x^2+b*x+c=0'

eqation=

a*x^2+b*x+c=0

(3)创建符号微分方程

diffeq='

Dy-y=x'

diffeq=

Dy-y=x

由此种方法创建的符号表达式对空格是很敏感的。

因此不要在字符间乱加空格符,

否则在其他地方调用此表达式的时候会出错。

由于符号表达式在MATLAB中被看成是非1阶的符号矩阵,因此它也可用sym命令来创建。

如:

f=sym('

sin(x)'

sin(x)

sin(x)^2=0'

sin(x)^2=0

另外一种创建符号函数的方法是用syms命令来创建。

symsx%此法不能用来创建符号方程

f=sin(x)+cos(x)

sin(x)+cos(x)

符号矩阵的生成

在MATLAB中创建符号矩阵的方法和创建数值矩阵的形式很相似,只不过要用到符号定义函数sym,下面介绍使用此函数创建符号函数的几种形式。

使用sym函数直接创建符号矩阵

>

a=sym('

[1/s+x,sin(x),cos(x)^2/(b+x);

9,exp(x^2+y^2),log(tanh(y))]'

)%注意’的使用及位置

a=

[1/s+x,sin(x),cos(x)^2/(b+x)]

[9,exp(x^2+y^2),log(tanh(y))]

用创建子阵的方法创建符号矩阵

这种创建方式需用逗号将同行各元素分隔,列元素对不齐时要用空格调整。

a=['

[1/s+xsin(x)cos(x)^2/(b+x)]'

;

'

[9exp(x^2+y^2)log(tanh(y))]'

]

[1/s+xsin(x)cos(x)^2/(b+x)]

[9exp(x^2+y^2)log(tanh(y))]

[1/s+x,sin(x),cos(x)^2/(b+x)]'

[9,exp(x^2+y^2),log(tanh(y))]'

[1/s+x,sin(x),cos(x)^2/(b+x)]

[9,exp(x^2+y^2),log(tanh(y))]

b=[a;

[exp(-1),3,x^3+y^9]'

]%?

报错

将数值矩阵转化为符号矩阵

在MATLAB中,数值矩阵不能直接参与符号计算,必须先转化为符号矩阵。

注意不论数值矩阵的元素原先是用分数还是用浮点数表示的,转化后的符号矩阵都将以最接近的精确有理数给出。

a=[2/3,sqrt

(2),0.222;

1.4,1/0.23,log(3)]

0.66671.41420.2220

1.40004.34781.0986

b=sym(a)

b=

[2/3,sqrt

(2),111/500]

[7/5,100/23,4947709893870346*2^(-52)]

符号矩阵的索引和修改

MATLAB的矩阵索引和修改同数值矩阵的索引和修改完全相同,即用矩阵的坐标括号表达式实现。

b(1,3)%对上矩阵

ans=

111/500

b(2,3)='

log(9)'

[7/5,100/23,log(9)]

符号矩阵的基本运算

作为MATLAB语言核心的矩阵在符号运算中也发挥着重要作用,对符号矩阵本身的操作也显得十分重要,MATLAB为符号矩阵提供了与数值矩阵相应的操作方式和函数。

四则运算

1.矩阵的加(+)、减(-)法

[1/x,1/(x+1);

1/(x+2),1/(x+3)]'

[1/x,1/(x+1)]

[1/(x+2),1/(x+3)]

b=sym('

[x,1;

x+2,0]'

[x,1]

[x+2,0]

a+b

[1/x+x,1/(x+1)+1]

[1/(x+2)+x+2,1/(x+3)]

b-a

[x-1/x,1-1/(x+1)]

[x+2-1/(x+2),-1/(x+3)]

2.矩阵的乘(*)、除(/、\)法

a*b%矩阵a与b的线性代数乘法

[1+1/(x+1)*(x+2),1/x]

[1/(x+2)*x+1/(x+3)*(x+2),1/(x+2)]

a/b%相当于a*inv(b)

[1/(x+1),-(x^2-x-1)/(x^2+3*x+2)/x]

[1/(x+3),-(x^2+x-3)/(x^3+7*x^2+16*x+12)]

a\b%相当于inv(a)*b

[-6*x-2*x^3-7*x^2,3/2*x^2+x+1/2*x^3]

[6+2*x^3+10*x^2+14*x,-1/2*x^3-2*x^2-3/2*x]

3.矩阵的转置(’、.’)

a'

%结果中用到求复数共轭函数conj()

[1/conj(x),1/(2+conj(x))]

[1/(1+conj(x)),1/(3+conj(x))]

a.'

[1/x,1/(x+2)]

[1/(x+1),1/(x+3)]

2.3.2符号矩阵的其他基本运算

1.行列式

det(a)

2/x/(x+3)/(x+1)/(x+2)

2.符号矩阵的逆(运算)

inv(b)

[0,1/(x+2)]

[1,-x/(x+2)]

3.符号矩阵的秩(运算)

rank(a)

2

4.符号矩阵的幂运算

a^2

[1/x^2+1/(x+1)/(x+2),1/x/(x+1)+1/(x+1)/(x+3)]

[1/(x+2)/x+1/(x+3)/(x+2),1/(x+1)/(x+2)+1/(x+3)^2]

5.符号矩阵的指数运算

b

b=[x,1]

exp(b)

[exp(x),exp

(1)]

[exp(x+2),1]

c=sym('

[0,a;

b,0]'

c=

[0,a]

[b,0]

expm(c)%[V,D]=EIG(X)andEXPM(X)=V*diag(exp(diag(D)))/V

[1/2*exp((a*b)^(1/2))+1/2*exp(-(a*b)^(1/2)),1/2*a*(-exp(-(a*b)^(1/2))+exp((a*b)^(1/2)))/(a*b)^(1/2)]

[1/2*b*(-exp(-(a*b)^(1/2))+exp((a*b)^(1/2)))/(a*b)^(1/2),1/2*exp((a*b)^(1/2))+1/2*exp(-(a*b)^(1/2))]

矩阵分解

这是MATLAB符号矩阵操作的重要组成部分之一,其中包括特征值解、奇异值分解等,以及约当型、三角抽取和矩阵空间等。

符号矩阵的特征值分解——由eig函数实现

a='

a'

b='

b'

c='

c'

%清除变量a、b、c——同Maple

d=sym('

[a,b,c;

b,c,a;

c,a,b]'

[v,lambda]=eig(d)

v=

[1,-(a+(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)-b)/(a-c),-(a-(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)-b)/(a-c)]

[1,-(b-(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)-c)/(a-c),-(b+(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)-c)/(a-c)]

[1,1,1]

lambda=

[b+a+c,0,0]

[0,(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2),0]

[0,0,-(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)]

符号矩阵的奇异值分解——由svd函数实现

symstreal

A=[0,1;

-1,0];

E=expm(t*A)

E=

[cos(t),sin(t)]

[-sin(t),cos(t)]

sigma=svd(E)

sigma=

[(cos(t)^2+sin(t)^2)^(1/2)]

simplify(sigma)

[1]

符号矩阵的约当标准型——由jordan函数计算得到

[112;

013;

002]'

[1,1,2]

[0,1,3]

[0,0,2]

[x,y]=jordan(a)

x=

[5,-5,-5]

[3,0,-5]

[1,0,0]

y=

[2,0,0]

[0,1,1]

[0,0,1]

符号矩阵的三角抽取——由diag、tril、triu函数实现

diag——抽主对角线元素

tril、triu——分别抽左、右三角形

z=sym('

[x*yx^asin(y);

t^alog(y)b;

yexp(t)x]'

z=

[x*y,x^a,sin(y)]

[t^a,log(y),b]

[y,exp(t),x]

diag(z)

[x*y]

[log(y)]

[x]

tril(z,-1)

[0,0,0]

[t^a,0,0]

[y,exp(t),0]

triu(z,1)

[0,x^a,sin(y)]

[0,0,b]

符号矩阵的列空间——求解函数为colspace

013;

b=colspace(a)%求解出来的列向量构成原矩阵列空间的基

b=

[0,1,0]

size(b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1