Forum Bioingénieur BAC2
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

Runge-Kutta

3 participants

Aller en bas

Runge-Kutta Empty Runge-Kutta

Message  Julie Dim 11 Mai - 17:05

Quelqu'un pourrait m'expliquer Runge-Kutta ( TP4 exercice 1)

Mirchiii d'avance beaucouuuup ! ! !

Et courage à tous!
Julie
Julie
Enzyme
Enzyme

Nombre de messages : 23
Age : 36
Localisation : Rhôôôde St Genèèèèzzz
Date d'inscription : 24/10/2007

Revenir en haut Aller en bas

Runge-Kutta Empty Re: Runge-Kutta

Message  Mélody Dim 11 Mai - 19:07

% HEUN
% y(n+1)=y(n) +0.5*h*(f(x(n),y(n)) + f(x(n+1),y(n+1)))
% or selon Euler explicite, y(n+1)=y(n)+h*f(x(n),y(n))

% énoncé: y'(x)=f(x,y)= 1-y/(2+sin(x))
%on va utiliser k1 et K2 pour que ce soit plus facile:
% k1=f(x(n),y(n))
% k2=f(x(n+1),y(n)+h*k1)
% y(n+1)=y(n)+0.5*h*(k1+k2)

f=inline('1-y/(2+sin(x))');
a=0;b=20;
y(1)=0;
h=0.5;
N=(b-a)/h;
x=a:h:b;
for n=2:N/h
x(n)=x(n-1)+ h;
k1=f(x(n-1),y(n-1));
k2=f(x(n),y(n-1)+h*k1);
y(n)=y(n-1)+0.5*h*(k1+k2);
end
plot(x,y,'g')
grid on; zoom on; hold on;

pour voir comment varie le graphique de la fonction, on change h, on change la couleur dans le plot et F5. on aura plusieurs courbes.

Pour ce qui est de tout rassembler dans une même figure, c'est méga chiant, il faut faire 2 fichiers de type fonction.m et taper un truc dans commandes.

mais mon programme chiant ne marche pas (me suis inspirée des réponses partielles de l'assistant o_O)

??? Error using ==> /
Matrix dimensions must agree

J'espère que tu comprendras avec ces notes...
Mélody
Mélody
Mitochondrie
Mitochondrie

Nombre de messages : 52
Age : 35
Date d'inscription : 24/09/2007

http://picasaweb.google.com/Full.Bubulles

Revenir en haut Aller en bas

Runge-Kutta Empty Re: Runge-Kutta

Message  Philippe Dim 11 Mai - 23:47

Pour faire plusieurs graph avec un pas d'intégration différent, il suffit de définir un vecteur qui contient les pas d'intégration différent:h=[0.1 0.01 0.5 0.005] par exemple.

faire une boucle for qui englobe l'algorithme : for i=1:4 où 4= nombre différents de pas d'intégration.
Ne pas oublier de remplacer h par h(i) dans le programme vu qu'il varie.

Et pour la couleur il faut faire un truc du style: couleur=['r' 'c' 'b' 'v' ] à définir au début du programme. Les différentes lettres sont les couleurs

et mettre plot (x,y,couleur(i)) et c'est dans la poche .... je sais pas si les gens auront compris.
Philippe
Philippe
Mitochondrie
Mitochondrie

Nombre de messages : 69
Age : 37
Localisation : Bruxelles
Date d'inscription : 28/10/2007

Revenir en haut Aller en bas

Runge-Kutta Empty Re: Runge-Kutta

Message  Mélody Dim 11 Mai - 23:56

genre comme ça? mais j'arrive à un graphique tout bleu et en zoomant j'ai une succession de petits triangles

h=[0.1 0.01 0.5 0.005];
col=['g' 'r' 'b' 'v'];
for i=1:4
f=inline('1-y/(2+sin(x))');
a=0;b=20;
y(1)=0;
h=0.2;
N=(b-a)/h(i);
x=a:h(i):b;
for n=2:N/h(i)
x(n)=x(n-1)+ h(i);
k1=f(x(n-1),y(n-1));
k2=f(x(n),y(n-1)+h(i)*k1);
y(n)=y(n-1)+0.5*h(i)*(k1+k2);
end

end
plot(x,y,col(i))
grid on; zoom on; hold on; Neutral
Mélody
Mélody
Mitochondrie
Mitochondrie

Nombre de messages : 52
Age : 35
Date d'inscription : 24/09/2007

http://picasaweb.google.com/Full.Bubulles

Revenir en haut Aller en bas

Runge-Kutta Empty Re: Runge-Kutta

Message  Philippe Lun 12 Mai - 0:30

heu j'ai remanier le programme parce que y avait des choses bizarre comme par exemple: le plot doit se trouver dans la boucle sinon il ne fait qu'un seul graph.
et donc il va juste faire un graph avec le dernier i qui est =4 et dans col(4)=V et v enfait c est pour faire un graph avec des triangles, c est pas une couleur.

clc; clear


h=[0.1 0.01 0.5 0.005];
col=['g' 'r' 'b' 'v'];

f=inline('1-y/(2+sin(x))');
a=0;b=20;
y(1)=0;
x(1)=0;

for i=1:4

N=(b-a)/h(i);

for n=2:N/h(i)

x(n)=x(n-1)+ h(i);
k1=f(x(n-1),y(n-1));
k2=f(x(n),y(n-1)+h(i)*k1);
y(n)=y(n-1)+0.5*h(i)*(k1+k2);
end

plot(x,y,col(i))
grid on; zoom on; hold on;

end

et la ça marche impec ... mais c'est très lent à exécuter vu que tes pas d intégration sont très petit.
Philippe
Philippe
Mitochondrie
Mitochondrie

Nombre de messages : 69
Age : 37
Localisation : Bruxelles
Date d'inscription : 28/10/2007

Revenir en haut Aller en bas

Runge-Kutta Empty Re: Runge-Kutta

Message  Mélody Lun 12 Mai - 11:53

merci! Smile
Mélody
Mélody
Mitochondrie
Mitochondrie

Nombre de messages : 52
Age : 35
Date d'inscription : 24/09/2007

http://picasaweb.google.com/Full.Bubulles

Revenir en haut Aller en bas

Runge-Kutta Empty Re: Runge-Kutta

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser