dsolve MATLAB:找不到显式解决方案

时间:2017-10-13 19:43:03

标签: matlab differential-equations dsolve

我想解决微分方程。 MATLAB显示警告:

clear all
syms x f(x) theta 
eq = (-6*x+(-7+theta)*f*diff(f,x))*(1+diff(f,x)^2)+x*f*(diff(f,x,x))==0
cond = f(0)==1
dsolve(eq,cond)
 Warning: Explicit solution could not be found. 
> In dsolve (line 201)
  In dsolvef (line 5) 

ans =

[ empty sym ]

有没有办法解决它?(分析或数字) 谢谢

1 个答案:

答案 0 :(得分:0)

很有可能不存在符号解决方案。通常,具有符号解决方案的ODE集合是“瘦”的#34;因为符号可解的ODE的微小变化使其无法解决。

对于数值解法,请使用ode45求解器或隐式解算器,例如ode15。所有这些都需要一个ODE函数,它将ODE编码为显式的1阶系统。

function dz = derivs(x,z)
    y=z(1); dy = z(2)
    ddy = -(-6*x+(-7+theta)*y*dy)*(1+dy^2) / (x*y)
    dz = [ dy  ddy ]
 end

另见类似主题: