Séance 7

Voir le sujet précédent Voir le sujet suivant Aller en bas

Séance 7

Message  Simon le Sam 10 Mai - 16:10

salut à tous,
quelqu'un a-t-il compris comment faire le programme de la séance 7? y aurait-il moyen de le poster sur le forum svp?

Merci d'avance

Simon
Enzyme
Enzyme

Nombre de messages : 13
Age : 29
Date d'inscription : 30/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Caroline le Dim 11 Mai - 12:09

En fait, il faut juste faire la méthode de Newton.

clc
clear
kappa=101/4;
rho=0.0950*4;
phi=1;
x=0:0.01:6;
f=inline('rho*(1-u/kappa)-phi*u/(1+u.^2)');
y=f(kappa,phi,rho,x);
plot(x,y);
grid on;
pause;

fp=inline('(-rho/kappa)-phi*((1-u.^2)/(1+u.^2)^2)');
u(1)=0.4;
for n=2:5
u(n)=u(n-1)-f(kappa,phi,rho,u(n-1))/fp(kappa,phi,rho,u(n-1));
end
u(n)

Caroline
Enzyme
Enzyme

Nombre de messages : 11
Age : 29
Date d'inscription : 25/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Simon le Dim 11 Mai - 12:37

ha ouais c tt con en fait, je voyais pas trop ce qu'il fallait faire.
Merci bcp

Simon
Enzyme
Enzyme

Nombre de messages : 13
Age : 29
Date d'inscription : 30/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Arnaud Goessens le Dim 11 Mai - 13:28

mais jcomprend pas très bien le u(1)=0.4 ...
c'est qd meme bien la racine que l'on cherche ?!

si oui, moi elle se trouve en 22.27 ...
wtf?
avatar
Arnaud Goessens
Virus
Virus

Nombre de messages : 124
Age : 29
Date d'inscription : 22/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  nicodev le Dim 11 Mai - 13:36

moi aussi je trouve 22.27!!
avatar
nicodev
Mitochondrie
Mitochondrie

Nombre de messages : 69
Date d'inscription : 25/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Gab le Dim 11 Mai - 14:27

de plus je ne comprend pas pourquoi tu fais dépendre ton inline de x alors que x n'apparaît nulle part d'ou je ne comprend pas ton interval pour les x... cependant merci d'avoir mis ton programme c'est cool.
avatar
Gab
Mitochondrie
Mitochondrie

Nombre de messages : 48
Age : 30
Localisation : La hulpe
Date d'inscription : 08/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Gab le Dim 11 Mai - 14:30

ton x correspond sûrement au U
avatar
Gab
Mitochondrie
Mitochondrie

Nombre de messages : 48
Age : 30
Localisation : La hulpe
Date d'inscription : 08/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Arnaud Goessens le Dim 11 Mai - 20:06

? qqun a trouvé une solution a mon problème? Neutral
avatar
Arnaud Goessens
Virus
Virus

Nombre de messages : 124
Age : 29
Date d'inscription : 22/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Philippe le Dim 11 Mai - 23:06

moi j'ai encore mieux ....

ma racine se déplace si je change le domaine de ma fonction....

par exemple si je mes x=-10:0.01:20 ma racine se trouve en x=10
si je fais x= -10:0.01:50, ma racine se trouve en x= 20

Mais ouiii Philippe !!!

c'est quand même bizarre y a que pr la séance 7 que j'ai ce problème.
avatar
Philippe
Mitochondrie
Mitochondrie

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Arnaud Goessens le Dim 11 Mai - 23:15

ouais ca c hyper bizarre ... Very Happy

Caroline... pleaaaaase explique nous ton ptit progaaaaaaaaaaame ... Neutral
avatar
Arnaud Goessens
Virus
Virus

Nombre de messages : 124
Age : 29
Date d'inscription : 22/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Philippe le Dim 11 Mai - 23:19

