matlab常用关键词.docx
《matlab常用关键词.docx》由会员分享,可在线阅读,更多相关《matlab常用关键词.docx(11页珍藏版)》请在冰豆网上搜索。
matlab常用关键词
绝对值或复数模abs
开平方sqt
四舍五入到最接近的整数round
除后余数rem
以e为底的指数exp
自然对数log
以10为底的对数log10
正弦sin
余弦cos
正切tan
余切cot
反正弦asin
反正切atan
反余切acot
双曲正弦sinh
双曲余弦cosh
πpi
描点画图plot(x,y,’r’)
绿色b
红色r
定义变量symssym
清除变量clear(all)
显示变量whos
因式分解factor
多项式展开expand
将式子化简simplify
求方程的根solve
求极限limit(f(x),x,a,’right’)
无穷大inf
求导diff(f,x,n)
带入求值subs(y,x1,x2)
泰勒展开taylor(y,10,1)
求函数局部极小值fminbnd(f,x1,x2)
求不定积分int(f)
求定积分int(f,x1,x2)
定积分的数值解法quadl,quad(f,x1,x2)
这里的f定义上与数组类似。
给出固定位数的数值vap(s,8)
绘制三维曲线plot3(x,y,z)
绘制网格图mesh(x,y,z)
绘制表格图surf(x,y,z)
构造x-y平面上自变量的格点矩阵[x,y]=meshgrid(x,y)
绘制出瀑布图形waterfall(x,y,z)
绘制三维等高线图形contour3(x,y,z)
多元函数求极限limit(limit(f,x,x0),y,y0)
多元函数的偏导数diff(diff(f,x,2),y,3)
矩形区域二重积分的数值解dblquad(f,x0,x1,y0,y1)
离散函数定义(与数组运算类似,需加点)
inline(‘f’,’x’,’y’)
一般区域二重积分的数值解
quad2dggen(f,x1,x2,y1,y2)
quad2dggen(f,y1,y2,x1,x2,eps)
三重积分triplequad
第一类线积分
作变化ds=sqrt(diff(x,t)^2+diff(y,t)^2+diff(z,t)^2)dt
变为一重积分(这里t可以为x,y,z或其它)
第二类线积分
第一类面积分
第二类面积分
数组求和sum
符号序列求和symsum(f,v,a,b)
正无穷inf
求微分方程的解析解dsolve(‘方程1’,’方程2’…’方程n’,’初始条件’,’自变量’)
例:
输入命令dsolve(’Du=1+u^2’,’t’)
高阶微分Dn(n代表阶数)
[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t');
x=simple(x)%将x化简
y=simple(y)
z=simple(z)
用Matlab求常微分方程的数值解
例:
求解常微分方程
,
,
x=0:
0.01:
0.5;
fun=inline('-2*y+2*x*x+2*x');
[x,y]=ode15s(fun,[0:
0.01:
0.5],1)
隐函数的导数maple('implicitdiff(f(u,x,y,z,…,)=0,u,x)')
多项式求根roots(p)
也可以f=@(x)x.^3-2*x-5;
z=fzero(f,2)
eexp
(1)
erf(x)表示函数:
erf(x)=(2/根号下派)*(exp(-z方)对z积分,积分下限是0,上限是x),误差函数从形式上很像正态分布的分布函数Φ(x),是对一个形如正态分布的概率密度函数做变上限积分的结果
conj共轭
一次多项式拟合:
p1=polyfit(x,y,1)
三次多项式拟合:
p3=polyfit(x,y,3)
带入求多项式的值y=polyval(p,x)
这里的p为多项式的系数向量,x为给定的x向量
一维数组的创建方法1a=1:
2:
10
方法2a=[1,2,3,4,5]
方法3x=linspace(x1,x2,n)
这里的x1为第一个元素,x2为第二个元素
n为元素的个数
ones生成全1矩阵例ones(3)ones(3,4)
zeros生成全0矩阵
大小size
Length列数
例3-9计算
解:
先定义函数,文件名:
f.m
functiony=f(x)
y=1/sqrt(2*pi)*exp(-x.^2/2);
保存后,在命令窗口键入
formatlong
>>[y,n]=quad('f',-3,3)
则显示结果为:
y=
0.99729991863154
n=
57(表示被积函数f的调用次数)
例3-10计算
其中D为直线y=x和抛物线y=x2所围部分。
解:
由数学方法可得:
(1)画出积分区域示意图
>>symsxy
>>f=(2-x-y)/2;
>>y1=x;
>>y2=x^2;
>>ezplot(y1);holdon
>>ezplot(y2);
>>axis([0,2,0,2])
(2)确定积分限
a=fzero('x-x^2',0)
a=
0
>>b=fzero('x-x^2',1)
b=
1
这是第2次积分的上下限。
(3)积分运算
f_dy=int(f,y,x^2,x)%先对y积分
f_dy=
x-5/4*x^2-1/2*x*(x-x^2)+1/4*x^4
>>I=int(f_dy,a,b)%再对x积分
I=
11/120
例3-11试求下面的二次积分
解:
先定义函数,函数名为:
my2dfun.m
functionz=my2dfun(x,y)
z=exp(-x.^2/2).*sin(x.^2+y);
保存后在命令窗口执行下列命令:
clear
y=dblquad('my2dfun',-2,2,-1,1)
Fourier级数
数学定理表明:
设函数f(x)已经展开为全区间上的一致收敛的三角级数:
其中:
虽然Matlab中还没有提供一个专门的命令用于求解Fourier级数,但根据上面的数学公式,也可以编写一个函数文件sfour.m,用于求函数f在区间
上的Fourier级数的系数:
function[a0,ak,bk]=sfour(f)
symsxn
a0=int(f,-pi,pi)/pi
an=int(f*cos(n*x),-pi,pi)/pi;
an=simple(an)
bn=int(f*sin(n*x),-pi,pi)/pi;
bn=simple(bn)
有了上面的函数,我们可以求得一些函数的Fourier级数的系数。
例3-14求函数y=x的Fourier级数的系数
解:
调用上面定义的函数sfour来计算:
>>symsx
>>f=x;
>>[a0,ak,bk]=sfour(f)
a0=
0
an=
0
bn=
2/n^2/pi*sin(pi*n)-2/n*cos(pi*n)
注:
在Matlab中,化简命令不能把sin(n*pi)和cos(n*pi)转化为(-1)^n。
所以bn的结果较长。
表6.2基本线型和颜色
符号
颜色
标记点(线形)的符号
标记点(线形)
名称
标记点(线形)的符号
标记点(线形)
名称
y
黄色
.
实点
--
虚线
m
紫色
o
圆圈
s
小正方形
c
青色
x
交叉点
d
小菱形
r
红色
+
加号
v
向下小三角
g
绿色
*
星号
^
向上小三角
b
蓝色
-
实线
>
向右小三角
w
白色
:
点线
<
向左小三角
k
黑色
-.
点划线
p
小正五角星
h
小正六角星
留数计算
留数定义:
设a为f(z)的孤立奇点,C为a的充分小的邻域内一条包含a点的闭路,积分
称为f(z)在a点的留数或残数,记作Res[f(z),a]。
在Matlab中,可由函数residue实现。
函数:
residue%留数函数(部分分式展开)
格式:
[R,P,K]=residue(B,A)
说明:
向量B为f(z)的分子系数;(以s降幂排列)
向量A为f(z)的分母系数;(以s降幂排列)
向量R为留数;
向量P为极点;极点的数目n=length(A)-1=length(R)=length(P)。
向量K为直接项,如果length(B)如果存在m重极点,即有P(j)=P(j+1)=…=P(j+m-1),则展开项包括以下形式
注意:
Matlab函数只能解决有理分式的留数问题。
格式:
[B,A]=residue(R,P,K)
说明:
R、P、K含义同上。
当输入R、P、K后,可得f(z)的分子、分母系数向量。
例9-9求下列函数在奇点处的留数:
(1)
(2)
解:
在Matlab命令窗口键入:
>>[r1,p1,k1]=residue([1,1],[1,-2,0])
r1=
1.5000
-0.5000
p1=
2
0
k1=
[]
>>[r2,p2,k2]=residue([10],[1000-1])
r2=
0.2500
0.2500
-0.2500+0.0000i
-0.2500-0.0000i
p2=
-1.0000
1.0000
0.0000+1.0000i
0.0000-1.0000i
k2=
[]
反之:
>>[B,A]=residue([0.25000.2500-0.2500-0.2500],[-11i-i],[])
B=
0010
A=
1000-1