MATLAB学习:解一阶常系数微分方程

使用matlab自带函数(版本matlab2019a)

方法1:

先化简等式,使等式左边只剩下一阶导数项然后用ode23函数(刚性系统,即有多个变量时,一个变量变化很快,另一个变化很慢?),非刚性系统使用ode45函数。对等式右边积分,matlab帮助页中写道:[t,y] = ode23(odefun,tspan,y0)(其中 tspan = [t0 tf])求微分方程组 y′=f(t,y) 从 t0 到 tf 的积分,初始条件为 y0。解数组 y 中的每一行都与列向量 t 中返回的值相对应。(没有解析解时使用)

例如:(下图来自matlab帮助页)

 

其中@符号为matlab中的函数句柄,用这个方法得到函数,例如,function1=@sin,则function1得到了sin的运算关系,此时在调用函数function1(0)则可以得到结果sin0,即等于0。上例中采用的格式是“@(变量名列表)函数名(函数输入列表)”,这个格式是默认的,如果方程中没有t,但在画图时要用到t,依然按照[t,y]=ode23(@(t,y) odefcn(t,y,...),tspan,y0)这种格式写。

方法2:

用dsolve函数:

syms y(t) 
a=10;
eqn = diff(y,t) == a;
cond = y(0) == 5;
ySol(t) = dsolve(eqn,cond)

结果:ySol(t) =
 
10*t + 5

这样得到解与t的函数表达式,在下面加入语句:x=ySol(2),可以得到t=2时,ySol的值:x =
 25,相当于这个方法得到了函数ySol与自变量t之间的关系。画图时,加入语句:plot(0:0.01:1, ySol(0:0.01:1)),其中冒号表达式自己可以更改。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值