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 
Pdf metadata editor - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
add metadata to pdf programmatically; view pdf metadata
Pdf metadata editor - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
search pdf metadata; pdf keywords 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.
metadata in pdf documents; analyze pdf metadata
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
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.
pdf metadata viewer online; change pdf metadata creation date
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
pdf metadata online; read pdf metadata online
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.
remove metadata from pdf acrobat; get 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.
pdf remove metadata; remove metadata from pdf
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.
pdf metadata reader; remove metadata from pdf online
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
delete metadata from pdf; view pdf metadata in explorer
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.
pdf xmp metadata editor; remove pdf metadata
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 
multi-step predictor-corrector Adams’ formulas 
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  
Xnumbers Tutorial 
219 
Insert in the cell B7 
=ODE_PRE(yn, f, h) 
“yn” is the last value of y(x). 
contained in D6. “f” is the last 
value of f(x,y) contained in E6. 
“h” is the step B3. 
Insert in the cell D7 
=ODE_COR(yn, fp, f, h) 
Where “yn” is the last value of 
y(x). In that case is D6. “f” is 
the last value of f(x,y), E6. 
“fp” is the predicted. value of 
f(x,y), C7 in this case.  
“h” is the constan step. 
Now the setting of the 
PECE algorithm of 2
nd
order 
is completed. Select the 
second row A7:E7 and drag 
it down in order to calculate 
the steps that you want. 
The y
P
and y
C
values can be compared with the ones of the exact solution. 
2
1
2
x
y
+
=
The differences:  
( )
( )
i
ic
ic
i
ip
ip
y x
y
d
y x
y
d
=
=
are plotted in the graph at the right 
We note clearly the characteristic 
behavior of the predictor-corrector 
algorithm.  
-0.04
-0.02
0
0.02
0.04
0.06
0.08
0.1
0
1
2
3
err predictor
2nd PECE
The second formula refines the approximation of the first one. 
The final accuracy of PECE algorithm is practically the accuracy of the corrector 
Documents you may be interested
Documents you may be interested