c# parse pdf data : Remove metadata from pdf online SDK software service wpf winforms windows dnn xnumbers-tutorial18-part888

Xnumbers Tutorial 
80 
Note the braces { } in the formula. This indicates that the function return a vector. We must 
select the range before enter the function with "shift+ctrl+enter". 
Polynomial writing 
=PolyWrite(Coefficients, [variable]) 
It returns the polynomial string from its coefficients. 
The first argument may be a (1 x n) vector  or an (2 x n) array. In the last case, the first row 
indicates the coefficient position and the second row contains the correspondent coefficient 
value. 
The second optional argument specifies the variable string (default is "x"). 
Note that the second argument "t" must be insert as string, that is between quotes "..." 
Polynomial addition 
=PolyAdd(Poly1, Poly2) 
Performs the addition of two polynomials. The arguments are monovariable polynomial strings. 
Example: 
PolyAdd("1-3x" , "-2-x+x^2")  =  "-1-4x+x^2" . 
Polynomial multiplication 
=PolyMult(Poly1, Poly2) 
Performs the multiplication of two polynomials  The arguments are monovariable polynomial 
strings. 
Example: 
PolyMult("1-3x" , "-2+5x+x^2") =  "-2+11x-14x^2-3x^3" . 
(
)
(
)
3
2
2
3
14
11
2
2 5
1 3
x
x
x
x x
x
=− +
+
− +
Remove metadata from pdf online - 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
analyze pdf metadata; read pdf metadata
Remove metadata from pdf online - 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
bulk edit pdf metadata; pdf metadata editor online
Xnumbers Tutorial 
81 
Polynomial subtraction 
=PolySub(Poly1, Poly2) 
Returns the difference of two polynomials. The arguments are monovariable polynomial strings. 
Example: 
PolySub("1-3x" , "-2+5x+x^2") = "3-8x-x^2" . 
Polynomial division quotient 
=PolyDiv(Poly1, Poly2) 
Returns the quotient of two polynomials. The arguments are monovariable polynomial strings. 
Example: 
PolyDiv("x^4-1" , "x^2-x-1") = "2+x+x^2" . 
In fact: 
(
)
(
)
x
x x
x
x
x
1 3
1 2
1
2
2
4
+ +
+ +
− −
− =
Polynomial division remainder 
=PolyRem(Poly1, Poly2) 
Returns the remainder of two polynomials  
The arguments are monovariable polynomial strings. 
VB.NET PDF remove image library: remove, delete images from PDF in
Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process.
read pdf metadata online; modify pdf metadata
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Ability to remove consecutive pages from PDF file in VB Enable specified pages deleting from PDF in Visual Basic Online source codes for quick evaluation in VB
pdf xmp metadata viewer; remove metadata from pdf
Xnumbers Tutorial 
82 
Hermite’s and Cebychev’s polynomials 
By the basic operations we can build any other polynomial.  
Example: Calculate the first 9
th
degree Cebychev’s and Hermite’s polynomials  
Cebysev’s polynomials can be obtained by 
the iterative formula  
Hermite’s polynomials can be obtained by 
the iterative formula  
x
T
T
=
=
1
0
 ,