je crois que son prog il n'est pas très juste vu que sa racine c est 0.4 et que sur son graph, elle est en 22.47 ... enfin on le voit si on donne une valeure plus grande à x
avatar
Philippe
Mitochondrie
Mitochondrie

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Mélody le Dim 11 Mai - 23:20

Gab a écrit:de plus je ne comprend pas pourquoi tu fais dépendre ton inline de x alors que x n'apparaît nulle part d'ou je ne comprend pas ton interval pour les x... cependant merci d'avoir mis ton programme c'est cool.

vous vous souvenez dans les autres programmes:
"a=0:1:10
b=f(a)" où f avait été exprimé avant..
ici c'est la même chose, sauf que b c'est y et a c'est x.

ici j'ai mon programme légèrement différent, pte que ca vous éclairera?

a=0:1:10;
K = 101;
r0 = 0.0950;
%r0 = 0.0951;
A = 4; B = 1;
rho = r0*A/B;
kappa = K/A;
f=inline('rho*(1-u/kappa) - u/(1+u.^2)');
b=f(rho,kappa,a);
plot(a,b);
grid on, hold on;
% c'est une fonction linéaire, avec un zéro en 0.378
fprime=inline('(-rho/kappa)-(1-u.^2)/((1+u.^2).^2)');
u(1)=0.378;
for n=2:10
u(n)=u(n-1)-f(rho,kappa,u(n-1))/fprime(rho,kappa,u(n-1));
end
format long
u(n)

%u(n)=0.37505170360695

sauf que Caroline obtient 0.44825186463065..... :s
avatar
Mélody
Mitochondrie
Mitochondrie

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

Voir le profil de l'utilisateur http://picasaweb.google.com/Full.Bubulles

Revenir en haut Aller en bas

Re: Séance 7

Message  Gab le Lun 12 Mai - 9:25

oui j ss tout à fait d'accord avec toi melody mais tu dois le faire varier dans un domaine par pas :

