matlab使用指导.docx

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

matlab使用指导.docx

《matlab使用指导.docx》由会员分享,可在线阅读,更多相关《matlab使用指导.docx(47页珍藏版)》请在冰点文库上搜索。

matlab使用指导.docx

matlab使用指导

一、基础知识

1.1常见数学函数

函数名

数学计算功能

函数名

数学计算功能

abs(x)

实数的绝对值或复数的幅值

floor(x)

对x朝-∞方向取整

acos(x)

反余弦arcsin

gcd(m,n)

求正整数m和n的最大公约数

acosh(x)

反双曲余弦arccosh

imag(x)

求复数x的虚部

angle(x)

在四象限内求复数x的相角

lcm(m,n)

求正整数m和n的最小公倍数

asin(x)

反正弦arcsin

log(x)

自然对数(以

为底数)

asinh(x)

反双曲正弦arcsinh

log10(x)

常用对数(以10为底数)

atan(x)

反正切arctan

real(x)

求复数x的实部

atan2(x,y)

在四象限内求反正切

rem(m,n)

求正整数m和n的m/n之余数

atanh(x)

反双曲正切arctanh

round(x)

对x四舍五入到最接近的整数

ceil(x)

对x朝+∞方向取整

sign(x)

符号函数:

求出x的符号

conj(x)

求复数x的共轭复数

sin(x)

正弦sin

cos(x)

余弦cos

sinh(x)

反双曲正弦sinh

cosh(x)

双曲余弦cosh

sqrt(x)

求实数x的平方根:

exp(x)

指数函数

tan(x)

正切tan

fix(x)

对x朝原点方向取整

tanh(x)

双曲正切tanh

abs(x)

x的绝对值

sum(x)

对x求和

max(x)

x的最大值

min(x)

x的最小值

如:

输入x=[-4.85-2.3-0.21.34.566.75],则:

ceil(x)=-4-20257

fix(x)=-4-20146

floor(x)=-5-3-1146

round(x)=-5-20157

1.2系统的在线帮助

1help命令:

1.当不知系统有何帮助内容时,可直接输入help以寻求帮助:

>>help(回车)

2.当想了解某一主题的内容时,如输入:

>>helpsyntax(了解Matlab的语法规定)

3.当想了解某一具体的函数或命令的帮助信息时,如输入:

>>helpsqrt(了解函数sqrt的相关信息)

2lookfor命令

现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:

>>lookforline(查找与直线、线性问题有关的函数)

1.3常量与变量

系统的变量命名规则:

变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。

此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:

特殊变量

取值

ans

用于结果的缺省变量名

pi

圆周率

eps

计算机的最小数,当和1相加就产生一个比1大的数

flops

浮点运算数

inf

无穷大,如1/0

NaN

不定量,如0/0

i,j

i=j=

nargin

所用函数的输入变量数目

nargout

所用函数的输出变量数目

realmin

最小可用正实数

realmax

最大可用正实数

1数值型向量(矩阵)的输入

1.任何矩阵(向量),可以直接按行方式输入每个元素:

同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。

所有元素处于一方括号([])内;

例1:

>>Time=[111212345678910]

>>X_Data=[2.323.43;4.375.98]

2.系统中提供了多个命令用于输入特殊的矩阵:

函数

功能

函数

功能

compan

伴随阵

toeplitz

Toeplitz矩阵

diag

对角阵

vander

Vandermonde矩阵

hadamard

Hadamard矩阵

zeros

元素全为0的矩阵

hankel

Hankel矩阵

ones

元素全为1的矩阵

invhilb

Hilbert矩阵的逆阵

rand

元素服从均匀分布的随机矩阵

kron

Kronercker张量积

randn

元素服从正态分布的随机矩阵

magic

魔方矩阵

eye

对角线上元素为1的矩阵

pascal

Pascal矩阵

meshgrid

由两个向量生成的矩阵

上面函数的具体用法,可以用帮助命令help得到。

如helpzeros,可查到zeros的具体用法。

例:

meshgrid(x,y)

输入x=[1234];y=[105];[X,Y]=meshgrid(x,y),则

X=Y=

12341111

12340000

12345555

目的是将原始数据x,y转化为矩阵数据X,Y。

2符号向量(矩阵)的输入

1.用函数sym定义符号矩阵:

函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制。

只需将方括号置于单引号中。

例2:

>>sym_matrix=sym('[abc;JackHelp_MeNO_WAY]')

sym_matrix=

[a,b,c]

[Jack,Help_Me,NO_WAY]

