2016-12-15 6 views
0

me donne l'équation différentielle y'' = -g + a(t)/m avec a(t) = k*y'^2y où est une fonction de t (temps). Mes conditions initiales sont y(0) = 600; et y'(0) = 0;Définir et résoudre ODE imbriquée non linéaire dans MATLAB

dans Matlab Je sais comment définir y'' avec

ydd = diff(y,t,2) == -g + a(t)/m; 

mais je suis perdu au fait que ce soit un « imbriqué » équation différentielle non linéaire et je suis Je ne sais pas trop comment le définir, et encore moins le résoudre dans MATLAB.

+0

Définissez simplement 'a (t)' et appelez 'dsolve' ...? – TroyHaskin

+0

Je ne savais pas que je pouvais simplement définir «y» comme «y» = diff (y, t) '... @TroyHaskin – Ortix92

Répondre

1

Le meilleur premier système de commande est

v' = -g + k/m*v^2 
y' = v 

comme il n'y a plus une troisième fonction inconnue a(t) impliquée.


défi: résoudre la première équation à travers la séparation des variables et décomposition en éléments simples ou identifier la mise à l'échelle de la tangente de la région hyperbolicus que l'intégrale du côté de v.

+0

C'est une excellente réponse. Je l'accepterais sur le mien. J'ai peut-être été le premier, mais celui-ci est meilleur. – duffymo

1

Il s'agit de deux ODE couplés de premier ordre.

Soit z = y'. Ensuite, vous avez:

z' = -g + a(t)/m 
y' = sqrt(a(t)/k) 

Vous avez besoin des conditions initiales y(0)=600 et z(0)=0.

Cette équation z(0)=0 implique que a(0)/m = g. Résolvez pour a(0) = gm.

Voici les équations à résoudre.

+0

J'ai mis à jour ma question avec les conditions initiales – Ortix92

+1

@ Ortix92 alors pourquoi ne pas résoudre alors avec ces conditions? C'est ainsi que vous devriez, mathématiquement, le faire. – Adriaan