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 ]
Есть ли способ решить это?(Аналитически или численно) Спасибо
1 ответ
Существует очень высокая вероятность того, что символического решения не существует. В общем, набор ODE, которые имеют символические решения, является "тонким" в том смысле, что небольшие вариации символически разрешимого 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
Смотрите также похожие темы: