Salamo alaykom :)
Je dois programmer :
1) l’equation de malthus sous matlab
N´(t)=r N(t) sa solution : N(t)=No exp(rt)
avec r=a-b, a=naissance d espèce et b=dècé
merci d avance ..
Version imprimable
Salamo alaykom :)
Je dois programmer :
1) l’equation de malthus sous matlab
N´(t)=r N(t) sa solution : N(t)=No exp(rt)
avec r=a-b, a=naissance d espèce et b=dècé
merci d avance ..
bonsoir
sans valeurs numériques, l'indication des ces variables n'a pas une grande valeur, on ne sait pas si r>0 ou r<0, mais r doit être <0 pour que la réponse soit stable(N(t))Citation:
avec r=a-b, a=naissance d espèce et b=dècé
j'ai modifié un code dans le help de ode45, je ne sais pas s'il y a une idée plus simple mais ça doit marcher:
je connais un ami Achhab, je ne sais pas si c'est toi8-)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 close all clc clear Tspan = [1:0.1:10]; % tu peux modifier le vecteur temps gt=Tspan; ft=gt; IC = 5; % condition initiale N0 = 5 tu peux la modifier aussi for i=1:length(Tspan) f(i)=1;% f(i)=-r donc ici j'ai pris r=-1 à modifier aussi g(i)=0;%doit être 0 toujours (pour ce cas d'équation) end [T Y] = ode45(@(t,y) myode(t,y,ft,f,gt,g),Tspan,IC); % Solve ODE plot(T, Y); title('Plot of y as a function of time'); xlabel('Time'); ylabel('Y(t)');
fait attention à
au début de code pour ne pas perdre du travail;)Code:
1
2
3close all clc clear
bsr ,
j' ai testé ce que vous avez proposé mais malheuresement il n'a pas marché , concernant l'indication des variables il faut que je teste les trois cas ..
j ai créer un fichier script dans lequel j ai collé le code que vs avez proposé .. puis j' ai tapé son nom dans " command window "
voila ce qu' il affiché :
ps. c'est une amie nommée Achhab :)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 ??? Undefined function or method 'myode' for input arguments of type 'double'. Error in ==> @(t,y)myode(t,y,ft,f,gt,g) Error in ==> odearguments at 111 f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0. Error in ==> ode45 at 173 [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... Error in ==> forummalthus at 11 [T Y] = ode45(@(t,y) myode(t,y,ft,f,gt,g),Tspan,IC); % Solve ODE
bonjour
tu as raison, j'ai oublié de t'envoyer le code de la fonction myode
le voilà
elle doit être enregistrée sous le nom myode dans le même répertoire que ton fichier script.Code:
1
2
3
4 function dydt = myode(t,y,ft,f,gt,g) f = interp1(ft,f,t); % Interpolate the data set (ft,f) at time t g = interp1(gt,g,t); % Interpolate the data set (gt,g) at time t dydt = -f.*y + g; % Evalute ODE at time t
normalement ça doit marcher lorsque tu exécutes ce dernier.
Concernant la discussion selon le cas, je te laisse le faire (des conditions if)
laisses tomber.:oops:Citation:
ps. c'est une amie nommée Achhab