在matlab中求解隐式常微分方程,通常有两种方法,一种是使用matlab中的内嵌的ode15i等求解隐式微分方程的函数,另一种是仍使用matlab中求解常微分方程的显式函数,如ode45等等。但是小编想要表达的绝不是这两种方法,而是这两种方法之间的差异:
一、ode45
使用这种方法求解隐式微分方程的思路就是结合其他函数求解隐式方程,例如fzero等等。
以求解如下隐式方程为例:
可以发现这个式子很复杂,没有显式式子,因此只能使用隐式函数求解。代码如下所示:
% Matlab
%% ode45
tspan = [0 1]; % 求解时间域,此处假定x=t,为时间变量
y0 = 1.924; % 初始值
[t,y] = ode45(@(t,y)odefcn(t,y),tspan,y0);