Bonjour, j'ai un soucis : je tente de résoudre des équations différentielles sous octave.
En fait je doit modéliser un choc parfaitement élastique de deux sphères grâce a une force de rappel d'un ressort. Donc si d(la distance entre les deux sphères : d=sqrt(x²+y²)) est inférieur à 2*r(le rayon des sphères) on à mx''=-Kx
et my''=-Ky. Et si la d>2r x''=0 et y''=0 (il faut que je fasse ça pour les deux boules donc ça vas donner un truck du genre xa,ya,x"a,y"a,xb,yb.....).
Donc la j'ai déjà un problème pour modéliser quand il n'y a pas de choc (d>2r), je pence que ces parce que je ne maitrise pas vraiment la résolution numérique (la formulation surtout) que ca marche pas.
Donc la pour l'instant je me suis simplifier la tache j'ai considérer que une sphère et une dimension : j'ai x''(t)=0, je définis x1(t)=x'(t) donc x1'(t)=0 . Je définis le vecteur y(t)=(x(t),(x1(t)) Donc dy=y'(t)=(x1(t),x1'(t))
Ainsi voici ce que donne ma fonction
function dy=fct(y,t)
dy=zeros(size(y))
dy(1)=y(2)
dy(2)=0
Et mon programme :
clear all
close all
clc
t=[0:1:10]
CI=[2,0]
Y=lsode(@fct,CI,t)
plot(t,Y,'*','r')
J'ai beau mettre ce que je veux dans CI (condition initiales), rien ne change, le plot n'affiche rien.
Donc voici mes problèmes :
-Pourquoi je n'obtiens pas le résultat attendus, une droite constante pour tout t.
-A quoi correspond les CI ? Cet a dire CI(1)= x(o) et CI(2)= x'(0) ou l'inverse ?
-Pour la suite du programme je ne vois pas comment je pourrais faire rentrer tout ca dans mon fichier fonction avec ce formalisme (boula a, boule b, x et y)
Merci d'avance pour votre aide.
-----