1
1
2
+
⋅ −
=
n
n
n
T
x T
T
x
H
H
=
=
1
0
1  ,
1
1
2
2
+
=
n
n
n
n H
x H
H
The two iterative formulas can be arrange as: 
=polysub(PolyMult("2x",T
n
),T
n-1
=polysub(PolyMult("2x",H
n
),PolyMult(2*n,H
n-1
)) 
These functions are inserted from the cell B4 to B9 and C5 to C9 
Legendre’s Polynomials 
Legendre’s polynomials can be obtained by the following well known iterative formula 
x
P
P
x
P
n
n
x
x P
n
n
P x
n
n
n
=
=
⋅ ⋅
=
1
0
2
1
1  ,
( )     ,
1
( )
1
2
( )
The first five polynomials are: 
(
)
(
)
(
)
3
30
35
8
1
 , 
5
2
1
1 ,
3
2
1
  ,
1  ,
2
4
4
3
3
2
2
1
0
+
=
=
=
=
=
x
x
P
x
x
P
x
x P
P
P
The above formula is very popular, but from the point of view of numeric calculus has one 
disadvantage: its coefficients are decimal and this causes round-off errors leading inaccuracy 
for higher polynomial degree. It is convenient to rearrange the iterative formula to avoid 
fractional coefficients. 
Let’s assume that a Legendre’s polynomial can be written as  
( )
1
( )
L x
k
P x
n
n
n
=
Where k
n
is an integer number and L
n
(x) is a polynomial having integer coefficients 
The Legendre’s polynomial P
n
(x) is completely defined by the couple of (k
, L
n
(x)) 
Starting with 
(1a) 
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Free online C# class source code for deleting specified PDF pages in .NET console application. Able to remove a single page from PDF document.
pdf keywords metadata; endnote pdf metadata
C# PDF Password Library: add, remove, edit PDF file password in C#
Support to add password to PDF document online or in C# String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and
add metadata to pdf file; edit multiple pdf metadata
Xnumbers Tutorial 
83 
1
1
1
0
=
=
k
k
x
L
L
=
=
1
0
1
We can show that the following iterative process, with n ≥ 2 , gives the couples (k
, L
n
(x)) 
( )
( )
( )
( )
( 1)
1)
(2
( )
2
1
1
2
x
x a a L
V x x U U x L
n
k
a
x
n
k
U x
n
n
n
n
n
n
n
n
n
=
⋅ −
=
=
(
)
( )
,
2
1
n
n
n
n
n
n
V
coef
b
GCD
c
k
n k
b
=
= ⋅
=
Where the coeff operator returns the coefficients vector of the polynomial V
n
(x), and the GCD is 
the greatest common divisor. 
Simplifying, we get, finally the couple (k
, L
n
(x)) 
( )
1
( )
V x
c
L x
c
b
k
n
n
n
n
n
n
=
=
This iterative algorithm, working only with integer values, is adapted to build Legendre’s 
polynomials with high degree.  
Let’s see how to arrange a worksheet for finding Legendre’s polynomial 
In the first column we insert the degree n, beginning from 0 to 2, for the moment 
In the last two columns “k” and “L(x)” we have added the starting values. 
The row 6 contains all the functions that the process needs. 
In particularly we note: 
The function polyterms(D6) gives the coefficients vectors [-1, 0, 3] of V(x) = -1+3x^2 
The function xMCD returns the greatest common divisor of [-1, 0, 3, 2] ⇒ 1 
Select the row 6 and drag it down. We generate the Legendre’s polynomial in the form (1a) 
C# PDF remove image library: remove, delete images from PDF in C#.
Text in PDF. Image: Insert Image to PDF. Image: Remove Image from PDF Page. Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
batch pdf metadata; pdf metadata viewer
C# PDF bookmark Library: add, remove, update PDF bookmarks in C#.
Ability to remove and delete bookmark and outline from PDF document. Merge and split PDF file with bookmark. Save PDF file with bookmark open.
adding metadata to pdf files; online pdf metadata viewer
Xnumbers Tutorial 
84 
Here is a table of Legendre’s polynomials obtained with the above method 
L(x) 
-1+3x^2 
-3x+5x^3 
3-30x^2+35x^4 
15x-70x^3+63x^5 
16 
-5+105x^2-315x^4+231x^6 
16 
-35x+315x^3-693x^5+429x^7 
128 
35-1260x^2+6930x^4-12012x^6+6435x^8 
128 
315x-4620x^3+18018x^5-25740x^7+12155x^9 
10 
256 
-63+3465x^2-30030x^4+90090x^6-109395x^8+46189x^10 
11 
256 
-693x+15015x^3-90090x^5+218790x^7-230945x^9+88179x^11 
12 
1024 
231-18018x^2+225225x^4-1021020x^6+2078505x^8-1939938x^10+676039x^12 
13 
1024 
3003x-90090x^3+765765x^5-2771340x^7+4849845x^9-4056234x^11+1300075x^13 
We can also extract a table of Legendre’s coefficients by the Polyterms() function 
VB.NET PDF delete text library: delete, remove text from PDF file
to remove text format by modifying text font, size, color, etc. Other PDF edit functionalities, like add PDF text, add PDF text box and field. Online .NET
add metadata to pdf programmatically; acrobat pdf additional metadata
VB.NET PDF Password Library: add, remove, edit PDF file password
Remove password from PDF. Dim outputFilePath As String = Program.RootPath + "\\" Remove.pdf" ' Remove password in the input file and output to a new file.
pdf remove metadata; preview edit pdf metadata
Xnumbers Tutorial 
85 
Polynomial shift 
=PolyShift(Poly, x0)   
Performs the polynomial translation to x
0
,  
The argument "Poly" can be the polynomial strings or the vector of polynomial coefficients. 
This function returns the coefficient vector of the translated polynomial. 
If you select one cell, the output will be a polynomial string 
Example. Given the polynomial: 
6
5
4
3
2
144
8633
275809
4952504
47389623
188784918
x
x
x
x
x
x
+
+
+
substituting x with  z+24, we have 
6
4
3
2
9
16
9
18
z
z
z
z
z
+
+
This function is useful for transforming polynomial for reducing the coefficients amplitude and 
improving the precision of rootfinder methods. In this example we work with coefficients of two 
maximum digits, instead of 9 digits. We note also that the second polynomial, having the 
second coefficient = 0, is centered. His roots are the same of the given polynomial, translated 
of 24, but can be factorize much better. In fact, we have 
9)
2)(
1)(
(
2
2
2
+ +
− +
z
z
z
z
z
Polynomial center 
=PolyCenter(Coefficients)   
Returns the center of the polynomial roots circle 
The argument specifies the vector of the polynomial coefficients in the following order: 
[
]
n
a a a a a a
, , ...
2
1
0
It can also be a polynomial string  
if x
1
, x
2
, ...x
n
are roots of polynomial the center Bx is defined as: 
n
a
n
x
x x
x
n
n
x
1
2
1
0
...
B
=
+
+ +
+
=
Xnumbers Tutorial 
86 
Polynomial roots radius 
=PolyRadius(Coefficients)   
Returns the approximated radius of the polynomial roots circle. 
The argument is the vector of the polynomial coefficients in the following order: 
[
]
n
a
a a a a
, , ...
2
1
0
It can also be a polynomial string  
If z
i
are the roots of a polynomial, the radius is defined as: 
|)
(|
max
1...
i
n
i
z
R
=
=
.The circle of root is very useful for locating all the roots of a polynomial. For example, given the 
following 9 degree polynomial.  
degree 
coefficents 
a0 
-3098250
a1 
4116825
a2 
-2427570
a3 
916272
a4 
-244674
a5 
46934
a6 
-6430
a7 
608
a8 
-36
a9 
1
The center = 4 and the radius ≅ 6.8 
We can draw the circle containing, with high probability, all polynomial roots  
We know that the roots of this polynomial are:  
x real 
x imm 
-6 
-4 
-3 
We have to point out that this method is probabilistic. It means that, picking-up a random 
polynomial, the most part of the roots are found inside the circle but it is also possible to find 
same roots outside the circle with 1% of probability.  
Example: compute the root circle of the polynomial:  
x
7
-5x
6
+64x
3
-8000 
Xnumbers Tutorial 
87 
radius ≅ 4.331 
center ≅ 0.714 
The roots are: 
x real 
x imm 
-2.7429701  1.6132552 
-2.7429701  -1.6132552 
-0.4369651  3.2182957 
-0.4369651  -3.2182957 
3.17993518  2.2060806 
3.17993518  -2.2060806 
Polynomial building from roots 
=PolyBuild(Roots, [Variable])  
Builds a polynomial from its roots. Argument "Roots" is an (n x 2)  array, contains the 
polynomial roots. It can be an (n x 1) vector for real roots. 
This function returns the coefficient vector of the polynomial. 
If you select one cell, the output will be a polynomial string 
Complex roots for real polynomial: 
Multiple roots: 
Complex roots for complex polynomial 
If the complex roots are not symmetrical, the 
polynomial has both real and imaginary part.  
Zero roots .If you want a polynomial with 
multiple zero roots, simply repeat many couple 
[0, 0] as it needs. 
This function returns the vector of polynomial coefficients if you select more than two vertical 
cells. It is useful for higher degree polynomial 
Xnumbers Tutorial 
88 
In this example we get the 10 
coefficients of the 9
th
degree 
polynomial having the 9 roots in the 
range A2:B10. 
Select the range E2:E11 and insert 
the function PolyBuild with the 
CTRL+SHIFT+ENTER sequence. 
If complex roots are not conjugate, 
the polynomial has complex 
coefficients. This function returns also 
the imaginary part of the coefficients. 
Simply select the range D2:E6. 
Xnumbers Tutorial 
89 
Polynomial building with multi-precision 
PolyBuildCfx() 
This macro generates the polynomial coefficients from the polynomial roots.  
This macro works like the function PolyBuild except that it works in multi-precision. It is useful 
for high degree polynomial, when the coefficients become longer than 15 digits.  
For using this macro select the range 
containing the roots. 
Then, start the macro. Choose the digits 
precision (default=30) and the range you want 
to paste the coefficients (default is the range 
at the right side of the roots range selected). 
In the following table we have calculated the coefficient of the polynomial having as roots the 
first 19 integer numbers. That is: 
x
1
= 1 , x
2
= 2,  x
3
= 3 ,.... x
19
= 19 
Roots
PolybuildCfx (30 digits) 
PolyBuild 
Diff. 
1
-121645100408832000
-121645100408832000 
2
431565146817638400
431565146817638000 
400 
3
-668609730341153280
-668609730341153000 
-280 
4
610116075740491776
610116075740492000 
-224 
5
-371384787345228000
-371384787345228000 
6
161429736530118960
161429736530119000 
-40 
7
-52260903362512720
-52260903362512700 
-20 
8
12953636989943896
12953636989943900 
-4 
9
-2503858755467550
-2503858755467550 
10
381922055502195
381922055502195 
11
-46280647751910
-46280647751910 
12
4465226757381
4465226757381 
13
-342252511900
-342252511900 
14
20692933630
20692933630 
15
-973941900
-973941900 
16
34916946
34916946 
17
-920550
-920550 
18
16815
16815 
19
-190
-190 
1
As we can see there are a little difference (digits in red) between the exact coefficients 
computed by this macro PolyBuildCfx  (multiprecision arithmetic with 30 digits) and those 
returned by the function PolyBuild (standard double precision).  
Documents you may be interested
Documents you may be interested