stochastic gompertz model and using ode15s

I have looked at previous examples of gompertz models and how to form the data and produce a graph and following similar examples I tried to reproduce that. My model is dX(t)= [a*x(t)-b(2)*log(x(t))*x(t)]*dt+(d*x(t))*dw(t). And trying to use previous examples I created
function yr = fit_GompModel(y,t) % Objective Function: Integrates ODE & Returns Vector
x0 = [20]; % Initial Value of the differential equation (dx = 20)
[y,ys]=ode15s(@GompModel,t,x0);
function dx = GompModel(t,y)
dx (1) = (p(1)*y(t)-p(2)*log(y(t))*y(1))*dt+(p(3)*y(t))*dw(y);
p(1)= 0.1;
p(2)= 0.3;
p(3)= 1;
end
yr = ys(:,1);
end
I keep getting a error in the third line was wondering what I was doing wrong?thanks

Answers (1)

Torsten
Torsten on 23 Feb 2022
Edited: Torsten on 23 Feb 2022
function yr = fit_GompModel(tr,p) % Objective Function: Integrates ODE & Returns Vector
x0 = 20; % Initial Value of the differential equation (dx = 20)
[T,Y] = ode15s(@(t,y)GompModel(t,y,p),tr,x0);
yr = Y(:,1);
end
function dx = GompModel(t,y,p)
dx(1) = ?;
end

9 Comments

when i compute this and enter the dx(1) as I previously had it comes up with error is there a better way for the dx(1) to be entered or is it not needed?
Torsten
Torsten on 23 Feb 2022
Edited: Torsten on 23 Feb 2022
Your dx(1) has many errors in it: y(t) has to be replaced by y(1), dt is undefined, dw(y) doesn't make sense.
You will have to correct these errors.
Okay I understand the y(1) an y(t) being wrong but if we use dx(1) so we implement that into the original model I don't understand how I could make the dt defined or the dw(t) to make sense as they are in the oringinal model
Torsten
Torsten on 24 Feb 2022
Edited: Torsten on 24 Feb 2022
MATLAB doesn't know what the "original model" is - and I don't know either.
MATLAB only interprets your settings and will search for a variable dt that is not defined and a function dw depending on t that does not exist.
My model is dX(t)= [a*x(t)-b(2)*log(x(t))*x(t)]*dt+(d*x(t))*dw(t) with a,b,d all being parameters which have set values. So do I need to define this in my code?
Torsten
Torsten on 24 Feb 2022
Edited: Torsten on 24 Feb 2022
I don't know what dt and dw(t) in the model equation of the right-hand side mean. So how should MATLAB know it ? Can you explain ? Is the gompertz equation a stochastic differential equation ? These cannot be solved using MATLAB's ODE integrators.
Yes the Gompertz equation is a stochastic differential equation with the dw(t) representing the Weiner process which is the same as the brownian process which I saw matlab can define and dt representing time of the tumour cell population. What would be the best way to tackle this now? Thanks
I suggest you google "Matlab & stochastic differential equation".
That's the same I had to do since I have no experience in this field.
Okay thankyou for your help

Sign in to comment.

Asked:

on 23 Feb 2022

Commented:

on 25 Feb 2022

Community Treasure Hunt

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

Start Hunting!