MATLAB简明教程.docx

上传人:b****1 文档编号:2443585 上传时间:2023-05-03 格式:DOCX 页数:44 大小:67.24KB
下载 相关 举报
MATLAB简明教程.docx_第1页
第1页 / 共44页
MATLAB简明教程.docx_第2页
第2页 / 共44页
MATLAB简明教程.docx_第3页
第3页 / 共44页
MATLAB简明教程.docx_第4页
第4页 / 共44页
MATLAB简明教程.docx_第5页
第5页 / 共44页
MATLAB简明教程.docx_第6页
第6页 / 共44页
MATLAB简明教程.docx_第7页
第7页 / 共44页
MATLAB简明教程.docx_第8页
第8页 / 共44页
MATLAB简明教程.docx_第9页
第9页 / 共44页
MATLAB简明教程.docx_第10页
第10页 / 共44页
MATLAB简明教程.docx_第11页
第11页 / 共44页
MATLAB简明教程.docx_第12页
第12页 / 共44页
MATLAB简明教程.docx_第13页
第13页 / 共44页
MATLAB简明教程.docx_第14页
第14页 / 共44页
MATLAB简明教程.docx_第15页
第15页 / 共44页
MATLAB简明教程.docx_第16页
第16页 / 共44页
MATLAB简明教程.docx_第17页
第17页 / 共44页
MATLAB简明教程.docx_第18页
第18页 / 共44页
MATLAB简明教程.docx_第19页
第19页 / 共44页
MATLAB简明教程.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB简明教程.docx

《MATLAB简明教程.docx》由会员分享,可在线阅读,更多相关《MATLAB简明教程.docx(44页珍藏版)》请在冰点文库上搜索。

MATLAB简明教程.docx

MATLAB简明教程

一、初识MATLAB

二、MATLAB入门

●基本算术运算

1.加+

2.减-

3.乘*

4.除\或/

5.幂次方^

******

1.求

的算术运算结果

●变量

1.对字母大小写敏感

2.第一个字符必须是英文,6.5版本不超过63个

3.不包含空格、标点,但包含下划线

4.不与系统预定义变量相同

ans,eps,Inf或inf,i或j,pi,NaN或nan,nargin,nargout,realmax,realmin等

●标点符号

1.,输入量和输入量的分隔,数组元素的分隔,显示计算结果的指令与后面的指令分隔

2.;不显示计算结果指令的“结尾”标志,不显示计算结果指令与与后面的指令分隔,数组行的分隔

3.:

生成一维数组,单下标引用表全部元素,多下标引用表本维全部

4.%注释

5.[]输入数组引用,函数输出宗量表示

6.‘’字符串记述

●常用函数

abs(x),sqrt(x),exp(x),sin(x),cos(x),asin(x),acos(x),tan(x),atan(x),log(x),log10(x),lcm(x,y),gcd(x,y),imag(x),real(x),conj(x)

******

1.计算

●表达式

1.由变量名、运算符和函数名组成

2.按常规相同的优先级自左向右运算

3.括号优先

4.赋值符“=”和运算符两侧允许有空格

******

1.复数

,计算

●常用控制指令

clf清除图形框

clc清除指令框

clear清除工作空间

exit关闭/退出matlab

quit关闭/退出matlab

who查看工作区变量

whos查看工作区变量及详细情况

●数值显示格式(P.3自学)

formatshort短格式

formatshore短格式科学格式

formatlong长格式

formatlonge长格式科学格式

formatrat有理格式

formatbank银行格式

******

用MATLAB计算

能得到–2吗?

答:

不能!

第二章矩阵与多项式

●多项式的创建

1.表示方式

多项式降幂排列

,用系数行向量表示

2.创建方法

(1)直接输入法

(2)指令P=poly(AR)

若AR是方阵,多项式P是该方阵的特征多项式

若AR=[a1,a2,…,an-1,an],则AR的元素认为是多项式P的根

●多项式的计算

多项式的四则运算

1.多项式的加减运算

求多项式x4+8x3-10与多项式2x2-x+3的和

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也是多项式的向量表示。

求多项式x4+8x3-10导函数

多项式的求值

MATLAB提供了两种求多项式值的函数:

polyval与polyvalm,它们的输入参数均为多项式系数向量P和自变量x。

两者的区别在于前者是代数多项式求值,而后者是矩阵多项式求值。

