Spruce budworm diff.eq,parameter variation using matlab functions

Click For Summary
SUMMARY

The discussion focuses on solving the spruce budworm differential equation using MATLAB, specifically employing the ode15s solver for a range of parameters (r=0:5, q=0:10). The user seeks guidance on defining an array of matrices for each loop iteration to incorporate these parameters into the function. A proposed solution involves initializing the initial condition vector u0 to include the values of r and q, and modifying the function definition to accommodate these parameters effectively.

PREREQUISITES
  • Familiarity with MATLAB programming
  • Understanding of differential equations
  • Knowledge of numerical methods, specifically the ode15s solver
  • Basic concepts of parameter variation in mathematical modeling
NEXT STEPS
  • Learn how to implement parameter sweeps in MATLAB
  • Explore MATLAB's array manipulation techniques
  • Study the use of anonymous functions in MATLAB for differential equations
  • Investigate the implications of parameter ranges on model validity
USEFUL FOR

Researchers, mathematicians, and ecologists interested in modeling population dynamics, as well as MATLAB users looking to enhance their skills in solving differential equations with varying parameters.

marellasunny
Messages
245
Reaction score
3
I have come across a MATLAB code for solving the spruce budworm differential equation.But,I would like to solve the same differential equation for a range of parameters(r=0:5,q=0:10).I am having problems trying to define the array of matrices for each loop.Please look at the code below:% This program solves the differential equation
% du/dt = f(t,u) = ru(1-u/q) + u^2/(1 + u^2)

function spruceco

tspan = [0; 100]; %This command defines the time interval of interest.
u0 = [.1];
for q=0:10 %I would like to add these here and then pass the values of q,r to the function f%
for r=0:5

[t,u] = ode15s(@f,tspan,u0)
% This command tells MATLAB to use the differential equation solver called ode15s to numerically compute the solution of the differential equation defined by the function f, for time interval tspan, and initial condition u0. The right-hand side of the equation tells MATLAB to store this output in vectors t (for the time points) and u (for the population density).

figure;
drawnow
plot(t,u(:,1)); %This tells MATLAB to plot the solution.
hold on
end
% --------------------------------------------------------------------------

function dudt = f(t,u) %This commands defines the function du/dt = f(t,u).
q=10;r=2;%I would like to solve the differential equation for q=0:10,r=0:5;How?Procedure?
dudt = [r*u(1)*(1-u(1)/q) - u(1)^2/(1+u(1)^2)]; %This command inputs the left-hand side of the spruce budworm
%differential equtaion.
end
 
Physics news on Phys.org
I'm not a Matlab user, but I think the technique of adding r and q to the differential equation might work. Essentially, initialize u0 to be a vector with values 0.1 (your current value), r and q. You then define the differential equation f(t,u) to return it's current value as the first element of a 3-vector and 0 for the other 2 elements (r and q being constant throughout each integration). You can then loop through r and q values, something like the following (or however Matlab constructs vectors).

f(t,u) = [u(2).u(1)(1-u(1)/u(3)) + u(3)^2/(1 + u(3)^2) 0 0]

for r = ...
for q = ...
u0 = [0.1 r q]
[t,u] = ode15s(@f,tspan,u0)


The image shows something similar in Mathcad
http://https://www.physicsforums.com/attachment.php?attachmentid=54011&stc=1&d=1355766195
You also might want to check that the equation is valid for your desired r and q ranges ... (eg, what the result if q = 0 ?)
 

Attachments

  • phys - 12 12 17 spruce budworm 01.jpg
    phys - 12 12 17 spruce budworm 01.jpg
    36.4 KB · Views: 646
Last edited by a moderator:

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 18 ·
Replies
18
Views
4K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K