Thresholds in ODE solvers
古いコメントを表示
Working with models of ecological communities based on diff. equations, I want to define a extinction threshold. If, during the simulation, any species density drops below that it should go directly to zero. I do it with a line in the equations file like:
x(x < threshold)= 0;
But it's not working. As a simple example see this:
function dn= expdecay(t,x)
dn= zeros(1,1);
dn= -0.1*x;
x(x<10)= 0;
When I call: [t,x]= ode45('expdecay',[1 100],[100]); plot(t,x)
I'd expect a straight drop to zero when x= 10, but it doesn't happen. Any idea how to implement this?
採用された回答
その他の回答 (1 件)
Sean de Wolski
2011 年 5 月 18 日
1 投票
Your function is returning dn. x isn't passed back so the last line doesn't do anything...
カテゴリ
ヘルプ センター および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!