已知多项式x4+8x3-10,分别取x=1.2和一个2×3矩阵为自变量计算该多项式的值

多项式求根

n次多项式具有n个根,当然这些根可能是实根,也可能含有若干对共轭复根。

MATLAB提供的roots函数用于求多项式的全部根,其调用格式为:

x=roots(P),其中P为多项式的系数向量,求得的根赋给向量x,即x

(1),x

(2),…,x(n)分别代表多项式的n个根。

求多项式x4+8x3-10的根

已知f(x),

(1)计算f(x)=0的全部根。

(2)由方程f(x)=0的根构造一个多项式g(x),并与f(x)进行对比。

●矩阵的创建

1.直接输入法

最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。

具体方法如下:

将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

a=2.7358;b=33/79;

C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]

2.利用冒号表达式建立一个向量

冒号表达式可以产生一个行向量,一般格式是:

e1:

e2:

e3,其中e1为初始值,e2为步长,e3为终止值。

在MATLAB中,还可以用linspace函数产生行向量。

其调用格式为:

linspace(a,b,n),其中a和b是生成向量的第一个和最后一个元素,n是元素总数。

显然,linspace(a,b,n)与a:

(b-a)/(n-1):

b等价。

3.利用M文件建立矩阵

对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。

特殊矩阵

1.通用的特殊矩阵

zeros:

产生全0矩阵(零矩阵)。

ones:

产生全1矩阵(幺矩阵)。

eye:

产生单位矩阵。

rand:

产生0~1间均匀分布的随机矩阵。

randn:

产生均值为0,方差为1的标准正态分布随机矩阵。

******

1.分别建立3×3、3×2和与矩阵A同样大小的零矩阵

(1)建立一个3×3零矩阵。

zeros(3)

(2)建立一个3×2零矩阵。

zeros(3,2)

(3)设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。

A=[123;456];%产生一个2×3阶矩阵A

zeros(size(A))%产生一个与矩阵A同样大小的零矩阵

2.建立随机矩阵:

(建立在矩阵与数值计算规则上)

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

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

命令如下:

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

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

2.用于专门学科的特殊矩阵

魔方矩阵、范得蒙矩阵、希尔伯特矩阵、托普利兹矩阵、伴随矩阵、帕斯卡矩阵

●矩阵元素

1.通过下标引用矩阵的元素

A=[1,2,3;4,5,6];

A(1,2)(A(m,n)表示第m行第n列)

ans=

2

2.通过序号引用矩阵的元素

A(3)序号一列一列算

ans=

2

序号(Index)与下标(Subscript)是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。

其相互转换关系也可利用sub2ind和ind2sub函数求得。

●矩阵运算

算术运算

1.基本算术运算

矩阵加减运算

假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。

运算规则是:

若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。

如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。

矩阵乘法

假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵,则C=A*B为m×p矩阵。

矩阵除法

在MATLAB中,有两种矩阵除法运算:

\和/,分别表示左除和右除。

如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。

A\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。

对于含有标量的运算,两种除法运算的结果相同,如3/4和4\3有相同的值,都等于0.75。

又如,设a=[10.5,25],则a/5=5\a=[2.10005.0000]。

对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。

对于矩阵运算,一般A\B≠B/A。

矩阵的乘方

一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。

2.点运算

在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。

点运算符有.*、./、.\和.^。

两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。

3.关系运算

MATLAB提供了6种关系运算符:

<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)

关系运算符的运算法则为:

(1)当两个比较量是标量时,直接比较两数的大小。

若关系成立,关系表达式结果为1,否则为0。

(2)当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。

最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。

