Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_inteq_volterra2 (d05ba)

## Purpose

nag_inteq_volterra2 (d05ba) computes the solution of a nonlinear convolution Volterra integral equation of the second kind using a reducible linear multi-step method.

## Syntax

[yn, errest, work, ifail] = d05ba(ck, cg, cf, method, iorder, alim, tlim, nmesh, tol, thresh, lwk)
[yn, errest, work, ifail] = nag_inteq_volterra2(ck, cg, cf, method, iorder, alim, tlim, nmesh, tol, thresh, lwk)
Note: the interface to this routine has changed since earlier releases of the toolbox:
Mark 23: work is now an output parameter
.

## Description

nag_inteq_volterra2 (d05ba) computes the numerical solution of the nonlinear convolution Volterra integral equation of the second kind
 t y(t) = f(t) + ∫ k(t − s)g(s,y(s))ds,  a ≤ t ≤ T. a
$y(t)=f(t)+∫atk(t-s)g(s,y(s))ds, a≤t≤T.$
(1)
It is assumed that the functions involved in (1) are sufficiently smooth. The function uses a reducible linear multi-step formula selected by you to generate a family of quadrature rules. The reducible formulae available in nag_inteq_volterra2 (d05ba) are the Adams–Moulton formulae of orders 3$3$ to 6$6$, and the backward differentiation formulae (BDF) of orders 2$2$ to 5$5$. For more information about the behaviour and the construction of these rules we refer to Lubich (1983) and Wolkenfelt (1982).
The algorithm is based on computing the solution in a step-by-step fashion on a mesh of equispaced points. The initial step size which is given by (Ta) / N$\left(T-a\right)/N$, N$N$ being the number of points at which the solution is sought, is halved and another approximation to the solution is computed. This extrapolation procedure is repeated until successive approximations satisfy a user-specified error requirement.
The above methods require some starting values. For the Adams formula of order greater than 3$3$ and the BDF of order greater than 2$2$ we employ an explicit Dormand–Prince–Shampine Runge–Kutta method (see Shampine (1986)). The above scheme avoids the calculation of the kernel, k(t)$k\left(t\right)$, on the negative real line.

## References

Lubich Ch (1983) On the stability of linear multi-step methods for Volterra convolution equations IMA J. Numer. Anal. 3 439–465
Shampine L F (1986) Some practical Runge–Kutta formulas Math. Comput. 46(173) 135–150
Wolkenfelt P H M (1982) The construction of reducible quadrature rules for Volterra integral and integro-differential equations IMA J. Numer. Anal. 2 131–152

## Parameters

### Compulsory Input Parameters

1:     ck – function handle or string containing name of m-file
ck must evaluate the kernel k(t)$k\left(t\right)$ of the integral equation (1).
[result] = ck(t)

Input Parameters

1:     t – double scalar
t$t$, the value of the independent variable.

Output Parameters

1:     result – double scalar
The result of the function.
2:     cg – function handle or string containing name of m-file
cg must evaluate the function g(s,y(s))$g\left(s,y\left(s\right)\right)$ in (1).
[result] = cg(s, y)

Input Parameters

1:     s – double scalar
s$s$, the value of the independent variable.
2:     y – double scalar
The value of the solution y$y$ at the point s.

Output Parameters

1:     result – double scalar
The result of the function.
3:     cf – function handle or string containing name of m-file
cf must evaluate the function f(t)$f\left(t\right)$ in (1).
[result] = cf(t)

Input Parameters

1:     t – double scalar
t$t$, the value of the independent variable.

Output Parameters

