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 ..
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))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 toi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.ps. c'est une amie nommée Achhab![]()
Partager