(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。

最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。

逻辑运算

MATLAB提供了3种逻辑运算符:

&(与)、|(或)和~(非)。

逻辑运算的运算法则为:

(1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。

(2)设参与逻辑运算的是两个标量a和b,那么:

a&ba,b全为非零时,运算结果为1,否则为0。

a|ba,b中只要有一个非零,运算结果为1。

~a当a是零时,运算结果为1;当a非零时,运算结果为0。

(3)若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。

最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。

(4)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。

最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。

(5)逻辑非是单目运算符,也服从矩阵运算规则。

(6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。

矩阵的转置与旋转

1.矩阵的转置

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

2.矩阵的旋转

利用函数rot90(A,k)将矩阵A逆时针旋转90º的k倍,当k为1时可省略。

矩阵的逆与伪逆

1.矩阵的逆

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

A·B=B·A=I(I为单位矩阵),则称B为A的逆矩阵,当然,A也是B的逆矩阵。

在MATLAB中,求一个矩阵的逆非常容易。

求方阵A的逆矩阵可调用函数inv(A)。

2.矩阵的伪逆

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

A·B·A=A,B·A·B=B,此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。

在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。

方阵的行列式

把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。

在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。

矩阵的秩与迹

1.矩阵的秩

矩阵线性无关的行数与列数称为矩阵的秩。

在MATLAB中,求矩阵秩的函数是rank(A)。

2.矩阵的迹

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。

在MATLAB中,求矩阵的迹的函数是trace(A)。

矩阵的特征值与特征向量

在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的特征值和特征向量。

第3章符号运算

●符号对象

1.建立符号对象

(1)建立符号变量和符号常量

sym函数

sym函数用来建立单个符号量,一般调用格式为:

符号量名=sym('符号字符串')

该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。

a=sym('hello'),b=sym('a')

syms函数

sym一次只能定义一个符号变量,使用不方便。

MATLAB提供了另一个函数syms,一次可以定义多个符号变量。

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

syms符号变量名1符号变量名2…符号变量名n

用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。

symsabcd

(2)建立符号表达式

含有符号对象的表达式称为符号表达式。

建立符号表达式有以下3种方法:

利用单引号来生成符号表达式。

f='a*x^n+b*t'

用sym函数建立符号表达式。

c=sym('(1+sqrt(5))/2')

使用已经定义的符号变量组成符号表达式。

symsxn,f=x^n

2.符号表达式运算

(1)符号表达式的四则运算

符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现。

f='a*x^n+b*t',c='(1+sqrt(5))/2';

symadd(f,c)

(2)符号表达式的提取分子和分母运算

如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。

其一般调用格式为:

[n,d]=numden(s)

该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。

symsxy

[n,d]=numden(x/y+y/x)

(3)符号表达式的因式分解与展开

MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为:

factor(s):

对符号表达式s分解因式。

symsax;f1=x^4-5*x^3+5*x^2+5*x-6;factor(f1)

expand(s):

对符号表达式s进行展开。

symsx;

expand((x+1)^3)

collect(s):

对符号表达式s合并同类项。

collect(s,v):

对符号表达式s按变量v合并同类项。

EXPR=sym('(x^2+x*exp(-t)+1)*(x+exp(-t))');

expr1=collect(EXPR)

expr2=collect(EXPR,'exp(-t)')

(4)符号表达式的化简

MATLAB提供的对符号表达式化简的函数有:

simplify(s):

应用函数规则对s进行化简。

symsx;ff=cos(x)+sqrt(-sin(x)^2);

ssfy1=simplify(ff),ssfy2=simplify(ssfy1)

simple(s):

调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。

symsx;f=(1/x^3+6/x^2+12/x+8)^(1/3);

g1=simple(f),

(5)符号表达式与数值表达式之间的转换

利用函数sym可以将数值表达式变换成它的符号表达式。

函数numeric或eval可以将符号表达式变换成数值表达式。

phi=sym((1+sqrt(5))/2)

numeric(phi)

3.符号表达式中变量的确定

MATLAB中的符号可以表示符号变量和符号常量。

findsym可以帮助用户查找一个符号表达式中的的符号变量。

该函数的调用格式为:

findsym(s,n)

函数返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。

symsabxXY;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');

EXPR=a*z*X+(b*x^2+k)*Y;

findsym(EXPR)

findsym(EXPR,1)

4.符号矩阵

符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。

但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。

由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。

MATLAB还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意义。

例如

transpose(s):

返回s矩阵的转置矩阵。

determ(s):

返回s矩阵的行列式值。

diag、triu、tril、inv、det、rank、eig等,也可直接应用于符号矩阵。

symsa11a12a21a22;A=[a11,a12;a21,a22]

DA=det(A),IA=inv(A),EA=eig(A)

●符号微积分

1.符号极限

limit函数的调用格式为:

(1)limit(f,x,a):

求符号函数f(x)的极限值。

即计算当变量x趋近于常数a时,f(x)函数的极限值。

(2)limit(f,a):

求符号函数f(x)的极限值。

由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为函数findsym(f)确定的默认自变量,即变量x趋近于a。

(3)limit(f):

求符号函数f(x)的极限值。

符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。

(4)limit(f,x,a,'right'):

求符号函数f的极限值。

'right'表示变量x从右边趋近于a。

(5)limit(f,x,a,‘left’):

求符号函数f的极限值。

‘left’表示变量x从左边趋近于a。

******

求下列极限

极限1:

symsamx;

f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a);

limit(f,x,a)

极限2:

symsxt;

limit((1+2*t/x)^(3*x),x,inf)

极限3:

symsx;

f=x*(sqrt(x^2+1)-x);

limit(f,x,inf,'left')

极限4:

symsx;

f=(sqrt(x)-sqrt

(2)-sqrt(x-2))/sqrt(x*x-4);

limit(f,x,2,'right')

2.符号导数

diff函数用于对符号表达式求导数。

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

diff(s)。

没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。

diff(s,'v'):

以v为自变量,对符号表达式s求一阶导数。

(''加不加都一样)

diff(s,n):

按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。

diff(s,'v',n):

以v为自变量,对符号表达式s求n阶导数。

symsx;

f=x*(sqrt(x^2+1)-x);

diff(f)

3.符号积分

符号积分由函数int来实现。

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

int(s)。

没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。

int(s,v):

以v为自变量,对被积函数或符号表达式s求不定积分。

int(s,v,a,b):

求定积分运算。

a,b分别表示定积分的下限和上限。

该函数求被积函数在区间[a,b]上的定积分。

a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。

当函数f关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果。

当a,b中有一个是inf时,函数返回一个广义积分。

当a,b中有一个符号表达式时,函数返回一个符号函数。

F1=int('1/log(t)','t',0,'x')

4.积分变换

常见的积分变换有傅立叶变换、拉普拉斯变换和Z变换。

(1)傅立叶(Fourier)变换

在MATLAB中,进行傅立叶变换的函数是:

fourier(f,x,t):

求函数f(x)的傅立叶像函数F(t)。

ifourier(F,t,x):

求傅立叶像函数F(t)的原函数f(x)。

的Fourier变换

symstw;ut=sym('Heaviside(t)');

UT=fourier(ut)

UTC=maple('convert',UT,'piecewise','w')

UTS=simple(UT)

(2)拉普拉斯(Laplace)变换

在MATLAB中,进行拉普拉斯变换的函数是:

laplace(fx,x,t):

求函数f(x)的拉普拉斯像函数F(t)。

ilaplace(Fw,t,x):

求拉普拉斯像函数F(t)的原函数f(x)。

的Laplace变换

symsts;symsabpositiveDt=sym('Dirac(t-a)');Ut=sym('Heaviside(t-b)');Mt=[Dt,Ut;exp(-a*t)*sin(b*t),t^2*exp(-t)];MS=laplace(Mt,t,s)

(3)Z变换

当函数f(x)呈现为一个离散的数列f(n)时,对数列f(n)进行z变换的MATLAB函数是:

ztrans(fn,n,z):

求fn的Z变换像函数F(z)。

iztrans(Fz,z,n):

求Fz的z变换原函数f(n)。

求序列

的Z变换

symsz;fn=2*Delta+6*(1-(1/2)^n);FZ=simple(ztrans(fn,n,z));

disp('FZ=');pretty(FZ),FZ_n=iztrans(FZ,z,n)

5.级数

(1)级数符号求和

求无穷级数的和需要符号表达式求和函数symsum,其调用格式为:

symsum(s,v,n,m)

其中s表示一个级数的通项,是一个符号表达式。

v是求和变量,v省略时使用系统的默认变量。

n和m是求和的开始项和末项。

symsk

symsum(k^2,0,10)

(2)函数的泰勒级数

MATLAB提供了taylor函数将函数展开为幂级数,其调用格式为:

taylor(f,v,n,a)

该函数将函数f按变量v展开为泰勒级数,展开到第n项(即变量v的n-1次幂)为止,n的缺省值为6。

v的缺省值与diff函数相同。

参数a指定将函数f在自变量v=a处展开,a的缺省值是0。

计算表达式

的5阶泰勒级数展开

symsx

f=1/(5+cos(*x));

r=taylor(f)

●符号方程求解

1.符号代数方程求解

在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:

solve(s):

求解符号表达式s的代数方程,求解变量为默认变量。

solve(s,v):

求解符号表达式s的代数方程,求解

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2