2017-10-13 8 views
-1

Je veux résoudre l'équation différentielle. Matlab montre avertissement:dsolve MATLAB: Une solution explicite n'a pas pu être trouvée

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 ] 

est-il un moyen de le résoudre (analytique ou numérique) Merci

+2

Ne pas supprimer et reask les mêmes questions. Votre question précédente → https://stackoverflow.com/q/46720078/ –

Répondre

0

Il y a une très forte probabilité qu'aucune solution symbolique existe?. En général, l'ensemble des ODE qui ont des solutions symboliques est «mince» en ce sens que de légères variations d'une ODE symboliquement résoluble le rendent insoluble.

Pour une solution numérique, utilisez le solveur ode45 ou les solveurs implicites tels que ode15. Tous ont besoin d'une fonction ODE qui code l'ODE en tant que système d'ordre explicite.

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 

Voir aussi des sujets similaires: