上篇博客介绍了Matlab求解常微分方程组解析解的方法:博客地址
微分方程组复杂时,无法求出解析解时,就需要求其数值解,这里来介绍。
以下内容按照Matlab官方文档提供的方程来展开(提议多看官方文档)
介绍一下核心函数ode45()
一般形式:[t,y] = ode45(odefun,tspan,y0)
其中 tspan = [t0 tf]
功能介绍:求微分方程组 y′=f(t,y) 从 t0 到 tf 的积分,初始条件为 y0。解数组 y 中的每一行都与列向量 t 中返回的值相对应。
1. 一阶微分方程求解(简单调用即可)
方程:y’=2*t
代码:
tspan=[1 6]; %定义自变量x的取值空间为1-6
y0=0;%定义因变量的初值,当x=1(x取值空间的第一个数)时,y0=0
[t,y]=ode45(@(t,y) 2*t,tspan,y0); %定义函数y'=2*t,使用ode45求解
plot(t,y,'-o'); %绘制求得的数值曲线
说明:简单的odefun参数就是这个形式,@(x,y) fu