-1

我想解微分方程。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 ]

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

4

1 回答 1

0

不存在符号解决方案的可能性非常高。通常,具有符号解的 ODE 集是“薄的”,因为符号可解 ODE 的微小变化使其无法解。

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

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

另见类似主题:

于 2017-10-14T09:11:08.400 回答