Solving ODE with conditional statements

5 views (last 30 days)
G
G on 25 Aug 2013
Hi,
I have a question here regarding ODE modeling in matlab. I was wondering if I can create an ODE model with conditional statements.
For example: dx/dt = 1/7 dy/dt = 1/3 dy/dt = 0 if x & y are both integers
If it is possible, what would be the command/coding script for dy/dt in this case?
Thanks!

Answers (2)

Jan
Jan on 25 Aug 2013
Edited: Jan on 25 Aug 2013
An integration requires a smooth function. For such discontinuities the stepsize controller of Matlab's integrators get serious troubles, see e.g. http://www.mathworks.com/matlabcentral/answers/59582#answer_72047 .
The integrator controls the stepsize based on the locale discretization error. Therefore it is very unlikely, that the variables are exactly integer. Then notice, that x and y will have integer values for an infinitely interval only. Therefore changing the derivative there, this cannot change the result of the integration.

G
G on 25 Aug 2013
Edited: G on 25 Aug 2013
For example if:
dx/dt = 1/2,
dy/dt = 1/4,
dy/dt = 0 if both x and y are intergers
at t = 0 [x,y] = [0,0]
Therefore, at t = 4, x = 2 and y = 1
So you're saying that MatLab's ODE Solver does not have the capability of drawing on a true/false mechanism to determine if both x and y are integers for the stepwise model of dy/dt?

Community Treasure Hunt

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

Start Hunting!