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



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

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

不存在符号解决方案的可能性非常高。一般来说,具有符号解的常微分方程集是"薄的",因为符号可解常微分方程的微小变化使其无法求解。

对于数值解,请使用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

另请参阅类似主题:

  • 如何在 matlab 中绘制非线性微分方程
  • 如何绘制范德波尔振荡器的方向场?

相关内容

  • 没有找到相关文章

最新更新