﻿

# c# parse pdf data : Batch update pdf metadata SDK software service wpf winforms windows dnn xnumbers-tutorial19-part889

Xnumbers Tutorial
90
Polynomial Solving
=PolySolve (Polynomial)
This function returns the roots of a given real polynomial using the Jenkins-Traub algorithm.
n
n
a x
ax a a x
a
...
2
2
1
0
+
+
+
The arguments can be a monovariable polynomial strings like "X^2+3x+2" or a vector of
coefficients
This function returns an (n x 2) array.
It uses the same algorithm of the RootfinderJT macro. It works fine with low-moderate degree
polynomials, typically up to 10
th
degree. For higher degree it is more convenient to use the
macro.
Example. Find all roots of the given 10 degree polynomial
Integer polynomial
=PolyInt(Polynomial)
This function returns a polynomial with integer coefficients having the same roots of the given
polynomial. This transformation is also know as "denormalization" and can be useful when the
coefficients of the normalized polynomial are decimal.
Example: Given thefollowing polynomial:
-0.44+2.82x-3.3x^2+x^3
To eliminate decimal coefficients we denormalize the polynomial
-22+141x-165x^2+50x^3 = PolyInt("-0.44+2.82x-3.3x^2+x^3")
Take care with the denormalization because the coefficients became larger and the
computation may lose accuracy. See the example below
The following polynomials have the same root  x = 11/10:
Pb(x)  = -2.4024+10.1524x-17.1x^2+14.35x^3-6x^4+x^5
Pa(x)  = -6006+25381x-42750x^2+35875x^3-15000x^4+2500x^5
Batch update pdf metadata - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
Xnumbers Tutorial
91
If we compute both polynomials for x = 11/10, with standard double precision we get:
Pa(1.1) = -2.664E-15
Pb(1.1) =  4.547E-12
As we can see, the first value, obtained by the decimal polynomial, is 1000 times more precise
then the one obtained by the integer polynomial
Polynomial System of 2
nd
degree
=SYSPOLY2(Poly1, Poly2)
Solves a system of two 2
nd
degree polynomials.
=
+
+
+
+
+
=
+
+
+
+
+
0
0
20
25
24
2
23
22
2
21
10
15
14
2
13
12
2
11
a x x a a y y a
a y
a xy
a x
a x x a a y y a
a y
a xy
a x
It returns a (4 x 4) array containing the four solutions.
The parameters "Poly1" and "Poly2" can be coefficients vectors or polynomials strings
The coefficients must be passed in the same order of the above equation.
Polynomial strings, on the contrary, can be written in any order. Examples of 2
nd
degree x-y
polynomials strings are:
13+x+y^2-y+x^2+2x*y
x^2 + y^2 - 10
4x^2+8x*y+y^2+2x-2
Note: the product symbol “*” can be omitted except for the x*y mixed term
A 2
nd
degree system can have up to four solutions. It can also have no solution (impossible) or
even infinite solutions (undetermined). The function returns  #N/D if a solution is missing
Example: solve the following system
=
+
+ − − =
+
+
0
10
0
2
2
2
2
2
y
x
x y
y
xy
x
Using SYSPOLY2 the solutions – real or
complex – can be obtained in a very quick
way
Real solutions represent the intersection
point of the curve poly1 and poly2.
They are: P
1
= (−3 , 1)  ,  P
2
= (−1 , 3)
The system has also two complex solutions that have not a geometrical representation
P
3
= (2.5 +j 1.118034 , −2.5 +j 1.118034)   , P
4
= (2.5 −j 1.118034 , −2.5 −j 1.118034)
The degree of the given system is 4
Example: solve the following system
+ + − − =
+
− =
1 0
2
1 0
2
x y
y
xy
xy
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert, Delete, Update Field. Professional .NET PDF converter component for batch conversion.
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
Data. Data: Auto Fill-in Field Data. Field: Insert, Delete, Update Field. Best and free VB.NET PDF to jpeg converter SDK for NET components to batch convert adobe
Xnumbers Tutorial
92
The apparent degree of the system is 2 x 2 = 4
As we can see, the function SYSPOLY2 returns only three solutions: one real and two
complex.
P
1
= (−1, −1) ,     P
2
= (−j , j ) ,       P
3
= = ( j , −j )
Thus, the actual system degree is 3.
Bivariate Polynomial
=POLYN2(Polynomial, x, y, [DgtMax])
Returns the value - real or complex - of a bivariate polynomial P(x, y).
The parameter "Polynomial" is an expression strings. Valid examples are:
13+x+y^2-y+x^2+2x*y , x^2+y^2-10 , 8x*y+y^2+2x-2 , 10+4x^6+x^2*y^2
Note: the product symbol “*” can be omitted except for the x*y mixed terms
The third optional parameter DgtMax sets the multiprecision. If missing, the computation is
performed in faster double precision.
The variables x , y can be real or complex. The function can return real or complex numbers.
Select two cells if you want to see the imaginary part and give the CTRL+SHIFT+ENTER
sequence
Example: Compute the polynomial
x y
y
xy
P x
+ −
+
+
=
2
2
2
at the point
x = (2.5 + j 1.11803398874989)
y = (−2.5 + j 1.11803398874989)
Verify that it is a good approximation of the
polynomial root
VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.
NET control to batch convert PDF documents to Tiff format in Visual Basic. Qualified Tiff files are exported with high resolution in VB.NET.
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
project. Professional .NET library supports batch conversion in VB.NET. .NET control to export Word from multiple PDF files in VB.
Xnumbers Tutorial
93
Partial fraction decomposition
Partial fraction decomposition is the process of rewriting a rational expression as the sum of a
quotient polynomial plus partial fractions..
+
=
+
=
i
F
Q x
Dx
R x
Q x
Dx
N x
( )
( )
( )
( )
( )
( )
where each F
i
is a fractions of the form
m
m
x p
A
x p
A
x p
A
)
(
...
)
(
2
2
1
+
+
+
+
+
or
m
m
m
c
bx
x
B x x C
c
bx
x
Bx C
c
bx
x
Bx C
)
(
...
)
(
2
2
2
2
2
2
1
1
+
+
+
+
+
+
+
+
+
+
+
being m is the multiplicity of the correspondent root
The denominators D(x) is determined from the poles of the fractions itself. In fact, p is a real
root of D(x), while the quadratic factor can be obtained from the complex root using the
following relation
2
2
,
2
β
α
α
β
α
+
=
=−
±
c
b
i
(1)
Many calculators and computer algebra systems, are able to factor polynomials and split
rational functions into partial fractions. A solution can also be arranged in Excel with the aid of
Xnumbers functions. Let's see
Real single poles. Find the fraction decomposition of the following rational fraction
54
105
65
15
1794
1433
276
3
( )
( )
2
3
4
2
3
+
+
+
+
=
x
x
x
x
x
x
x
D x
N x
First of all, we try to find the roots of the denominator using, for example, the function
polysolve. We find that the roots are  p
i
= [1, 2, 3, 9]. They are all real with unitary multiplicity,
therefore the fraction expansion will be
4
4
3
3
2
2
1
1
( )
( )
x p
A
x p
A
x p
A
x p
A
Dx
N x
+
+
+
+
+
+
+
=
where p
i
are the roots and A
i
are unknown
Several methods exist for finding the fraction coefficients A
. One of the most straight and
elegant is due to Heaviside that, for a real single root, simply states:
'( )
( )
i
i
i
D p
N p
A =
where D'(x) is the derivative of D(x)
A possible arrangement in Excel is the following
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Batch merge PDF documents in Visual Basic .NET class program. Merge two or several separate PDF files together and into one PDF document in VB.NET.
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Studio .NET project. Powerful .NET control to batch convert PDF documents to tiff format in Visual C# .NET program. Free library are
Xnumbers Tutorial
94
Therefore, the searched decomposition is
9
40
3
5
2
8
1
40
54
105
65
15
1794
1433
276
3
2
3
4
2
3
+
+
+
+
+
+
=−
+
+
+
+
x
x
x
x
x
x
x
x
x
x
x
You can prove yourself that this expression is an identity, thus always true for every x, except
the poles.
Complex single poles. Find the fraction decomposition of the following rational fraction
650
42
29
2
123
52
21
( )
( )
2
3
4
2
3
+
+
+
=
x
x
x
x
x
x
x
D x
N x
First of all, we try to find the roots of the denominator using, for example, the function
polysolve. We find that the roots are
{ 5 5 2  ,  4 4 3 }
i
i
p
− ±
±
=
. They are complex with unitary
multiplicity, therefore the fraction expansion will be
2
2
2
2
2
1
1
2
1
1
( )
( )
bx c
x
Bx C
bx c
x
Bx C
D x
N x
+
+
+
+
+
+
+
=
where b
i
and c
i
, calculated by the (1), are
25
,
26  ,
10  ,
2
2
1
1
=
=
=
=−
=
c
b
c
b
The coefficients B
i
and C
i
are unknown. For solving them we used here the so called
undetermined coefficients method
Renamed, for simplicity:
2
2
2
2
1
1
2
1
( )
,
( )
bx c
x
D x
bx c
x
D x
+
+
=
+
+
=
The fraction expansion may be rewritten as
( )
( )
( )
( )
( )
( )
2
2
2
2
1
1
1
1
D x
C
D x
B x
D x
C
x
D x
B x
D x
N x
+
+
+
=
Giving 4 different values to x, the above relation provides 4 linear equations with the unknown
B
1
, C
1
, B
2
, C
2
, that can be easily solved. We can choose any value that we want; for example x
i
= { 0, 1, 2, 3 } and we get the following linear system
1/26
1/25
B1
123/650
1/17    1/17    1/34    1/34
C1
9/34
1/5     1/10    2/45    1/45
B2
3/10
3/5
1/5     3/58    1/58
C2
63/290
Solving this linear system by any method that we like, for examply by SYSLIN , we get the
solution
[B
1
, C
1
, B
2
, C
2
] = [-2 , 7 , 1 , -2]
Substituting these values, we have finally the fraction decomposition
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
Powerful components for batch converting PDF documents in C#.NET program. Convert PDF to multiple MS Word formats such as .doc and .docx.
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
NET components for batch combining PDF documents in C#.NET class. Powerful library dlls for mering PDF in both C#.NET WinForms and ASP.NET WebForms.
Xnumbers Tutorial
95
25
8
2
26
10
7
2
650
42
29
2
123
52
21
2
2
2
3
4
2
3
+
+
+
+
+
=
+
+
+
x
x
x
x
x
x
x
x
x
x
x
x
x
You can prove yourself that this expression is always valid for any compatible value of x
A possible arrangement for solving this
problem In Excel is a bit more
complicated then the previous one.
Let's see. First of all we compute the
roots with the function Polysolve;  then
we compute the trinomials D1(x) and
D2(x) by the formulas (1)
Then we compute the polynomials N, D, D1, D2 for each values of x by the function polyn. We
get the 4x5 table visible at the right
From this table we get the complete system matrix in the following way.
The 4 x 4 linear system can be solved by any method that you want. For example by matrix
inversion as shown in the example.
Xnumbers Tutorial
96
Orthogonal Polynomials
Orthogonal polynomials are a class of polynomials following the rule:
=
b
a
n
mn
n
m
c
wx p p x x p p x x dx
δ
( ) ) ( ( ) ) ( ( )
Where m and n are the degrees of the polynomials, w(x) is the weighting function, and c(n) is
the weight.
mn
δ
is the Kronecker's delta function being 1 if n = m and 0 otherwise.
The following table synthesizes the interval [a, b], the w(x) functions and the relative weigh c(n)
for each polynomials family
polynomial
interval  w(x)
As we can see we have insert Poly_Legendre  as a standard function, because in this
exercise we do not need the derivative information
Example.  Find the greatest zero of the 5
th
degree Legendre polynomial
We can use the Newton-Raphson method,
starting from x = 1, as shown in the
worksheet arrangement.
Both polynomial and derivative are obtained
from the Poly_Legendre simply selecting
the range B5:C5 and pasting the function as
array with CTRL+SHIFT+ENTER sequence.
The other cells are filled simply by dragging
down the range B5:C5
1
Many thanks to Luis Isaac Ramos Garcia for his great contribution in developing this software
Xnumbers Tutorial
98
Function Poly_ChebychevT(x, [n])
Function Poly_ChebychevU(x, [n])
Evaluate the Chebychev orthogonal polynomial of 1st and 2nd kind
Parameters:
x (real) is the abscissa,
n (integers) is the degree. Default n = 1
Function Poly_Gegenbauer(L, x, [n])
Evaluate the Gegenbauer orthogonal polynomial of 1st and 2nd kind
Parameters:
x (real) is the abscissa,
n (integers) is the degree. Default n = 1
L (real) is the Gegenbauer factor and must be L < 1/2
Function Poly_Hermite(x, [n])
Evaluate the Hermite orthogonal polynomial of 1st and 2nd kind
Parameters:
x (real) is the abscissa,
n (integers) is the degree. Default n = 1
Function Poly_Jacobi(a, b, x, [n])
Evaluate the Jacobi orthogonal polynomial of 1st and 2nd kind
Parameters:
x (real) is the abscissa,
n (integers) is the degree. Default n = 1
a (real) is the power of (1-x) factor of  the weighting function
b (real) is the power of (1+x) factor of  the weighting function
Function Poly_Laguerre(x, [n], [m])
Evaluate the Laguerre orthogonal polynomial of 1st and 2nd kind
Parameters:
x (real) is the abscissa,
n (integers) is the degree. Default n = 1
m (integer) is the number of generalized polynomial. Default m = 0
Function Poly_Legendre(x, [n])
Evaluate the Legendre orthogonal polynomial of 1st and 2nd kind
Parameters:
x (real) is the abscissa,
n (integers) is the degree. Default n = 1