1:     result – double scalar
The result of the function.
4:     method – string (length ≥ 1)
The type of method which you wish to employ.
method = 'A'${\mathbf{method}}=\text{'A'}$
method = 'B'${\mathbf{method}}=\text{'B'}$
For backward differentiation formulae.
Constraint: method = 'A'${\mathbf{method}}=\text{'A'}$ or 'B'$\text{'B'}$.
5:     iorder – int64int32nag_int scalar
The order of the method to be used.
Constraints:
• if method = 'A'${\mathbf{method}}=\text{'A'}$, 3iorder6$3\le {\mathbf{iorder}}\le 6$;
• if method = 'B'${\mathbf{method}}=\text{'B'}$, 2iorder5$2\le {\mathbf{iorder}}\le 5$.
6:     alim – double scalar
a$a$, the lower limit of the integration interval.
Constraint: alim0.0${\mathbf{alim}}\ge 0.0$.
7:     tlim – double scalar
The final point of the integration interval, T$T$.
Constraint: ${\mathbf{tlim}}>{\mathbf{alim}}$.
8:     nmesh – int64int32nag_int scalar
The number of equidistant points at which the solution is sought.
Constraints:
• if method = 'A'${\mathbf{method}}=\text{'A'}$, nmeshiorder1${\mathbf{nmesh}}\ge {\mathbf{iorder}}-1$;
• if method = 'B'${\mathbf{method}}=\text{'B'}$, ${\mathbf{nmesh}}\ge {\mathbf{iorder}}$.
9:     tol – double scalar
The relative accuracy required in the computed values of the solution.
Constraint: sqrt(ε)tol1.0$\sqrt{\epsilon }\le {\mathbf{tol}}\le 1.0$, where ε$\epsilon$ is the machine precision.
10:   thresh – double scalar
The threshold value for use in the evaluation of the estimated relative errors. For two successive meshes the following condition must hold at each point of the coarser mesh
 (|Y1 − Y2|)/(max (|Y1|,|Y2|,|thresh|)) ≤ tol, $|Y1-Y2| max(|Y1|,|Y2|,|thresh|) ≤tol,$
where Y1${Y}_{1}$ is the computed solution on the coarser mesh and Y2${Y}_{2}$ is the computed solution at the corresponding point in the finer mesh. If this condition is not satisfied then the step size is halved and the solution is recomputed.
Note:  thresh can be used to effect a relative, absolute or mixed error test. If thresh = 0.0${\mathbf{thresh}}=0.0$ then pure relative error is measured and, if the computed solution is small and thresh = 1.0${\mathbf{thresh}}=1.0$, absolute error is measured.
11:   lwk – int64int32nag_int scalar
The dimension of the array work as declared in the (sub)program from which nag_inteq_volterra2 (d05ba) is called.
Constraint: lwk10 × nmesh + 6${\mathbf{lwk}}\ge 10×{\mathbf{nmesh}}+6$.
Note: the above value of lwk is sufficient for nag_inteq_volterra2 (d05ba) to perform only one extrapolation on the initial mesh as defined by nmesh. In general much more workspace is required and in the case when a large step size is supplied (i.e., nmesh is small), you must provide a considerably larger workspace.

None.

None.

### Output Parameters

1:     yn(nmesh) – double array
yn(i)${\mathbf{yn}}\left(\mathit{i}\right)$ contains the most recent approximation of the true solution y(t)$y\left(t\right)$ at the specified point t = alim + i × H$t={\mathbf{alim}}+\mathit{i}×H$, for i = 1,2,,nmesh$\mathit{i}=1,2,\dots ,{\mathbf{nmesh}}$, where H = (tlimalim) / nmesh$H=\left({\mathbf{tlim}}-{\mathbf{alim}}\right)/{\mathbf{nmesh}}$.
2:     errest(nmesh) – double array
errest(i)${\mathbf{errest}}\left(\mathit{i}\right)$ contains the most recent approximation of the relative error in the computed solution at the point t = alim + i × H$t={\mathbf{alim}}+\mathit{i}×H$, for i = 1,2,,nmesh$\mathit{i}=1,2,\dots ,{\mathbf{nmesh}}$, where H = (tlimalim) / nmesh$H=\left({\mathbf{tlim}}-{\mathbf{alim}}\right)/{\mathbf{nmesh}}$.
3:     work(lwk) – double array
If ${\mathbf{ifail}}={\mathbf{5}}$ or 6${\mathbf{6}}$, work(1)${\mathbf{work}}\left(1\right)$ contains the size of lwk required for the algorithm to proceed further.
4:     ifail – int64int32nag_int scalar
${\mathrm{ifail}}={\mathbf{0}}$ unless the function detects an error (see [Error Indicators and Warnings]).

