ODE 45 Extra parameter
조회 수: 7 (최근 30일)
이전 댓글 표시
Hello
I hope you're well.
I am currently trying to plot with ODE45. This is a linear growth model.
My formula is (r*p*(1-p/N)) - ((200/2)*(1+sin(2*pi*t)/12))
ODE45 works fine when solving with just the first part of the formula
sol = ode45(@(t,p) (r*p*(1-p/N)) , tspan, p0);
however I am not sure how to implement the extra bit of code. I tried the following
sol = ode45(@(t,p) (r*p*(1-p/N)) - ((200/2)*(1+sin(2*pi*t)/12)), tspan,p0);
But dont think this is correct.
I'm not sure how to implement this extra bit. Would appreciate any help.
Thanks.
Kind regards,
댓글 수: 3
Steven Lord
2022년 8월 23일
Is there something in particular that leads you to doubt the answer you receive when you run your code? If so can you show us your code and explain your doubt in more detail?
채택된 답변
Torsten
2022년 8월 23일
I think there is quite a noticable difference between the solution curves.
%Q1
tspan = [0 15];
a = 1000 + 1000*2;
r = 0.25;
N =20000;
options = odeset('RelTol',1e-12,'AbsTol',1e-12);
[t,ode] = ode45(@(t,p) r*p*(1-p/N), tspan,a,options);
plot(t,ode)
hold on
%t = linspace(0,15);
%devals = deval(ode,t);
%plot(t,devals);
%xlabel('t');
%ylabel('p');
%Q2
tspan = [0 15];
a = 1000 + 1000*2;
r = 0.25;
N =20000;
[t,ode] = ode45(@(t,p) r*p*(1-p/N) - ((200/2)*(1+sin(2*pi*t)/12)), tspan,a,options);
plot(t,ode)
hold off
%t = linspace(0,15);
%devals = deval(ode,t);
%plot(t,devals);
xlabel('t');
ylabel('p');
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
