[Matlab] Équation différentielle

Résolu
Alphatrion Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Fee Fay Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je cherche à résoudre l'équation différentielle suivante sous Matlab :

function dh = eq(x,h)
dh = (i-Q^2*(L+2*h)^(4/3)/(L^(10/3)*h^(10/3)*k^3))/(1-Q^2/(L*g*h^3));

h est ma variable, les autres lettres sont des constantes (c'est la courbe de remous d'un écoulement en conduite pour ceux que ça intéressent)

j'appelle ma fonction depuis un autre fichier .m

[x,h] = ode45('eq', [0 10] , 0.05) ;

et matlab me sort l'erreur suivante :
Warning: Mixture of single and double data for 't0', 'y0', and 'f(t0,y0)' in call to ode45.
> In funfun\private\odearguments at 139
In ode45 at 173
In ligne_remous at 1

Est-ce que vous voyez mon erreur, ça fait un moment que je cherche un vain...
merci
A voir également:

1 réponse

Fee Fay Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   377
 
Bonjour mon ami !

J'espère que depuis tout ce temps tu as trouvé la solution mais juste au cas où... ;-)
Il est plus que vraisemblable que certaines de tes constantes soient des réels simple précision.
Convertis-les avant de résoudre ton équation différentielle avec ode45.
Pour convertir un nombre en double précision, c'est tout simple.
x=double(x);
Je te souhaite une bien bonne nuit !
0