## Error Indicators and Warnings

Errors or warnings detected by the function:
ifail = 1${\mathbf{ifail}}=1$
 On entry, method ≠ 'A'${\mathbf{method}}\ne \text{'A'}$ or 'B'$\text{'B'}$, or iorder < 2${\mathbf{iorder}}<2$ or iorder > 6${\mathbf{iorder}}>6$, or method = 'A'${\mathbf{method}}=\text{'A'}$ and iorder = 2${\mathbf{iorder}}=2$, or method = 'B'${\mathbf{method}}=\text{'B'}$ and iorder = 6${\mathbf{iorder}}=6$, or alim < 0.0${\mathbf{alim}}<0.0$, or ${\mathbf{tlim}}\le {\mathbf{alim}}$, or tol < sqrt(ε)${\mathbf{tol}}<\sqrt{\epsilon }$ or tol > 1.0${\mathbf{tol}}>1.0$, where ε$\epsilon$ is the machine precision.
ifail = 2${\mathbf{ifail}}=2$
 On entry, nmesh ≤ iorder − 2${\mathbf{nmesh}}\le {\mathbf{iorder}}-2$, when method = 'A'${\mathbf{method}}=\text{'A'}$, or nmesh ≤ iorder − 1${\mathbf{nmesh}}\le {\mathbf{iorder}}-1$, when method = 'B'${\mathbf{method}}=\text{'B'}$.
ifail = 3${\mathbf{ifail}}=3$
 On entry, lwk < 10 × nmesh + 6${\mathbf{lwk}}<10×{\mathbf{nmesh}}+6$.
ifail = 4${\mathbf{ifail}}=4$
The solution of the nonlinear equation (2) (see Section [Further Comments] for further details) could not be computed by nag_roots_contfn_interval_rcomm (c05av) and nag_roots_contfn_brent_rcomm (c05az).
ifail = 5${\mathbf{ifail}}=5$
The size of the workspace lwk is too small for the required accuracy. The computation has failed in its initial phase (see Section [Further Comments] for further details).
ifail = 6${\mathbf{ifail}}=6$
The size of the workspace lwk is too small for the required accuracy on the interval [alim,tlim]$\left[{\mathbf{alim}},{\mathbf{tlim}}\right]$ (see Section [Further Comments] for further details).

## Accuracy

The accuracy depends on tol, the theoretical behaviour of the solution of the integral equation, the interval of integration and on the method being used. It can be controlled by varying tol and thresh; you are recommended to choose a smaller value for tol, the larger the value of iorder.
You are warned not to supply a very small tol, because the required accuracy may never be achieved. This will usually force an error exit with ${\mathbf{ifail}}={\mathbf{5}}$ or 6${\mathbf{6}}$.
In general, the higher the order of the method, the faster the required accuracy is achieved with less workspace. For non-stiff problems (see Section [Further Comments]) you are recommended to use the Adams method (method = 'A'${\mathbf{method}}=\text{'A'}$) of order greater than 4$4$ (iorder > 4${\mathbf{iorder}}>4$).

When solving (1), the solution of a nonlinear equation of the form
 Yn − αg(tn,Yn) − Ψn = 0, $Yn-αg(tn,Yn)-Ψn=0,$ (2)
