Ⅰ.matlab求函数值
例:当x=2,y=4,求下面表达式的函数值
程序:
x=2,y=4
z=x^2+exp(x+y)-y*log2(x)-x^y
结果:
x = 2
y = 4
z = 387.4288
注意:
matlab中定义了2、10、e的log函数的底,程序调用格式分别为log2(x)、log10(x)、log(x),其余的数的底没有定义,但可以根据换底公式logx(y)=log(y)/log(x)获得任意整数的对数,将以x为底转换为以e为底,例如
可以通过log(x)/log4的形式表示
Ⅱ.matlab求极限
例:求下面表达式的极限
程序:
syms x %定义符号变量
y=limit((exp(x^3)-1)/(1-cos(sqrt(x-sin(x)))),x,0,'right')
结果:
y = 12
注意:
matlab中,求极限的调用格式为L=limit(fun,x,x0),求单侧极限的调用格式为L=limit(fun,x,x0,'left' or 'right'),其中fun是函数表达式,x是变量,x0是极限点,如果极限趋于正无穷则使用inf表示,负无穷则使用-inf表示,left和right分别表示左侧和右侧极限
Ⅲ.matlab求导数
程序:
syms x y
z=exp(2*x)*(x+y^2+2*y)
a=diff(z,x) %表示əz/əx
b=diff(z,y) %表示əz/əy
c=diff(z,x,2) %表示ə²z/əx²
d=diff(z,y,2) %表示ə²z/əy²
e=diff(a,y) %表示ə²z/əxəy,也可以写为e=diff(diff(z,x),y)
结果:
z = exp(2*x)*(y^2 + 2*y + x)
a = exp(2*x) + 2*exp(2*x)*(y^2 + 2*y + x)
b = exp(2*x)*(2*y + 2)
c = 4*exp(2*x) + 4*exp(2*x)*(y^2 + 2*y + x)
d = 2*exp(2*x)
e = 2*exp(2*x)*(2*y + 2)
注意:
matlab中,求导数的调用格式为y=diff(fun,x),求n阶导数的调用格式为y=diff(fun,x,n),求多元函数的偏导数调用格式为f=diff(diff(fun,x,m),y,n)或f=diff(diff(fun,y,n),x,m)
Ⅳ.matlab求极值和零点
例:已知
求函数的零点和函数在[-1,2]上的最小值
程序:
zero=fzero('3*x^5-x^4+2*x^3+x^2+3',0)
[x,f]=fminbnd('3*x^5-x^4+2*x^3+x^2+3',-1,2)
结果:
zero = -0.8952
x = -1.1791e-05 %这是一种科学计数法,该结果表示为-1.1791*10^(-5),类似的,如果是-1.1791e+05则表示-1.1791*10^(5)
f = 3.0000
注意:
x=fzero(fun,x0),其中fun是函数表达式,该函数的作用是找出某值x0附近的零点或某区间x0内的零点。
fminbnd函数的作用是找到固定区间内单变量函数的最小值,调用格式为[x,f]=fminbnd(fun,x1,x2),其中fun是函数表达式,区间为x1<x<x2,f是返回目标函数fun在x处的解。
Ⅴ.matlab求积分
程序:
syms x
a=int(cos(2*x)*cos(3*x))
syms x
b=eval(int(x^2*log(x),x,1,exp(1)))
syms x y
c=int(int(y^2/x^2,x,1/2,2),y,1,2)
结果:
a = sin(5*x)/10 + sin(x)/2
b = 4.5746
c = 7/2
注意:
不定积分的调用格式:f=int(fun,x)
定积分和无穷积分的调用格式:f=int(fun,x,a,b),(a,b)是定积分的积分区间,(-inf,inf)是无穷积分区间
Ⅵ.matlab解微分方程
例1:求下面公式的通解
程序:
a=dsolve('Dy+2*y/x=sin(3*x)/(x^2)','x') %Dy中的D一定要大写
结果:
a = C10/x^2 - cos(3*x)/(3*x^2) %其中C10表示常数
例2:求微分方程组特解
程序:
b=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')
结果:
b = 3*sin(5*x)*exp(-2*x)
例3:求微分方程组的通解
程序:
[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 = C11*exp(2*t) + C12*exp(-t) %其中C11,C12,C13为常数
y = C11*exp(2*t) + C12*exp(-t) + C13*exp(-2*t)
z = C11*exp(2*t) + C13*exp(-2*t)
注意:
matlab中,微分方程(组)的调用格式为:dsolve('方程1','方程2',……,'方程n','初始条件','自变量'),在微分方程中大写字母D表示求微分,D2、D3等表示求高阶微分