﻿
Xnumbers Tutorial
210
Continued fraction interpolation
Continued fractions are often a powerful ways of interpolation when we work near the functions
poles.
In XNUMBERS the continued fraction coefficients can be obtained by  the function
FracInterpCoef  and the interpolation value with FracInterp
Example. Interpolate the following dataset
y(x) = 1/(x+0.01)
1/2
for x = 0,  0.05,  01,  0.2,  0.5,  1   , with step x = 0.1
In the graphs below we have plotted the interpolated values obtained with three different
methods: cubic polynomial, cubic spline  and continued fraction
Note that y(x) have a poles in x = 0.01 very near to the node x = 0
0
2
4
6
8
10
12
0
0.2
0.4
0.6
0.8
1
1.2
y
knots
0
2
4
6
8
10
12
0
0.2
0.4
0.6
0.8
1
1.2
y
cubic
poly
0
2
4
6
8
10
12
0
0.2
0.4
0.6
0.8
1
1.2
y
cubic spline
0
2
4
6
8
10
12
0
0.2
0.4
0.6
0.8
1
1.2
y
fraction
We can see a good general accuracy except for the final part of the polynomial interpolation
method. In this case, the worst accuracy is concentrated where the function is more flat, but,
surprisingly, this perturbation is due to the distant  pole in x = -0.01. We note also that both
spline and fraction methods keep a good accuracy also for point external at the interpolation
range ( extrapolation for x >1 )
0.0001
0.001
0.01
0.1
1
10
0
0.2
0.4
0.6
0.8
1
poly
spline
fraction
Method
avg. err.
Cubic spline
0.22
Cubic poly
0.19
Contined fraction
0.003
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
Xnumbers Tutorial
211
Differential Equations
Xnumbers contains functions for solving the following differential problem of the 1
st
order with
initial conditions (Cauchy’s problem):
0
0
,  ( ( )
(, )
y
yt
f t t y
y
=
=
and for solving the 1
st
order ordinary differential system.
0
0
(, )       ,  ( ( )
y
y
y f f y
=
′=
t
t
=
=
=
=
=
=
0
0
20
0
2
10
1 0
2
1
2
1
2
2
2
1
1
1
( )
....
( )
( )
,
... )
(, ,
....
... )
(, ,
... )
(, ,
n
n
n
n
n
n
n
y
y t
y
y t
y
y t
f t t y y y y y
y
f t t y y y y y
y
f t t y y y y y
y
ODE Runge-Kutta 4
= ODE_RK4(Equations, VarInit, Step, [Par, …])
This function integrates numerically a 1
st
order ordinary differential equation or a 1
st
order
differential system, with the Runge-Kutta formula of 4
th
order
)
(
0.5  )
0.5 ,
(
0.5  )
( 0.5 ,
( , , )
3
4
2
3
1
2
1
f t t h h y y hk
k
hk
h y
f t
k
hk
h y
f t
k
f t t y
k
i
i
i
i
i
i
i
i
+
+
=
+
+
=
+
+
=
=
(
)
4
3
2
1
1
2
2
6
k k
k
k
h
y
y
i
i
+
+
+
+
=
+
"Equations" is a math expression string containing the equation to solve. For a system It is a
vector of equations. Examples of correct equation definition are:
y’ = -2*y*x   ,    v’ = 2*x-v^2+v   ,  y1’ = -3*y1+y2+sin(10*t)
Each string may contain symbolic functions with variables, operators, parenthesis and other
basic functions.
The parameter "VarInit"  is a vector containing the initial values. It has two values for two
variables [ t
0
, y
].
For a system with n+1 variables, "Varinit" is an (n+1) vector [ t
0
, y
10 ,
y
20, ….
y
n
].
The parameter "Step" is the integration step.
The optional parameter "Par" contains the values of other extra parameters of the equations.
Let’s see how it works with an example
Solve numerically the following Cauchy’s problem for   0  x  3
,  (0) ) 1
2
=
=−
y
xy
y
We know that the exact solution is
2
x
y e
=
We can arrange a worksheet like the following
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
An advanced PDF editor enable C# users to edit PDF text, image and pages in Visual Studio .NET project. Use HTML5 PDF Editor to Edit PDF Document in ASP.NET.
C# TIFF - Edit TIFF Metadata in C#.NET. Allow Users to Read and Edit Metadata Stored in Tiff Image in C#.NET Application. How to Get TIFF XMP Metadata in C#.NET.
Xnumbers Tutorial
212
As we can see, we have written in cell G5 the differential equation
y’ = - 2*x*y
In the range A5:B5 we have inserted the starting values of x and y. Note that we have written
the labels just above theirs values. Labels
are necessary for the correct variables assignment
Finally, in the range A6:B6 - just below the starting values - we have inserted the ODE_RK4,
that returns the value y(0.2) = 0.9607893… with a good accuracy of about 1E-7 (compare with
the exact solution)
Tip: In order to get all other values,
select the range A6:B6 and simply
drag it down.
The cells below will be filled
automatically
Only remember to fix the constant
cells in the function with the \$
symbol
=ODE_RK4(\$G\$5,A5:B5,\$F\$5)
We have also added the column with the exact values in order to check the approximation
error. Both exact and approximated solutions are plotted in the following graph
0
0.2
0.4
0.6
0.8
1
1.2
0
0.5
1
1.5
2
2.5
3
y
y exact
The approximate solution (dots) fits very good the exact solution (pink curve).
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
ASP.NET PDF Viewer; VB.NET: ASP.NET PDF Editor; VB.NET to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
C# PDF Library SDK to view, edit, convert, process PDF file for C#
HTML5 PDF Editor enable users to edit PDF text, image, page, password and so on. C#.NET: WPF PDF Viewer & Editor. C#.NET: Edit PDF Metadata.
Xnumbers Tutorial
213
If you need, you can include parameters inside the differential equation
Example. Solve the following differential problem
(0) 1
'
n
=
=− ⋅
y
y
k x
y
where  k = 2 and n = 1
Note that we have added the
labels "k" and "n" above the
cells D2 and E2. In this way,
the parser will correctly
substitute the value 2 for the
variable "k" and 1 for the
variable "n". in the differential
equation
Do not forget the labels "x"
and "y" in the cells A5 and B5
Example: Solve the following linear differential equation
,   (1) ) 0
1
'
=
= ⋅
+
y
y a a x
x
y
n
For n = 3 and a = 1. Rearranging, we get
,   (1) ) 0
'
=
= ⋅ ⋅ −
y
x
y
y a a x
n
Note the labels "a" and "n"
above the cells D2 and E2. In
this way, the parser will
substitute the value 1 for the
variable "a" and 3 for the
variable "n". in the differential
equation
Do not forget the labels "x"
and "y" in the cells A5 and B5
With the step h = 0.1, we have a numerical solution with a very good approximation comparing
with the exact solution
1)/(5 )
(
5
x
x
y
=
, (better than 1E-6)
0.E+00
1.E-07
2.E-07
3.E-07
4.E-07
5.E-07
6.E-07
7.E-07
8.E-07
0
0.5
1
1.5
2
2.5
3
3.5
4
Relative Error
C# TIFF: TIFF Editor SDK to Read & Manipulate TIFF File Using C#.
1. Extract text from Tiff file. 2. Render text to text, PDF, or Word file. Tiff Metadata Editing in C#. Our .NET Tiff SDK supports editing Tiff file metadata.
How to C#: Basic SDK Concept of XDoc.PDF for .NET
XDoc.PDF for .NET supports editing PDF document metadata, like Title, Subject, Author, Creator, Producer, Keywords, Created Date, and Last Modified Date.
Xnumbers Tutorial
214
This function can be used to solve ordinary differential systems.
Example: Solve numerically the following differential system, where v(t) and i(t) are the voltage
and the current of an electric network
=− ⋅ + + ⋅
= − − ⋅
v
i
i
v
v i
15
' 5
7
'
=
=
(0) 0
(0) 10
i
v
The computation can be arranged as
following.
Write the variables labels in the row 6. The
labels “v” and “i” must be the same that
you have written in the equations. Just
one row below, insert the starting values in
the same order.
Select the range A8:C8 and insert the
function ODE_RK4. The first step will be
returned.
Now select this row and drag it down for
evaluating all the steps that you need
The graph below shows the transient of v(t) and i(t) with good accuracy
0
2
4
6
8
10
12
0
0.4
0.8
1.2
v
i
Note that you can change the
step “h” in order to re-compute
the transient in a very fast and
quick way.
Optional constant parameters can be arranged. For example if you want to add a parameter R,
independent from the time “t”, write:
Constant parameters can be
written in any part of the
worksheet. You need only to add
the labels with the same symbols
with they appear in the differential
equations. In this case, we have
added the label "R" in the cell C1,
upon its values.
You can add as many optional
parameters that you like
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Comments, forms and multimedia. Document and metadata. All object data. Detect and merge image fragments. Flatten visible layers. C#.NET DLLs: Compress PDF Document
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Convert PDF to HTML. |. C#.NET PDF SDK - Convert PDF to HTML in C#.NET. How to Use C# .NET XDoc.PDF SDK to Convert PDF to HTML Webpage in C# .NET Program.
Xnumbers Tutorial
215
ODE Multi-Steps
Another very popular method for integrating ordinary differential equations adopts the multi-
step Adams’ formulas. Even if a little formally complicated, they are very fast, and adapted to
build a large family of ODE integration methods
The multi-step Adams’ formulas can be generally written as:
(
)
1
0
1
2
1
1
1
1
'
...
'
'
'
− +
=
− +
+
+
⋅ +
+
=
+
=
i N
i
N
i
N
i
N
k
i k
N k
i
i
y
y
y
M
h
y
y
M
h
y
y
β
β
β
β
(
)
2
0
2
1
1
1
2
1
'
' ...
'
'
− +
+
=
− +
+
⋅ +
+
+
=
+
=
i N
i
N
i
N
i
N
k
i k
N k
i
i
y
y
y
M
h
y
y
M
h
y
y
β
β
β
β
where
( , , )
'
i
i
i
f t t y
y =
t t h h i
i
= + + ⋅
=
0
The first formula generates the explicit formulas – also called predictor formulas.
The second formula generates the implicit formulas – also called corrector formulas.
The number N is the order of the formula. A formula of N order requires N starting steps. Of
course, formulas with high N are more accurate.
For N = 1 we get the popular Euler integration formulas
i
i
i
y h h y
y
'
1
+ ⋅
=
+
Euler’s predictor (1 step)
(
)
i
i
i
i
y
y
h
y
y
'
'
2
1
1
+
+ ⋅
=
+
+
Trapezoid formula corrector (1 step)
Theirs errors are given by
2 (2)
2
1
h y
e≈
Error predictor 1
st
order
3 (3)
12
1
h y
e≈−
Error corrector 2
st
order
For N = 4 we get the popular Adams-Bashfort-Moulton predictor-corrector formulas
(
)
3
2
1
1
37 ' ' 9 9 '
55 ' ' 59 9 '
24
+
+
+
=
i
i
i
i
i
i
y
y
y
y
h
y
y
Predictor (4 step)
(
)
2
1
1
1
'
19 ' ' 5 5 '
9 '
24
+
+
+
+
+
=
i
i
i
i
i
i
y
y
y
y
h
y
y
Corrector (4 step)
Theirs errors are given by
5 (5)
720
251
h y
e≈
Error predictor 4
th
order
5 (5)
720
19
h y
e≈−
Error corrector 4
th
order
There are a large set of predictor-corrector formulas
Xnumbers Tutorial
216
Multi-step coefficents tables
The following tables list the coefficents for the Adams’ predictor-corrector formulas up to the 9
th
order and relative errors
Multi-step Predictor coefficients
Ord.  ⇒
2
5
6
7
8
10
2
12  24
720
1440
60480
120960
3628800
7257600
β 0
-1
-9
251
-475
19087
-36799
1070017
-2082753
β 1
3 -16  37  -1274
2877
-134472
295767
-9664106
20884811
β 2
23  -59  2616
-7298
407139
-1041723
38833486
-94307320
β 3
55  -2774
9982
-688256
2102243
-91172642
252618224
β 4
1901
-7923
705549
-2664477
137968480  -444772162
β 5
4277
-447288
2183877
-139855262
538363838
β 6
198721
-1152169
95476786  -454661776
β 7
434241
-43125206
265932680
β 8
14097247  -104995189
β 9
30277247
Multi-step Corrector coefficients
Ord. ⇒
2
5
6
7
8
10
2
12  24
720
1440
60480
120960
3628800
7257600
β 0
1
-1
-19
27
-863
1375
-33953
57281
β 1
1
-5
106
-173
6312
-11351
312874
-583435
β 2
19  -264
482
-20211
41499
-1291214
2687864
β 3
646
-798
37504
-88547
3146338
-7394032
β 4
251
1427
-46461
123133
-5033120
13510082
β 5
475
65112
-121797
5595358
-17283646
β 6
19087
139849
-4604594
16002320
β 7
36799
4467094
-11271304
β 8
1070017
9449717
β 9
2082753
Error coefficient
The general error is  e  -kh
Ord+1
y
(Ord+1)
where k is given by the following table
Ord.
10
predictor
0.5
0.41667  0.375  0.34861 0.32986 0.31559 0.30422 0.29487  0.28698  0.28019
corrector
-0.0833  -0.0417 -0.0264 -0.0188 -0.0143 -0.0114 -0.0094  -0.0079  -0.0068
The predictor-corrector algorithm
Usually the multi-step formulas, implicit and explicit, are used together to build a Predictor-
Corrector algorithm . Here is how to build the 2
nd
order PEC algorithm (Prediction-Evaluation-
Correction).
It uses the Euler’s formula as predictor and the trapezoidal formula as corrector
Prediction
Evaluation
Correction
y
p1
= y
0
+h f(t
0
, y
0
)
f(t
1
, y
p1
)
y
1
= y
0
+h/2 [f(t
0
, y
0
) +f(t
1
, y
p1
)]
y
p2
= y
1
+h f(t
1
, y
p1
)
f(t
2
, y
p2
)
y
2
= y
1
+h/2 [f(t
1
, y
1
) +f(t
2
, y
p2
)]
y
p3
=….
….
….
The value y
1
can be reused to evaluate again the function f(t
1
, y
1
), that can be used in the
corrector formula to obtain a more accurate value for y
1
Xnumbers Tutorial
217
If we indicate the first value obtained by the corrector with  y
1
(1)
and the second value with y
1
(2)
we can arrange a new following schema
Prediction
Evaluation
Correction
Evaluation
Correction
y
p1

f(t
1
, y
p1
)
y
1
(1)

f(t
1
, y
1
(1)

y
1
(2)
This is the so called PECEC or P(EC)
2
schema.
The group EC can also be repeated m-times or even iterated still the convergence. In these
cases we have the schemas P(EC)
and  P(EC)
respectively.
Note that, for m >> 1 the final accuracy depends mainly by the corrector.
Let's come back to the PEC schema.
We note that, at the step, we use the value f(t
1
, y
p1
) to predict the new value y
p2
We could increase the accuracy if we take the better approximation f(t
1
, y
1
).
The new schema becomes:
Prediction
Evaluation
Correction
Evaluation
y
p1

f(t
1
, y
p1

y
1

f(t
1
, y
1

This schema is called PECE and it is used very often being a reasonable compromise between
the accuracy and the computation effort.
Using different schemas with different predictor-corrector formulas we can build a wide set of
algorithms for the ODE integration. Of course they are not equivalent at all. Same of them have
a high accuracy, others show a better efficiency and others have a better stability. This last
characteristic may be very important for long integration intervals. In fact, the most algorithms,
especially those with higher order, become unstable when the integration step grows over a
limit. Algorithms that are stable for any integration step (so called A-stable algorithms) are
much appreciated, but unfortunately they require implicit formulas that, generally, can be
solved only by iterative algorithms.
The 2
nd
order trapezoid formula is one of the most popular A-stable formula.
Xnumbers Tutorial
218
Predictor- Corrector
= ODE_PRE(yn, f, h)
= ODE_COR(yn, fp, f, h)
These functions perform the integration of the ordinary differential equations with the popular
0
0
,  ( ( )
(, )
y
yt
f t t y
y
=
=
The first function returns the predictor value y
n+1,p
while the second function returns the
corrector y
n+1
.
The parameter “yn” is the last point of the function y(t).
The parameter “f” is a vector containing the last N values of the derivative of y(t). That are the
last N-1 values of the corrector.
The parameter “fp”, only for the corrector, is the best approximation of the derivative of y(t) at
the step n+1. Usually it is provided by a predictor formula
The parameter “h” sets the integration step
PECE algorithm of 2
nd
order
Now we see how arrange a PECE algorithm of 2
nd
order to solve a the following differential
problem.
,   (0) ) 2
'
2
=
=−
y
xy
y
Let's set in a cell that we like the integration step “h” and then the heading of the data table. We
set separate columns for predictor and corrector values
Build the first row.
Begin to insert the starting
values (x
0
, y
0
) in the cells A6
and B6 respectively, and the
formula evaluations of f(x,y) in
the cell C6 and E6. The
corrector value is set equal to
the starting value B6
The second row is a bit more
complicated. Let’s see.
Select the first row A6:E6 and
drag it down one row. This will
copy the formula for fp and fc
Insert in the cell A7 the
increment formula
x
i+1
= x
i
+h
Now we have to add the predictor and corrector function