Bonjour à tous,
J'aimerais résoudre une equa diff non linéaire d'ordre 2:
soit y= y(t)
-C4 y'' -C1 cos(atan(-y'/C3))+C5*abs(y)-C2=0
Je décompose en un système de 2 ordres 1:
Y(2)'=(-C1*cos(atan(-Y(2)/C3)+C5*abs(Y(1))-C2)/C4;
Y(1)'=Y(2);
J'aimerais également imposer des conditions limites
dans un premier temps:
soit tf une valeur définie de t
y(0)=0
y(tf)=a
y'(0)=0
y'(tf)=0
( si possible après: des conditions en y''(0) et y''(tf) )
J'utilise Matlab, l'algo le mieux adapté me semble être le bvp4c
Je code donc:
Puis pour la partie res j'essaie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function dY=f11(t,Y) dY(2,:)=(-C1*cos(atan(-Y(2)/C3)+C5*abs(Y(1))-C2)/C4; dY(1,:)=Y(2); end
et enfin la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function res = twobc(Ya,Yb) res = [Ya(1) Ya(2) (Yb(1)-a) Yb(2)]; end
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 solinit = bvpinit(linspace(0,tf,5),[0 1]); sol = bvp4c(@f11,@twobc,solinit);
évidemment cela ne marche pas et j'aimerais comprendre pourquoi et comment rectifier le problème.
Je vous remercie par avance.
Partager