matlab在微积分中的应用

Ⅰ.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等表示求高阶微分

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值