Optimization for non-linear ODE with Constraints for parameters

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);

回答(1 个)

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 个评论

Could you eloaborate your answer a bit? What is the update function and objective function. and how do I calculate the "cost function"?
I still don't understand the examples and how I could apply them to my problem but thanks anyway

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Get Started with Optimization Toolbox 的更多信息

产品

版本

R2020a

提问:

2021-4-9

评论:

2021-4-17

Community Treasure Hunt

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

Start Hunting!

Translated by