is required, where Ψn${\Psi }_{n}$ and α$\alpha$ are constants. nag_inteq_volterra2 (d05ba) calls nag_roots_contfn_interval_rcomm (c05av) to find an interval for the zero of this equation followed by nag_roots_contfn_brent_rcomm (c05az) to find its zero.
There is an initial phase of the algorithm where the solution is computed only for the first few points of the mesh. The exact number of these points depends on iorder and method. The step size is halved until the accuracy requirements are satisfied on these points and only then the solution on the whole mesh is computed. During this initial phase, if lwk is too small, nag_inteq_volterra2 (d05ba) will exit with ${\mathbf{ifail}}={\mathbf{5}}$.
In the case ${\mathbf{ifail}}={\mathbf{4}}$ or 5${\mathbf{5}}$, you may be dealing with a ‘stiff’ equation; an equation where the Lipschitz constant L$L$ of the function g(t,y)$g\left(t,y\right)$ in (1) with respect to its second argument is large, viz,
 |g(t,u) − g(t,v)| ≤ L|u − v|. $|g(t,u)-g(t,v)|≤L|u-v|.$ (3)
In this case, if a BDF method (method = 'B'${\mathbf{method}}=\text{'B'}$) has been used, you are recommended to choose a smaller step size by increasing the value of nmesh, or provide a larger workspace. But, if an Adams method (method = 'A'${\mathbf{method}}=\text{'A'}$) has been selected, you are recommended to switch to a BDF method instead.
In the case ${\mathbf{ifail}}={\mathbf{6}}$, the specified accuracy has not been attained but yn and errest contain the most recent approximation to the computed solution and the corresponding error estimate. In this case, the error message informs you of the number of extrapolations performed and the size of lwk required for the algorithm to proceed further. The latter quantity will also be available in work(1)${\mathbf{work}}\left(1\right)$.

## Example

