Séance 7
+4
nicodev
Arnaud Goessens
Caroline
Simon
8 participants
Page 1 sur 1
Séance 7
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
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
- Nombre de messages : 13
Age : 36
Date d'inscription : 30/09/2007
Re: Séance 7
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)
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
- Nombre de messages : 11
Age : 35
Date d'inscription : 25/09/2007
Re: Séance 7
ha ouais c tt con en fait, je voyais pas trop ce qu'il fallait faire.
Merci bcp
Merci bcp
Simon- Enzyme
- Nombre de messages : 13
Age : 36
Date d'inscription : 30/09/2007
Re: Séance 7
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?
c'est qd meme bien la racine que l'on cherche ?!
si oui, moi elle se trouve en 22.27 ...
wtf?
Arnaud Goessens- Virus
- Nombre de messages : 124
Age : 35
Date d'inscription : 22/09/2007
Re: Séance 7
moi aussi je trouve 22.27!!
nicodev- Mitochondrie
- Nombre de messages : 69
Date d'inscription : 25/09/2007
Re: Séance 7
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.
Gab- Mitochondrie
- Nombre de messages : 48
Age : 36
Localisation : La hulpe
Date d'inscription : 08/01/2008
Re: Séance 7
ton x correspond sûrement au U
Gab- Mitochondrie
- Nombre de messages : 48
Age : 36
Localisation : La hulpe
Date d'inscription : 08/01/2008
Re: Séance 7
? qqun a trouvé une solution a mon problème?
Arnaud Goessens- Virus
- Nombre de messages : 124
Age : 35
Date d'inscription : 22/09/2007
Re: Séance 7
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.
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.
Philippe- Mitochondrie
- Nombre de messages : 69
Age : 37
Localisation : Bruxelles
Date d'inscription : 28/10/2007
Re: Séance 7
ouais ca c hyper bizarre ...
Caroline... pleaaaaase explique nous ton ptit progaaaaaaaaaaame ...
Caroline... pleaaaaase explique nous ton ptit progaaaaaaaaaaame ...
Arnaud Goessens- Virus
- Nombre de messages : 124
Age : 35
Date d'inscription : 22/09/2007
Re: Séance 7
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
Philippe- Mitochondrie
- Nombre de messages : 69
Age : 37
Localisation : Bruxelles
Date d'inscription : 28/10/2007
Re: Séance 7
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
Re: Séance 7
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..
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..
Gab- Mitochondrie
- Nombre de messages : 48
Age : 36
Localisation : La hulpe
Date d'inscription : 08/01/2008
Re: Séance 7
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'
% 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'
fletteman- Enzyme
- Nombre de messages : 11
Age : 36
Date d'inscription : 09/05/2008
Re: Séance 7
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...
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
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...
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
Caroline- Enzyme
- Nombre de messages : 11
Age : 35
Date d'inscription : 25/09/2007
Re: Séance 7
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
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
- Nombre de messages : 13
Age : 36
Date d'inscription : 30/09/2007
Re: Séance 7
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 ; 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?
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 ; 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?
fletteman- Enzyme
- Nombre de messages : 11
Age : 36
Date d'inscription : 09/05/2008
Re: Séance 7
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à!!
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à!!
Re: Séance 7
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
et j'ai toujopurs 3 racines... ^^
happy matlab
fletteman- Enzyme
- Nombre de messages : 11
Age : 36
Date d'inscription : 09/05/2008
Re: Séance 7
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...
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
- Nombre de messages : 11
Age : 35
Date d'inscription : 25/09/2007
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|