我想求微分方程。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 中绘制非线性微分方程
- 如何绘制范德波尔振荡器的方向场?