```function nag_inteq_volterra2_example
ck = @(t) exp(-t);
cg = @(s, y) y + exp(-y);
cf = @(t) exp(-t);
method = 'A';
iorder = int64(6);
alim = 0;
tlim = 20;
nmesh = int64(6);
tol = 0.001;
thresh = 1.111307226797642e-16;
lwk = int64(1000);
[yn, errest, work, ifail] = ...
nag_inteq_volterra2(ck, cg, cf, method, iorder, alim, tlim, nmesh, tol, thresh, lwk)
```
```

yn =

1.8004
2.2392
2.5431
2.7759
2.9646
3.1232

errest =

1.0e-03 *

0.0804
0.1777
0.2459
0.3057
0.3617
0.4171

work =

1.0000
0.0000
0.0000
0.0000
0.0000
-0.0000
-0.0000
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1.0000
1.0738
1.1426
1.2070
1.2674
1.3244
1.3784
1.4295
1.4782
1.5246
1.5690
1.6115
1.6522
1.6914
1.7290
1.7653
1.8004
1.8342
1.8670
1.8987
1.9294
1.9592
1.9881
2.0163
2.0436
2.0703
2.0962
2.1215
2.1462
2.1702
2.1937
2.2167
2.2392
2.2611
2.2826
2.3036
2.3242
2.3444
2.3642
2.3836
2.4026
2.4213
2.4396
2.4576
2.4753
2.4927
2.5098
2.5266
2.5431
2.5593
2.5753
2.5911
2.6066
2.6218
2.6368
2.6517
2.6662
2.6806
2.6948
2.7088
2.7226
2.7362
2.7496
2.7628
2.7759
2.7888
2.8015
2.8141
2.8265
2.8387
2.8509
2.8628
2.8747
2.8863
2.8979
2.9093
2.9206
2.9318
2.9428
2.9538
2.9646
2.9753
2.9858
2.9963
3.0067
3.0169
3.0271
3.0371
3.0470
3.0569
3.0666
3.0763
3.0859
3.0953
3.1047
3.1140
3.1232
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1.0000
0.8119
0.6592
0.5353
0.4346
0.3529
0.2865
0.2326
0.1889
0.1534
0.1245
0.1011
0.0821
0.0666
0.0541
0.0439
0.0357
0.0290
0.0235
0.0191
0.0155
0.0126
0.0102
0.0083
0.0067
0.0055
0.0044
0.0036
0.0029
0.0024
0.0019
0.0016
0.0013
0.0010
0.0008
0.0007
0.0006
0.0004
0.0004
0.0003
0.0002
0.0002
0.0002
0.0001
0.0001
0.0001
0.0001
0.0001
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1.0000
0.8119
0.6592
0.5353
0.4346
0.3529
0.2865
0.2326
0.1889
0.1534
0.1245
0.1011
0.0821
0.0666
0.0541
0.0439
0.0357
0.0290
0.0235
0.0191
0.0155
0.0126
0.0102
0.0083
0.0067
0.0055
0.0044
0.0036
0.0029
0.0024
0.0019
0.0016
0.0013
0.0010
0.0008
0.0007
0.0006
0.0004
0.0004
0.0003
0.0002
0.0002
0.0002
0.0001
0.0001
0.0001
0.0001
0.0001
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.2850
0.2949
0.3045
0.3138
0.3227
0.3313
0.3397
0.3477
0.3555
0.3630
0.3703
0.3773
0.3841
0.3908
0.3972
0.4034
0.4095
0.4154
0.4212
0.4268
0.4322
0.4375
0.4427
0.4478
0.4527
0.4576
0.4623
0.4669
0.4715
0.4759
0.4803
0.4845
0.4887
0.4928
0.4968
0.5007
0.5046
0.5084
0.5121
0.5158
0.5194
0.5229
0.5264
0.5299
0.5332
0.5365
0.5398
0.5430
0.5462
0.5493
0.5524
0.5554
0.5584
0.5614
0.5643
0.5671
0.5699
0.5727
0.5755
0.5782
0.5809
0.5835
0.5862
0.5887
0.5913
0.5938
0.5963
0.5988
0.6012
0.6036
0.6060
0.6083
0.6106
0.6129
0.6152
0.6175
0.6197
0.6219
0.6241
0.6262
0.6284
0.6305
0.6326
0.6346
0.6367
0.6387
0.6407
0.6427
0.6447
0.6467
0.6486
0.6505
0.6524
0.6543
0.6562
0.6580
0.6598
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.5699
0.6090
0.6454
0.6793
0.7109
0.7405
0.7683
0.7944
0.8191
0.8424
0.8645
0.8855
0.9056
0.9248
0.9431
0.9607
0.9775
0.9938
1.0094
1.0244
1.0390
1.0531
1.0667
1.0798
1.0926
1.1050
1.1171
1.1288
1.1402
1.1513
1.1621
1.1726
1.1829
1.1929
1.2027
1.2123
1.2217
1.2308
1.2398
1.2486
1.2572
1.2656
1.2738
1.2819
1.2899
1.2977
1.3053
1.3128
1.3202
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

ifail =

0

```
```function d05ba_example
ck = @(t) exp(-t);
cg = @(s, y) y + exp(-y);
cf = @(t) exp(-t);
method = 'A';
iorder = int64(6);
alim = 0;
tlim = 20;
nmesh = int64(6);
tol = 0.001;
thresh = 1.111307226797642e-16;
lwk = int64(1000);
[yn, errest, work, ifail] = ...
d05ba(ck, cg, cf, method, iorder, alim, tlim, nmesh, tol, thresh, lwk)
```
```

yn =

1.8004
2.2392
2.5431
2.7759
2.9646
3.1232

errest =

1.0e-03 *

0.0804
0.1777
0.2459
0.3057
0.3617
0.4171

work =

1.0000
0.0000
0.0000
0.0000
0.0000
-0.0000
-0.0000
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
-0.0004
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1.0000
1.0738
1.1426
1.2070
1.2674
1.3244
1.3784
1.4295
1.4782
1.5246
1.5690
1.6115
1.6522
1.6914
1.7290
1.7653
1.8004
1.8342
1.8670
1.8987
1.9294
1.9592
1.9881
2.0163
2.0436
2.0703
2.0962
2.1215
2.1462
2.1702
2.1937
2.2167
2.2392
2.2611
2.2826
2.3036
2.3242
2.3444
2.3642
2.3836
2.4026
2.4213
2.4396
2.4576
2.4753
2.4927
2.5098
2.5266
2.5431
2.5593
2.5753
2.5911
2.6066
2.6218
2.6368
2.6517
2.6662
2.6806
2.6948
2.7088
2.7226
2.7362
2.7496
2.7628
2.7759
2.7888
2.8015
2.8141
2.8265
2.8387
2.8509
2.8628
2.8747
2.8863
2.8979
2.9093
2.9206
2.9318
2.9428
2.9538
2.9646
2.9753
2.9858
2.9963
3.0067
3.0169
3.0271
3.0371
3.0470
3.0569
3.0666
3.0763
3.0859
3.0953
3.1047
3.1140
3.1232
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1.0000
0.8119
0.6592
0.5353
0.4346
0.3529
0.2865
0.2326
0.1889
0.1534
0.1245
0.1011
0.0821
0.0666
0.0541
0.0439
0.0357
0.0290
0.0235
0.0191
0.0155
0.0126
0.0102
0.0083
0.0067
0.0055
0.0044
0.0036
0.0029
0.0024
0.0019
0.0016
0.0013
0.0010
0.0008
0.0007
0.0006
0.0004
0.0004
0.0003
0.0002
0.0002
0.0002
0.0001
0.0001
0.0001
0.0001
0.0001
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1.0000
0.8119
0.6592
0.5353
0.4346
0.3529
0.2865
0.2326
0.1889
0.1534
0.1245
0.1011
0.0821
0.0666
0.0541
0.0439
0.0357
0.0290
0.0235
0.0191
0.0155
0.0126
0.0102
0.0083
0.0067
0.0055
0.0044
0.0036
0.0029
0.0024
0.0019
0.0016
0.0013
0.0010
0.0008
0.0007
0.0006
0.0004
0.0004
0.0003
0.0002
0.0002
0.0002
0.0001
0.0001
0.0001
0.0001
0.0001
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.2850
0.2949
0.3045
0.3138
0.3227
0.3313
0.3397
0.3477
0.3555
0.3630
0.3703
0.3773
0.3841
0.3908
0.3972
0.4034
0.4095
0.4154
0.4212
0.4268
0.4322
0.4375
0.4427
0.4478
0.4527
0.4576
0.4623
0.4669
0.4715
0.4759
0.4803
0.4845
0.4887
0.4928
0.4968
0.5007
0.5046
0.5084
0.5121
0.5158
0.5194
0.5229
0.5264
0.5299
0.5332
0.5365
0.5398
0.5430
0.5462
0.5493
0.5524
0.5554
0.5584
0.5614
0.5643
0.5671
0.5699
0.5727
0.5755
0.5782
0.5809
0.5835
0.5862
0.5887
0.5913
0.5938
0.5963
0.5988
0.6012
0.6036
0.6060
0.6083
0.6106
0.6129
0.6152
0.6175
0.6197
0.6219
0.6241
0.6262
0.6284
0.6305
0.6326
0.6346
0.6367
0.6387
0.6407
0.6427
0.6447
0.6467
0.6486
0.6505
0.6524
0.6543
0.6562
0.6580
0.6598
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.5699
0.6090
0.6454
0.6793
0.7109
0.7405
0.7683
0.7944
0.8191
0.8424
0.8645
0.8855
0.9056
0.9248
0.9431
0.9607
0.9775
0.9938
1.0094
1.0244
1.0390
1.0531
1.0667
1.0798
1.0926
1.1050
1.1171
1.1288
1.1402
1.1513
1.1621
1.1726
1.1829
1.1929
1.2027
1.2123
1.2217
1.2308
1.2398
1.2486
1.2572
1.2656
1.2738
1.2819
1.2899
1.2977
1.3053
1.3128
1.3202
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

ifail =

0

```