2.用函数syms定义符号矩阵

先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。

例3:

>>symsabc;

>>M1=sym('Classical');

>>M2=sym('Jazz');

>>M3=sym('Blues');

>>A=[abc;M1,M2,M3;sym([235])]

A=

[a,b,c]

[Classical,Jazz,Blues]

[2,3,5]

1.4数组(矩阵)的点运算

运算符:

+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),

例4:

>>g=[1234];h=[4321];

>>s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h

1.5矩阵的运算

运算符:

+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)、’(转置)等;

常用函数:

det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref(化矩阵为行最简形)

例5:

>>A=[20–1;132];B=[17–1;423;201];

>>M=A*B%矩阵A与B按矩阵运算相乘

>>det_B=det(B)%矩阵A的行列式

>>rank_A=rank(A)%矩阵A的秩

>>inv_B=inv(B)%矩阵B的逆矩阵

>>[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵D

>>X=A/B%A/B=A*B-1,即XB=A,求X

>>Y=B\A%B\A=B-1*A,即BY=A,求Y

1.6关系运算符:

1.关系操作符:

2.

关系操作符

说明

<

小于

<=

小于或等于

>

大于

>=

大于或等于

==

等于

~=

不等于

 

2.逻辑运算符:

逻辑操作符

说明

~

上机练习

(一):

1.练习数据和符号的输入方式,将前面的命令在命令窗口中执行通过;

2.输入A=[715;256;315],B=[111;222;333],在命令窗口中执行下列表达式,掌握其含义:

A(2,3)A(:

2)A(3,:

)A(:

1:

2:

3)A(:

3).*B(:

2)A(:

3)*B(2,:

)A*BA.*BA^2A.^2B/AB./A

3.输入C=1:

2:

20,则C(i)表示什么?

其中i=1,2,3,…,10;

4.查找已创建变量的信息,删除无用的变量;

5.欲通过系统做一平面图,请查找相关的命令与函数,获取函数的帮助信息。

6.利用help学习一下函数的功能:

size()ones()rand()randn()pascal()dot()cross()max()min()sort()mean()det()

inv()trace()norm()rank()floor()round()fix()ceil()mod()

7.利用help学习一下命令的功能:

clearclcclocknowwhosdatetictocsaveload

二、编程

2.1无条件循环

当需要无条件重复执行某些命令时,可以使用for循环:

for循环变量t=表达式1:

达式2:

表达式3

语句体

end

说明:

表达式1为循环初值,表达式2为步长,表达式3为循环终值;当表达式2省略时则默认步长为1;for语句允许嵌套。

例6:

如:

矩阵输入程序

生成3×4阶的Hiltber矩阵。

m=input(‘矩阵行数:

m=’);

fori=1:

3n=input(‘矩阵列数:

n=’);

forj=1:

4fori=1:

m

H(i,j)=1/(i+j-1);forj=1:

n

enddisp([‘输入第’,num2str(i),’行,第’,num2str(j),’列元素’])

endA(i,j)=input(‘’)

endend

2.2条件循环

1)if-else-then语句

if-else-then语句的常使用三种形式为:

(1)if逻辑表达式(3)if逻辑表达式1

语句体语句体1

endelseif逻辑表达式2

语句体2

(2)if逻辑表达式1elseif逻辑表达式3

语句体1…

elseelse

语句体2语句体n

endend

2)while循环语句

while循环的一般使用形式为:

while表达式

语句体

end

例7:

用二分法计算多项式方程

=0在[0,3]内的一个根。

解:

a=0;fa=-inf;

b=3;fb=inf;

whileb-a>eps*b

x=(a+b)/2;

fx=x^3-2*x-5;

ifsign(fx)==sign(fa)

a=x;fa=fx;

else

b=x;fb=fx;

end

end

x

运行结果为:

x=2.0945515148154233

2.3分支结构

若需要对不同的情形执行不同的操作,可用switch分支语句:

switch表达式(标量或字符串)

case值1

语句体1

case值2

语句体2

otherwise

语句体n

end

说明:

当表达式不是“case”所列值时,执行otherwise语句体。

2.4建立M文件

将多个可执行的系统命令,用文本编辑器编辑后并存放在后缀为.m的文件中,若在MATLAB命令窗口中输入该m-文件的文件名(不跟后缀.m!

),即可依次执行该文件中的多个命令。

这个后缀为.m的文件,也称为Matlab的脚本文件(ScriptFile)。

注意:

文件存放路径必须在Matlab能搜索的范围内。

2.5建立函数文件

