octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Default merged to stable for upcoming 4.2 release


From: Marco Caliari
Subject: Re: Default merged to stable for upcoming 4.2 release
Date: Thu, 6 Oct 2016 09:50:25 +0200 (CEST)
User-agent: Alpine 2.10 (DEB 1266 2009-07-14)

On Thu, 6 Oct 2016, Schöps, Sebastian wrote:


Am 06.10.2016 um 09:29 schrieb c. <address@hidden>:
On 6 Oct 2016, at 09:22, Marco Caliari <address@hidden> wrote:
This is the most flexible. What is the current strategy for, say, ode23tb? This 
function uses the embedded method of order three for the estimates, but the 
method of order two for advancing in time. In this case, q = oder_dt = 
order_interp = 2. Right?

we don't have ode23tb at the moment ...

but for example in odebwe and odefwe the same method with different timesteps 
is used to estimate the error
so also there q = oder_dt = order_interp = 1.

I think there is some confusion here. There are up to three different orders 
for (A) time stepping, (B) prediction and (C) interpolation. Typically one uses 
a higher order for prediction (with some exceptions as Richardson is used for 
bweuler) and most codes also continue time stepping with the higher order as 
Marco has quoted from Hairer's book. My perception was that the ordering odeAB 
vs. odeBA tells you with which order one continues.

We are currently doing what Matlab does, i.e., advancing with the higher order. 
Interpolation should also return ("dense output") solutions of appropriate high 
order. I think the only exception is ode78. Jacopo and I verified this yesterday. 
However, we can check this once more...

ode23tb in Matlab advances with order 2

tolrange=[1e-4,1e-6,1e-8,1e-10];
counter=0;
for tol = tolrange
counter=counter+1;
options.AbsTol=tol;
options.RelTol=tol;
[t,y] = ode23tb(@(t,y) y,[0,1],1,options);
err(counter) = abs(exp(1)-y(end));
ts(counter)=length(t);
end
loglog(ts,err,'*',ts,err(end)*(ts/ts(end)).^(-2))

Marco

reply via email to

[Prev in Thread] Current Thread [Next in Thread]