The entries in tspan must strictly increase or decrease.

15 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Bjorn Gustavsson
Bjorn Gustavsson il 13 Giu 2019
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 Commenti
Bjorn Gustavsson
Bjorn Gustavsson il 13 Giu 2019
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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Chemistry in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by