对于一些特殊用户函数,系统提供了一个用于创建用户函数的命令function,以备用户随时调用。

1.格式:

function[输出变量列表]=fun_name(输入变量列表)

用户自定义的函数体

2.函数文件名为:

fun_name,注意:

保存时文件名与函数名最好相同;

3.存储路径:

最好在系统的搜索路径上。

4.调用方法:

输出参量=fun_name(输入变量)

例8:

计算s=n!

,在文本编辑器中输入:

functions=pp(n);

s=1;

fori=1:

n

s=s*i;

end

s;

在MATLAB命令窗口中输入:

s=pp(5)

结果为s=120

上机练习

(二):

1.编写程序,计算1+3+5+7+…+(2n+1)的值(用input语句输入n值)。

2.编写分段函数

的函数文件,存放于文件ff.m中,计算出

的值。

三、微积分

3.1极限limit:

limit(F,x,a)计算

limit(F,a)符号表达式F中由命令findsym(F)返回独立的变量v,计算

limit(F)符号确定同上,设为v,计算

limit(F,x,a,'right')计算

limit(F,x,a,'left')计算

例9:

计算

解:

>>symsnmx

>>f=(6*n^2-n+1)/(n^3-n^2+2)

>>h=(sqrt(1+x)-2)/(x-3)

>>lim_f=limit(f,n,inf)

>>lim_h=limit(h,x,3,'right')

运算结果是:

lim_f=

0

lim_h=

1/4

3.2函数的导数diff:

diff(f,v)计算

diff(f,v,n)计算

diff(f,n)独立变量确定同上,设为v,计算

例10:

已知

,证明:

解:

>>x=sym('x')

>>y=sym('y')

>>z=log(sqrt(x)+sqrt(y))

>>result=x*diff(z,x)+y*diff(z,y)

>>simple(result)

计算的结果为:

result=

1/2

例11:

已知

,求

解:

设方程F(x,y,z)=0确定了函数z=z(x,y),则

,再用类似的计算方法,可以计算

>>symsxyz

>>F=atan((y+z)/x)-log(x+y+z)

>>dFdx=diff(F,x)

>>dFdz=diff(F,z)

>>dZdx=-dFdx/dFdz%计算

>>dZdxdy=diff(dZdx,y)

>>dZdxdz=diff(dZdx,z)

>>d2Zdxdy=-dZdxdy/dZdxdz%计算

3.3单积分int、quad、quad8:

1.int—不定积分:

F=int(f)

F=int(f,var)f:

被积函数,var:

对函数f中的变量var积分。

F:

函数f的原函数。

F中没有常数C。

例12:

计算

解:

>>symsxyz;

>>f=exp(x*y+z);

>>F1=int(f)

>>F2=int(f,z)

2.int—定积分及广义积分:

F=int(f,a,b)

F=int(f,var,a,b)f:

被积函数;a,b:

积分上下限,可为无穷大∞(负无穷大:

-∞);F:

函数的积分值,有时为无穷大。

3.quad、quad8—定积分:

y=quad(‘f’,a,b,tol)

y=quad8(‘f’,a,b,tol)

参数说明:

f:

被积函数;a,b:

积分上下限;tol:

计算精度,quad()的默认值为:

tol=1e-3,quad8()的默认值为:

tol=1e-6。

quad()函数采用的是Simpson方法计算定积分的近似值。

quad8()函数采用的是NewtonCotes方法计算定积分的近似值,其精度比前者更高。

例13:

计算

解:

>>symsx

>>f=1/(x^2+2*x+3);

>>F1=int(f,2,pi)

>>F2=int(f,-inf,inf)

运算的结果是:

F1=

1/2*atan(1/2*2^(1/2)*(pi+1))*2^(1/2)-1/2*atan(3/2*2^(1/2))*2^(1/2)

F2=

1/2*2^(1/2)*pi

例14:

计算无初等原函数的定积分

解:

先定义被积函数为函数文件,文件名为:

f.m

functiony=f(x)

y=1/sqrt(2*pi)*exp(-x.^2/2);

保存后,在命令窗口键入

>>formatlong

>>y=quad('f',-3,3)

则显示结果为

y=

0.99730005055470

3.4泰勒展式taylor:

taylor(f)f:

待展开的函数表达式,可以不用单引号生成;

taylor(f,n)n:

把函数展开到n阶;若不包含n,则缺省地展开到6阶

taylor(f,v)v:

对函数f中的变量v展开

taylor(f,a)a:

对函数f在x=a点展开。

例15:

计算