U=-10 :0,01 :10 ;
f=inline(‘Rho*(1-u/kappa)-phi*(u/(1+u^2)’)
Y=f(Rho,phi,kappa,u) ;

enfin ici je l'ai appelé U mais bon ca aurait pu etre X en fait autant pour moi... donc ma question de tantot n'avait pas lieu d'etre...deso à force de donner à mes variables la meme lettre que la variable de la fct j'en aurais presque l'impression que c'est obligatoire... lol sorry pour mon post de tanto..
avatar
Gab
Mitochondrie
Mitochondrie

Nombre de messages : 48
Age : 30
Localisation : La hulpe
Date d'inscription : 08/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  fletteman le Lun 12 Mai - 9:33

moi j'ai ça, et ça à l'air de tourner rond, j'ai une racine encore différente, mais fort proche de celle d'Arnaud et Nico...

% Séance 7:
% Pullulation de la chenille de l'épicéa % Choristoneura fumiferana
% Equation de Ludwig et al. (1978)

% K : capacité biotique
% A et B : termes de prédation
% p : effectif de la population
% p0 : effectif initial
% r0 : taux de croissance intrinsèque



%% METHODE DE NEWTON:

clear


r0 = 0.0950;
kappa=101/4;
rho=r0*4;
phi=1;
x=0:0.01:40;
F=inline('rho*(1-u/kappa)-phi*u/(1+(u.^2))');
y=F(kappa,phi,rho,x);
plot(x,y);
grid on;
pause;


Fprime = inline('(-rho/kappa)-phi*((1-(u^2))/((1+u^2)^2))');
u(1) = 23.175;
for n = 1:5
u(n+1) = u(n) - F(kappa,phi,rho,u(n))/Fprime(kappa,phi,rho,u(n));
end

format long
u'
avatar
fletteman
Enzyme
Enzyme

Nombre de messages : 11
Age : 30
Date d'inscription : 09/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Caroline le Lun 12 Mai - 11:40

Bon, j'ai relu mon programme...
En fait, j'ai oublié d'écrire le point après le 'u' dans la fonction f et ça change TOUT.
J'ai écrit: f=inline('rho*(1-u/kappa)-phi*u/(1+u.^2)')
Alors que je devais écrire: f=inline('rho*(1-u/kappa)-phi*u./(1+u.^2)')
J'obtiens alors un graphe avec 2 racines: une en ~0.4 et l'autre en ~2.5
Au final, ma racine est 0.044825. J'ai vérifié en réinjectant la réponse dans la fonction, et j'obtiens bien 0 donc ça doit être juste.
Désolé de vous avoir induit en erreur... Rolling Eyes

Pour mon x, il correspond bien au 'u'. Quand je fais y=f(kappa,phi,rho,x) je remplace en fait tous les 'u' de ma fonction f par le vecteur x que j'ai défini au dessus.

Voilà, bon travail à tous Wink

Caroline
Enzyme
Enzyme

Nombre de messages : 11
Age : 29
Date d'inscription : 25/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Simon le Lun 12 Mai - 11:52

salut
je comprends pas à quoi sert le . dans le programme apres le u. Je vois bien qu'il y a une énorme différence quand il y en a un et quand il est pas la mais comment on sait qu'on doit le mettre?
Merci

Simon
Enzyme
Enzyme

Nombre de messages : 13
Age : 29
Date d'inscription : 30/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  fletteman le Lun 12 Mai - 12:18

j'ai fais la même erreur, et en rajoutant les points là où ils manquaient , j'obtiens pas 2, mais 3 racines... les même que t's 2 premières, mais également ~ 22.25 -.-

Maius par contre lorsque je calcule mes racines, par la méthode de newton, il ne m'indique qu'une réponse et pas la bonne Laughing ; pourtant j'ai cru comprendre qu'il ne fallait que rajouter un facteur K devant u(n+1) = K*u(n) - f(u(n))/fprime(u(n)) et laisser comme u0: u(1)=0.4, c'est-à-dire une valeur s'approchant de la première racine...

donc que passaaaaaaaaaaaa?!? sait-on me dire où est l'erreur? Question
avatar
fletteman
Enzyme
Enzyme

Nombre de messages : 11
Age : 30
Date d'inscription : 09/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Mélody le Lun 12 Mai - 12:54

Ce qui est très bizarre c'est que
u(n)=0.37505170360695 !!!!!!!! quand je met f=inline(rho, kappa, phi,x)
u(n)= 0.44825186463065 quand je met f=inline(kappa,phi,rho,x) => mettre par orde alphabétique???

J'ai pas regardé dans ton programme, mais ça peut être ça. En tous cas, y faut faire attention à cette connerie-là!!
avatar
Mélody
Mitochondrie
Mitochondrie

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

Voir le profil de l'utilisateur http://picasaweb.google.com/Full.Bubulles

Revenir en haut Aller en bas

Re: Séance 7

Message  fletteman le Lun 12 Mai - 14:12

bin chez moi c'est déjà par ordre alphabétique, mais quand je modifie et que je mets dans un autre ordre, ça change rien par contre... -.-

et j'ai toujopurs 3 racines... ^^

happy matlab flower
avatar
fletteman
Enzyme
Enzyme

Nombre de messages : 11
Age : 30
Date d'inscription : 09/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Caroline le Lun 12 Mai - 22:54

Il faut mettre le . après le u parce que u est un vecteur, et qu'on le divise par un terme qui dépend lui-même de u. Il faut donc que les termes du vecteur au numérateur correspondent bien à ceux du dénominateur (euh...je ne sais pas si je suis très claire...mais c'est un peu compliqué à expliquer). Si on avait divisé par une constante (par exemple par kappa, comme juste avant), le point n'aurait pas été indispensable.

Pour le nombre de racines, il en a peut-être bien 3. Mon graphe n'était pas suffisamment grand pour que je puisse voir jusqu'à 22. Mais de toute façon, je crois que si on a une racine, on s'en fout des autres...

Caroline
Enzyme
Enzyme

Nombre de messages : 11
Age : 29
Date d'inscription : 25/09/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Séance 7

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum