﻿

# c# parse pdf to xml : Add metadata to pdf programmatically SDK software service wpf winforms html dnn xnumbers-tutorial122-part876

Xnumbers Tutorial
220
PECE algorithm of 4
th
order
Now we solve the above differential equation with a 4
th
order PECE algorithm using the 4 steps
,   (0) ) 2
'
2
=
=−
y
xy
y
To start this algorithm needs 4 steps. A good set of starting steps is:
y(x)
0.2
1.9230769231
0.4
1.7241379310
0.6
1.4705882353
The first 4 rows of the PECE algorithm are built as shown in the previous example.
The first 4 values of yp and yc are
the same.
Now let's insert in the cell B10
=ODE_PRE(yn, f, h)
where “yn” is the last value of
y(x), D9 in that case.
“f” is a vector of the the last four
values of f(x,y), E6:E9 in this
case.
“h” is the step B3.
Insert in the cell D10
=ODE_COR(yn, fp, f, h)
where “yn” is the last value of
y(x). In that case D9.
“f” is a vector of the last 3 values
of f(x,y), E7:E9.
“fp” is the predicted value of
f(x,y), C10 in this case.
“h” is the step B3
T Now the setting of the PECE
algorithm of 4
th
order is completed.
Select the 5
th
row and drag it down in
order to calculate the steps you want.
he predictor-corrector error curves are
shown in the following graph
-0.01
-0.005
0
0.005
0.01
0.015
0
0.5
1
1.5
2
2.5
3
ep
4th PECE
We do not investigate here how to get the extra 3 values (they
could comes by Runge-Kutta method or by Taylor series
approximation). The only thing that we have to point out is
that these values must be sufficiently accurate in order to
preserve the global accuracy of the algorithm
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
Xnumbers Tutorial
221
In order to compare the accuracy of the solutions of the this algorithm with the 2
nd
order
algorithm of the previous example let's draw both the error curves in a same graph
-0.006
-0.004
-0.002
0
0.002
0.004
0.006
0.008
0.01
0
0.5
1
1.5
2
2.5
3
4th PECE
2nd PECE
As we can see, the 4
th
order algorithm is evidently more accurated then the 2
nd
order. On the
other hand, the first one requires an extra work for providing 3 starting points.
ODE Predictor-Corrector 4
= ODE_PC4(Equations, VarInit, Step, [Par, …])
This function integrates numerically an ordinary differential equation of 1st order or differential
system of 1st order, with the 4th order P(EC)^2 schema predictor-corrector of Adams-
Bashforth-Moulton.
The input arguments are identical to the function ODE_RK4
The function can return all the solution points in an array. Before inserting the function, select
as many rows that you want to fill. For example if you select a (p x n+1) array , the function will
return p solution points of a n x n differential system.
Let’s see how it works with an example
= −
=
w v v w
w
v v
v v
'
12)
)(
' (1
=−
=
1
(0)
(0) 0
w
v
(FitzHug-Naguno model)
Insert the equations in the cell A2 and A3. Insert the starting point [t0, v0, w0 ] = [0, 0, -1] in the
range A7:C7
Select the range A8:C167 in order to get simultaneously 160 integration points and insert the
function ODE_PC4 by the CTRL+SHIFT+ENTER sequence.
VB.NET PowerPoint: Read, Edit and Process PPTX File
How to convert PowerPoint to PDF, render PowerPoint to SVG and effective VB.NET solution to add desired watermark VB.NET PowerPoint: Read & Edit PPTX Metadata,
C# Create PDF Library SDK to convert PDF from other file formats
Xnumbers Tutorial
222
The following plot shows the obtained functions v(t) and w(t) for 0 <= t <= 8
The 4
th
order P(EC)
2
schema predictor-corrector of Adams-Bashforth-Moulton is detailed in the
following flow-graph
The initial extra 3 steps, necessary for starting the predictor-corrector algorithm, are calculated
by the function ODE_RK4 requiring 4 function evaluations for step. After that, the PC schema
require only 2 function evaluations for step. Conventionally we measure the effort (EF) counting
the number of function evaluation for n steps.
EF = 12+2*n  (for PC schema),    EF = 4*n  (for RK algorithm)
For n >> 1 the effort reduction of the P(EC)
2
Compute the first 3
steps by the 4
th
order
Runge-Kutta algorithm
Starting
x
0
, y
0
, h
Starting points
x
0
, y
0
x
1
, y
1
x
2
, y
2
x
3
, y
3
Compute the next step
by 4
th
order by the 4
th
order Predictor
Evaluate the function
f
p
= f (x
4
, y
p
y
p
Refine the step by the
4
th
order Corrector
f
p
Evaluate the function
f
c
= f (x
4
, y
c
y
c
Refine the step by the
4
th
order Corrector
f
c
y
4
right-shift the
points and repeat
x
1
, y
1
x
2
, y
2
x
3
, y
3
x
4
, y
4
P (EC)
2
Predictor-Corrector
schema of 4
th
order
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Document and metadata. All object data. Flatten visible layers. C#.NET DLLs: Compress PDF Document. Add necessary references: RasterEdge.Imaging.Basic.dll.
C# PDF Text Search Library: search text inside PDF file in C#.net
Ability to search and replace PDF text in ASP.NET programmatically. C#.NET PDF DLLs for Finding Text in PDF Document. Add necessary references:
Xnumbers Tutorial
223
ODE Implicit Predictor-Corrector
ODE_PC2I(Equations, VarInit, Step, [Par, …])
This function integrates numerically an ordinary differential equation of 1st order or a differential
system of 1st order, with the 2th order implicit Predictor-Corrector method. Thanks to its large
stability it is suitable for solving "stiff" problems.
The input arguments are identical to the function ODE_RK4
The function can return all the solution points in an array. Before inserting the function, select
as many rows that you want to fill. For example if you select a (p x n+1) array , the function will
return p solution points of a n x n differential system.
This function uses the 1
st
order Euler formula as predictor and the 2
nd
order trapezoidal formula
as the corrector.
( , , )
1
n
n
n
n
h f f t t y
y
y
+ ⋅
+
=
+
Predictor (Euler formula)
(
)
)
( ,
( , , )
/2
1
1
1
+
+
+
+
+
=
n
n
n
n
n
n
y
f t
f t t y
h
y
y
Corrector (Trapezoidal formula)
The second non-linear equation is started with the predicted value and then solved respect to
the variable yn+1 till the convergence.
This algorithm, despite its low order, exibits a large stability and, thus, it is suitable for solving
"stiff" problems
Let’s see how it works with an example
Solve numerically the following 2
nd
order Cauchy’s problem for  1 ≤ x ≤ 7 and k = 100
0
( 1)
2
2
=
+
+ +
ky
dx
dy
k
dx
d y

0.5
(1) 1  ,   '(1)
=−
=
y
y
First of all, we transform the problem in a 1st order differential equations system taking
'
,
2
1
y
y y
y
=
=
+
=−
=
2
1
2
2
1
( 1)
'
'
y
k
ky
y
y
y
=−
=
0.5
(1)
(1) 1
2
1
y
y
A possible arrangement may be the following
We have written in cell A2 and A3 the
differential equations
In cell D3 we have inserted the k parameter
and in the cell E3 the h step
In the range A8:C8 we have put the starting
values for x and y1 and y2.
note that we have also added the labels "k" ,
"x", "y1", "y2" just above theirs values.
Labels
are necessary for the correct
assignment in the symbolic equation.
Now select the range A9:C40 and insert the
function ODE_PC2I passing its arguments
The scatter plot of the 30 points (x, y1)  is shown in the following graph
.NET PDF Document Viewing, Annotation, Conversion & Processing
Extract images from PDF file. Read PDF metadata. Search text content inside PDF. Edit, remove images from PDF. Add, edit, delete links. Form Process.
VB.NET PDF - How to Add Barcode on PDF Page
text in PDF, C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET VB.NET PDF barcode creator add-on, which combines the PDF reading add-on with
Xnumbers Tutorial
224
Compare the approximate solution (dotted line) with the exact one (pink continue line)
The fitting, even with only 30 points, looks good. If we try to solve this problem with the 4
th
order
Runge-Kutta algorithm we have to choose a step less then  0.025 for avoiding the instability
and, thus, we need more than 250 points for reaching the same integration interval.
The Lotcka-Volterra Model
The following two-dimensional differential system
+
=−
=
a y y a a xy
dt
dy
ax a a xy
dt
dx
4
3
2
1
is called the Lockta-Volterra model or also "prey-predator" model. It is very useful in biology,
chemistry and many other fields. The numerical integration of this ODE family requires a stable
algorithm otherwise the result are not acceptable
The function x(t) and y(t), depending from the time, may represent different things. In a
biological models, for example, they simulate respectively the population of pray (rabbits) and
predator (foxes) at time t. The proportionality constants  a
, a
, a
, and a
4
are positive. It is
. Let's see with a practical example
=− +
=
xy
x
y
xy
x
x
2
' 5
2
' 2
=
=
(0) 1
(0) 1
y
x
Insert the equation defintion in the cells
A1 and A2 , the step in the cell C2 = 0.02
and  the starting values [0, 1, 1]  in the
range A6:C6
Do not miss the labels "t", "x", "y"
Then, select the range A7:C407 and
insert the function ODE_PC2I with the
ctrl-shift-enter keys sequence
The following graph at the left shows the result of the function x(t) and y(t). By performing the
scatter plot of x-y variable we have the steady-state plot at the right. It shows a closed loop, a
limit cycle.
VB.NET PDF - Convert CSV to PDF
pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET VB.NET Demo Code for Converting RTF to PDF. Add necessary references
VB.NET PDF Text Search Library: search text inside PDF file in vb.
Ability to search and replace PDF text programmatically in VB.NET. Our VB.NET PDF Document Add-On enables you to search for text in target PDF document
Xnumbers Tutorial
225
0
1
2
3
4
5
6
0
2
4
6
8
10
12
x
y
0
1
2
3
0
2
4
6
We can easily change the zoom of the graph by changing the integration step h
Note that the oscillations are quite deep. The above system has two equilibrium points where
dx/dt = 0 and dy/dt = 0 simultaneously, that can be found solving the algebric system
=
+
=
0
2
5
0
2
2
xy
x
xy
x

=
=
0
0
y
x
=
=
1
2.5
y
x
The non trivial solutions means that if the initial populations start from x
0
= 2.5 and y
0
= 1, then
there will be no oscillation and the population fraction x/y will be always constant in the time.
On the contrary, the populations become progressively to oscillate when the initial populations
are different from the equilibrium point [2.5 , 1].
Here same examples:
x(0) = 2.45 and y(0) = 1
x(0) = 2.4 and y(0) = 1
0
0.5
1
1.5
2
2.5
3
0
2
4
6
8
10
12
x
y
0
0.5
1
1.5
2
2.5
3
0
2
4
6
8
10
12
x
y
VB.NET Create PDF Library SDK to convert PDF from other file
Load PDF from stream programmatically in VB.NET. VB.NET: DLLs for Creating PDF. Add necessary references: RasterEdge.Imaging.Basic.dll.
C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
without any dependency on Adobe products; Add PDF viewing and Support navigating, zooming, annotating and saving PDF in C# WinForms project programmatically;
Xnumbers Tutorial
226
Differential Systems
OD Linear System
= ODE_SYSL(A, y0, step, [b]))
This function integrates numerically a system of ordinary linear differential equations of 1st
order with constant coefficients, starting from an initial value. For example, the general form of
a 3x3 linear differential system is:
+
+
+
=
+
+
+
=
+
+
+
=
3
1
33
1
32
1
31
3
2
1
23
1
22
1
21
2
1
1
13
1
12
1
11
1
'
'
'
a y y a a y y a a y y b
y
a y y a a y y a a y y b
y
a y y a a y y a a y y b
y
where all the coefficients aij and bi are constant.
Such system can be put in the following handy matrix form.
[ ]
]
A y y b
y
⋅ +
'=
where
=
33
32
31
23
22
21
13
12
11
a
a
a
a
a
a
a
a
a
A
[
]
T
y y y y
y
3
2
1
,  ,
=
[
]
T
b b b b
b
3
2
1
,  ,
and with the initial condition:
[
]
T
y
y
y
y
(0)
3
(0)
2
(0)
1
0
,
,
=
The constant term b is optional. If omitted the system is called "homogeneous"
This function uses the exponential expansion method that, for this kind of differential systems,
is both accurate and efficient.
The function returns an (n x m ) array containing all the nodes of the integration: m is the
number of equations; n is the numbers of the nodes. The function automatically sets n equal to
the rows of the range that you have selected before inserting it.
Let's see how it works practically
Solve the following homogeneous differential system with constant coefficients
[ ]
]
A y
y
'=
'
where
=
1
2
2
16
6
16
19
10
20
A
[
]
T
y
1 , 0 , 0
0
=
For 0 ≤ x ≤ 4 and h = 0.05
The numerical solution can be arranged as in the following worksheet
The initial values are in the first row (range B7:D7). The column "x" was added only for clarity
but it is not indispensable at all.  Select the range B8:D87, than insert the function ODE_SYSL
giving the suitable parameters A, y
0
, h. Then press CTRL+SHIFT+ENTER
Xnumbers Tutorial
227
All the 240 cells will be filled with the nodal solutions of y1, y2, y3.
The scale can be esily arranged simply by changing the parameter h
-1
-0.5
0
0.5
1
1.5
0
0.5
1
1.5
2
2.5
3
3.5
4
y1
y2
y3
-1
-0.5
0
0.5
1
1.5
0
0.25
0.5
0.75
1
y1
y2
y3
h = 0.05
h = 0.012
Compare with the exact solutions
+
=−
=
+
+
=−
x
x
x
x
x
x
x
e
e
y
e
e
y
e
e
e
y
2
3
10
2
2
10
2
1
2
2
2
2
2
2
High order linear ODE
The function ODE_SYSL can also be used to solve high order linear ODE with constant
coefficients, that in general can be written as
a y y ay y a a y y b
a y
y
n
n
n
=
+
+
+
+
0
1
2
( 1)
1
( )
'
''
....
with the initial conditions
0
0
( )
y
y x
=
'
'( )
0
0
y
y x
=
''
''( )
0
0
y
y x
=
, ,
( 1)
0
0
( 1)
( )
=
n
n
y
x
y
As known, such ODE can be transformed into a linear differential system of 1
st
order.
+
=
b
y
y
y
y
a
a
a
a
y
y
y
y
n
n
n
n
n
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
'
'
'
'
1
2
1
1
2
1
0
1
2
1
L
L
M
M
K
O
K
K
K
M
M
L
having the initial conditions
[
]
[
]
T
n
T
n
y
y
y
y
y
y
y
y
y
(0)
(0) , '(0) , ''(0) ,
(0) , (0) , (0) , (0)
1
3
2
1
0
=
=
Xnumbers Tutorial
228
For example assume tha you have to calculate the solution of following IVP problem:
0
''' 5 5 '' ' 9 9 ' ' 5
=
+
+
+
y
y
y
y
, with
(0 )=2
y
,
3
'(0)
=−
=
y
''(0) 4
=
y
Introducing the axiliary variables  y
1
= y  ,  y
2
= y'  ,  y
3
= y'' , we get the following equivalent
differential system
=
3
2
1
3
2
1
5
9
5
1
0
0
0
1
0
'
'
'
y
y
y
y
y
y
with
=
=−
=
(0) 4
3
(0)
(0) 2
3
2
1
y
y
y
Observe that the last row of the matrix contains the coefficients of the given ODE with the
opposite sign; besides of that, it has only all "1" in the upper subdiagonal.
Insert the initial values in the first row (range B10:D10). The column "x" was added only for
clarity but it is not indispensable at all.Select the range B11:D40, where you want to otput the
results and insert the function ODE_SYSL giving the suitable parameters: A, y
0
, h.
Then press CTRL+SHIFT+ENTER
The selected area will be filled with the numerical solution of the given system
0
0.5
1
1.5
2
2.5
0
1
2
3
4
5
6
y1
Exact
Observe that the solution y
1
(x) is also the solution y(x) of the given ODE. Compare with the
exact solution
x
e
e
y x
x
x
cos
( )
2
+
=
Of course the above differential system can be also solved with other methods.
In order to show the accuracy of the
exponential method we put in a graph the
average relative error
e(x) = |yi - y(xi)| / | y(xi)| ,
obtained in the same condition, with 3
different methods: Exponential, Euler,
and Runge-Kutta 4.
The graph is eloquent. The error of the
Exponetial method is several times more
accurate then the others
1E-16
1E-14
1E-12
1E-10
1E-08
1E-06
0.0001
0.01
1
100
0
1
2
3
4
5
6
Euler
RK 4
Expo
Clearly it takes advantages using dedicated methods for linear differential equations.
Another important feature of the exponential method is its high stability
Let' s try the following test stiff system
=−
=
2
1
2
2
1
21
20
'
y
y
y
y
y
=−
=
6770293
0.
(0.4)
6706555
(0.4)    0.
2
1
y
y