You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've scoured the literature and couldn't find anything on how to calculate error for dense outputs. I assume calculating dense error is to maintain error thresholds for the interpolated values? Looking at explicit.c lines 177 - 195, the stepper calculates errors using an array d[ ] that has error coefficients. Where do these come from? What's the process? Where along the interpolation (what theta,) is this error calculated for? Any texts that describe this process that I can read? Relevant code below.
I'm looking at lines 177 - 195.
//Check the dense error (in inf norm) to determine if the step can be accepted
double err_d;
dcopy(temp_k[0], sum, 0, link_i->dim);
dscal(h * d[0], sum, 0, link_i->dim);
for (unsigned int i = 1; i < num_stages; i++)
daxpy(h * d[i], temp_k[i], sum, 0, link_i->dim);
for (unsigned int i = 0; i < dim; i++)
temp[i] = max(fabs(new_y[i]), fabs(y_0[i])) * error->reltol_dense[i] + error->abstol_dense[i];
err_d = nrminf2(sum, temp, 0, link_i->dim);
double value_d = pow(1.0 / err_d, 1.0 / meth->d_order);
and below are the coefficients from dopri5_dense.c file:
Hi All,
I've scoured the literature and couldn't find anything on how to calculate error for dense outputs. I assume calculating dense error is to maintain error thresholds for the interpolated values? Looking at explicit.c lines 177 - 195, the stepper calculates errors using an array
d[ ]
that has error coefficients. Where do these come from? What's the process? Where along the interpolation (what theta,) is this error calculated for? Any texts that describe this process that I can read? Relevant code below.I'm looking at lines 177 - 195.
and below are the coefficients from dopri5_dense.c file:
Thanks for your responses
G
The text was updated successfully, but these errors were encountered: