Optimization for non-linear ODE with Constraints for parameters

10 views (last 30 days)
I have a model based on 2 non-linear ODEs solved for the time t to model a predator-prey system. Each ODE contains the solution of both of the other equations. I am trying to find the range of the stable-kept parameters that fits the following conditions:
I have a differential equation for x1,x2 and the parameters
-All parameters must be positive, real numbers
-the solution for the ode of x2 should approach zero (decrease in values).
dxdt = zeros(size(x));
P1=x(1);
C1=x(2);
dxdt(1)=P1*r(1)*(1-(P1/k(1)))-...
C1*((v(1)*(P1^n(1)))/((1+(v(1)*h(1)*(P1^m(1))))))-...
P1*s(1);
xt(1) = dxdt(1);
dxdt(2)=c(1)*C1*((v(1)*(P1^n(1)))/(1+(v(1)*h(1)*(P1^m(1)))))-...
C1*s(2);
xt(2) = dxdt(2);

Answers (1)

Shadaab Siddiqie
Shadaab Siddiqie on 12 Apr 2021
From my understanding you want to solve non-linear ODE. Here is a workflow to solve it.
  1. Choose an ODE solver (i.e. ode45 or ode15s), then write the update function for the differential equations.
  2. Write an objective function that takes in the values of the parameters, solves the ODE for those particular values, and then calculates the cost function (such as the difference between the experimental and simulated data) that needs to be minimized.
  3. Use an optimization function like LSQNONLIN or FMINCON to minimize the objective function.
  4. Use this link to address potential issues that go along with a numerical optimization routine.
  3 Comments
Marie P.
Marie P. on 17 Apr 2021
I still don't understand the examples and how I could apply them to my problem but thanks anyway

Sign in to comment.

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!