(1)把y=

展开到6阶;

(2)把y=lnx在x=1点展开到6阶;

(3)把y=

关于变量t展开到3阶。

解:

>>symsxt

>>t1=taylor(exp(-x))

>>t2=taylor(log(x),6,1)

>>t3=taylor(x^t,3,t)

运算结果为:

t1=

1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5

t2=

x-1-1/2*(x-1)^2+1/3*(x-1)^3-1/4*(x-1)^4+1/5*(x-1)^5

t3=

1+log(x)*t+1/2*log(x)^2*t^2

3.5近似梯度gradient:

[FX,FY]=gradient(F)

[FX,FY]=gradient(F,H)

[FX,FY]=gradient(F,HX,HY)

[FX,FY,FZ]=gradient(F)

[FX,FY,FZ]=gradient(F,HX,HY,HZ)

参数说明:

F:

待求梯度的数值矩阵。

F可以为向量、二维矩阵、三维矩阵;

FX,FY,FZ:

矩阵F在x、y、z方向上的数值梯度;

H:

H为一标量,作为各个方向上各点之间的步长;

HX,HY,HZ:

矩阵F在x、y、z方向上的具体步长。

HX,HY,HZ可为标量或与矩阵F各个方向上同维的向量。

例16:

计算函数

数值梯度,且以图形显示。

解:

>>[x,y]=meshgrid(-2:

.2:

2,-2:

.2:

2);

>>z=x.*exp(-x.^2-y.^2);

>>[px,py]=gradient(z,.2,.2);

>>contour(z)

>>holdon

>>quiver(px,py)

3.6函数梯度和方向导数jacobian:

jacobian(f,v)

参数说明:

f:

函数向量或标量,当f为标量时,jacobian(f,v)=gradient(f);

v:

自变量向量或者单个变量。

例17:

求①

在点M(1,1,1)处的梯度;

在点O(0,0,0)及A(1,2,3)处的梯度。

解:

>>symsxyz

>>u1=x*y*z

>>u2=x^2+2*y^2+3*y^2+x*y+3*x-2*y-6*z

>>v=[x,y,z]

>>J1=jacobian(u1,v)

>>J2=jacobian(u2,v)

>>J1_M=subs(subs(subs(J1,x,1),y,1),z,1)

>>J2_O=subs(subs(subs(J2,x,0),y,0),z,0)

>>J2_A=subs(subs(subs(J1,x,1),y,2),z,3)

计算的结果为:

J1_M=

111

J2_O=

3-2-6

J2_A=

632

3.7方程(组)的求解solve、linsolve:

x=linsolve(A,B)专门用于求解线性方程组

ss=solve(s)可适用于所有代数方程(组)

ss=solve(s,v)

参数说明:

s:

包含方程(一个)等式的字符串(可以是函数名,或者是描述方程的字符串);

v:

方程s中的一个变量;

例18:

求解:

(1)

,其中

(2)

,其中

为未知数;

解:

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

>>x=linsolve(A,B)或X=A\B

>>solve('p*sin(2*x+t)=q','t')

例19:

求非线性方程组的解

解:

>>[x,y]=solve('sin(x+y)-exp(x)*y=0','x^2-y=2')

计算结果为:

x=

-6.0173272500593065641097297117905

y=

34.208227234306296508646214438330

上机练习(三):

1.求极限:

2.求导数:

,求

3.求不积分:

4.求定积分:

5.解方程组:

6.求

的5阶泰勒展开式。

四、微分方程

4.1常微分方程(组)的符号解dsolve:

[y1,y2,…]=dsolve('eqn1','qun2',…,'var1','var2',…,'inition','disp_var1','disp_var2'…)

参数说明:

'eqn1','eqn2',…:

包含微分方程(组)在内的字符串,可以是函数名或是微分方程(组)的表达式;每个'eqn_i'可以包含一个或多个微分方程。

'var1','var2',…:

指定方程组中独立的变量(若方程组中有多个符号,要指定某个符号为未知变量符号);

'inition':

微分方程的初始条件(组),或者是初始条件的表达式。

如:

'y(a)=b'表示

,'D3y(c)=d'表示

例20:

求通解

(1)y''+3y'+2y=0

(2)

解:

>>equ_1='D2y+3*Dy+2*y=0'

>>equ_41='Dx=y+x'

>>equ_42='Dy=y-x+1'

>>y1=dsolve(equ_1,'x')

>>[x,y]=dsolve(equ_41,equ_42

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

当前位置:首页 > PPT模板 > 卡通动漫

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

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