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

Смотрите также похожие темы:

Другие вопросы по тегам