The entries in tspan must strictly increase or decrease.
조회 수: 15 (최근 30일)
이전 댓글 표시
tInitial = 0.0038170565243983781145153955094429;
tFinal = 0.0038170565244015157956025685592749;
tspan = [tInitial tFinal];
[t,N] = ode45(@(t,N) thisObj.diffusionalGrowth(), tspan, oldDia);
Not able to figure out whats going wrong.
댓글 수: 0
채택된 답변
Bjorn Gustavsson
2019년 6월 13일
What ODE are you trying to integrate over such a short period of time? What is your time-unit? tFinal-tInitial is on the order of 1e-15! In my field of I occasionally work with chemical reaction-diffusion systems but I certainly dont have time-resolutions on femto-second time-scales, even if your time is in hours that time-span would correrspond to ~1e-12 s, and not much diffusion will occur at those time-scales...
HTH
댓글 수: 3
Bjorn Gustavsson
2019년 6월 13일
In that case you might have to scale your equations to other units perhaps to pico-seconds or femto-seconds, the ODE-functions might have hard limits on the time-steps for the integration, check the help for that. Perhaps it is enough to inform ode45 about a suitable initial step:
OPS = odeset;
OPS.initialstep = 1e-18; % Or something like that?
HTH
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!