c# parse pdf to xml : Remove metadata from pdf Library software component asp.net wpf web page mvc xnumbers-tutorial120-part874

Xnumbers Tutorial 
200 
-50
-40
-30
-20
-10
0
10
20
30
40
50
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
y samples
y interp
Interpolation with continued 
fraction 
The pink dots are the given 
knots. 
The blue line is obtained by 
interpolation  
There is a pole at x  0.95 
(red dotted line) 
Note that the points outside 
the range [0.5, 1.2] keep 
also a good accuracy. 
(extrapolation ) 
Example:  Find an interpolation formula for the function tan(x) in the range 0  x  1.5 with no 
more than 7 points.  
The function tan(x) has a pole at x  1.57 , near to the upper bound 1.5; so its presence 
suggests to adopt a fraction interpolation.  
Assume to sample the function tan(x) at the 
values (0, 0.2, 0.6, 1, 1.25, 1.45, 1.5). 
The column A contains the knots of the 
interpolations 
In colum B we have inserted the 
correspondent values of tan(x)  
In column C we have computed the 
coefficients of the fraction interpolation. 
Using the function FracInterp we can interpolate any value between 0 and 1.5 
obtaining the graph to the left. The second graph shows the absolute error in the given range. 
You can verify that the interpolation is better than 1E-5 for any value x in the given range. 
Remove metadata from pdf - 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
view pdf metadata; extract pdf metadata
Remove metadata from pdf - 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
pdf metadata editor online; edit multiple pdf metadata
Xnumbers Tutorial 
201 
Interpolation with Cubic Spline  
cspline_interp(Xin , Yin , Xtarget )  
cspline_eval(Xin, Yin, Ypp, Xtarget) 
These functions
1
perform the natural cubic spline interpolation  
Xin is the vector containing the x-values. 
Yin is the vector containing the y-values.. 
Xtarget  is the x value which we want to compute the interpolation 
Xpp  is the vector containing the 2
nd
derivative 
The cubic spline interpolation is based on fitting cubic polynomial curves through all the given 
set of points, called knots 
The cubic spline follows these rules:  
 the curves pass through all the knots 
 at each knot, the first and second derivatives of the two curves that meet there are 
equal  
 at the first and last knot, the second derivatives of each curve is equal to 0 (natural 
cubic spline constraint). 
The natural cubic spline has a continuous second derivative (acceleration). This characteristic 
is very important in many applied sciences (Numeric Control, Automation, etc...) when it is 
necessary to reduce vibration and noise in electromechanical motions. The drawback is that 
cubic spline is less efficient than other interpolation methods. 
The function cspline_eval is faster than cspline_interp, because it uses the information of the 
2
nd
derivatives and does not have to calculate them all over again like the cspline_interp does. 
The 2
nd
derivatives can be computed by the function cspline_pre (see next function) 
Example: 
Cubic Spline 2nd derivatives 
cspline_pre(Xin , Yin) 
This function Returns the cubic spline 2
nd
derivatives at a given set of points (knots). 
Xin is the vector containing the x-values. 
Yin is the vector containing the y-values.. 
For n knots, it returns an array of n 2
nd
derivative values. The first and the last values are zero 
(natural spline constraint). 
The 2
nd
derivatives depend only by the given set of knots. So they can be evaluate only once 
for the whole range of the interpolation. By cspline_eval we can compute faster interpolation. 
1
These functions appear thanks to the courtesy of  Olgierd Zieba 
VB.NET PDF remove image library: remove, delete images from PDF in
Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
acrobat pdf additional metadata; extract pdf metadata
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Able to remove a single page from adobe PDF document in VB.NET. Ability to remove consecutive pages from PDF file in VB.NET. Enable
embed metadata in pdf; endnote pdf metadata
Xnumbers Tutorial 
202 
Example. Perform the sub-tabulation with x = 0.1 of the following table 
The given table is in the range 
A3:B13 
In the adjacent column C we have 
computed the 2
nd 
derivatives by 
the function cspline_pre. 
Note that this function returns a 
vector of 11 values. It must be 
inserted with the ctrl+shift+enter 
keys sequence. 
At the right we have set the new 
table with step 0.1. 
the value of F3 has been interpolate by the formula 
= cspline_eval($A$3:$A$13; $B$3:$B$13; $C$3:$C$13; E3) 
The other values are computed simply by dragging down the cell F3. 
The following plot shows the knots and the cubic spline fitting 
The points of the original table was extracted from the function y = [cos(x)]
4
.  
You can verify that the interpolation accuracy is better than 1% over the entire range. 
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
console application. Able to remove a single page from PDF document. Ability to remove a range of pages from PDF file. Free trial package
edit pdf metadata; batch edit pdf metadata
C# PDF Password Library: add, remove, edit PDF file password in C#
String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and output to a new file. int
adding metadata to pdf; add metadata to pdf
Xnumbers Tutorial 
203 
Cubic Spline Coefficients 
cspline_coeff(Xin , Yin) 
This function
1
returns the coefficients of the cubic spline polynomials 
Xin is the vector containing the x-values. 
Yin is the vector containing the y-values.. 
It returns an (n-1 x 4 )  array where n is the number of knots. Each row contains the coefficients 
of the cubic polynomial of each segment s [a
s,3
a
s,2
a
s,1
a
s,0
,0
1,
2
,2
3
3,
)
(
)
(
)
(
s
s
s
s
s
s
s
s
a
a x x x
a x x x
y a a x x x
+
+
+
=
where s = 1, 2, (n-1) 
Example. Find the cubic spline polynomials that fit the given knots 
1
These functions appear thanks to the courtesy of  Olgierd Zieba
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.
online pdf metadata viewer; clean pdf metadata
C# PDF remove image library: remove, delete images from PDF in C#.
Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
add metadata to pdf file; change pdf metadata
Xnumbers Tutorial 
204 
2D Mesh Interpolation 
=Interp_Mesh(TableXY) 
This function performs the linear interpolation of a bivariate function given in a pivot table XY.  
The x-values and y-values must be sorted but not necessarily equidistant. This function returns 
an array. Let's see how it works. 
Regularization 
As we can see, the use of this function 
is straight. Simply select the area 
where you want to insert the new 
table, insert the function Interp_mash 
and pass the old table as parameter. 
The function Interp_mesh returns the 
equidistant-linear-interpolated array. 
Or, in other words, it returns the 
regularized table 
Rescaling 
We can obtain a sub-tabulated 
function in an very fast way 
Simply select a larger area  
The function Interp_mesh 
counts the cells that you have 
selected and fill all the cells with 
the linear interpolated values 
In this case the given table has 
5 x 4 = 20 values. 
The new table has 9 x 7 = 63 
values; therefore, there are 43 
new interpolated values 
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
You can also update, remove, and add metadata. List<EXIFField> exifMetadata = collection.ExifFields; You can also update, remove, and add metadata.
read pdf metadata; pdf metadata viewer
VB.NET PDF delete text library: delete, remove text from PDF file
projects. Basically, you can use robust APIs to select a PDF page, define the text character position, and remove it from PDF document.
pdf metadata; edit pdf metadata acrobat
Xnumbers Tutorial 
205 
Macro Mesh Fill  
This macro, accessible from the menu Macro / Regression, is useful for completing a 2D mesh 
by interpolation. Practically, given a (n x m) matrix with holes, it tries to recover the missing 
data. We could say a special case of bi-dimensional linear regression 
Using this macro is very simple. Select the matrix with holes and start the macro. 
Example 
Original data matrix complete filled. 
It was generated by the following linear 
formula 
j
i
a
2 3
ij
= −
=
the same data matrix with same missing 
values (holes).  Select the matrix (range 
B13:H21) and start the macro 
The macro will try to rebuild the missing 
value (red) by linear interpolation, using 
the data of the nearest nodes 
Of course, this process gives exactly the 
original matrix only in the linear case 
For all other case we have an error: 
Generally, it is small if also the ratio 
between holes and filled nodes is small 
and if the original data is smooth 
Xnumbers Tutorial 
206 
Interpolation of tabulated data function 
Given a tabulated data (x
i
, y
i
), i = 1...N, generally not equidistant, we have to interpolate the 
function y for an arbitrary x value, where   x
1
≤ x ≤ x
The points (x
i
, y
i
) are called knots of the interpolation 
Cubic Spline interpolation 
The goal of cubic spline interpolation is to get a polynomial interpolation formula that is smooth 
in the 1
st
derivative, and continuous in the 2
nd
derivative, within the interval and at each 
boundaries. 
This method ensures that the functions y(x), y’(x), and y’’(x) are equal at the interior node 
points for adjacent segments. The cubic polynomials P
i
(x) satisfie these constrains. 
P
i
(x
i−1
) = y
i−1
for i = 2...N 
P
i
(x
i
  = y
i
for i = 2...N 
P'
i
(x
i
 = P'
i+1
(x
i
for i = 2...N−1 
P''
i
(x
i
 = P''
i+1
(x
i
for i = 2...N−1 
One form to write the interpolation polynomials is: 
P(x) = A P
i
+ B P
i+1
+ C P’’
i
+ D P’’
i+1
,   for i = 1...(N-1) 
Where: 
A = (x
i+1
– x)/ (x
i+1
– x
i
)  
B =  1 – A 
C = 1/6 (A
3
– A) (x
i+1
– x
i
)
2
D = 1/6 (B
3
– B) (x
i+1
– x
i
)
2
The 2
nd
derivatives can be evaluated by the following linear equations 
(x
i
– x 
i-1
) P’’
i-1
 2 (x
i+1
– x
i-1
) P’’
i
+ (x
i+1
– x
i
) P’’
i+1
= H
i
for i = 2...(N-1)         
where: 
H
= 6[(P
i+1
– P
i
)/(x
i+1
– x
i
) – (P
i
– P
i-1
)/(x
i
– x
i-1
)]  ,  P’’
1
= 0  ,  P’’
N
= 0   
That gives the following tridiagonal matrix system 
2(x
3
– x
1
 (x
3
– x
2
... 
P’’
2
H
2
(x
3
– x
2
 2(x
4
– x
2
 (x
4
– x
3
... 
P’’
3
H
3
(x
4
– x
3
 2(x
5
– x
3
 (x
5
– x
4
... 
P’’
4
 H
4
(x
5
– x
4
 2(x
6
– x
4
... 
... 
P’’
5
H
5
... 
... 
... 
... 
... 
(x
N
– x
N-1
... 
... 
(x
N
– x
N-1
) 2(x
N
– x
N-2
   P’’
N-1
 H
N-1
Another common way to write the interpolation polynomial is: 
P(x) = a
3i
(x – x
i
)
3
+ a
2i
(x – x
i
)
2
+ a
1i
(x – x
i
)  + a
0i 
       x
i
≤ x < x
i+1   
for  i = 1...(N-1) 
Where the coefficients are: 
a
3i
= (P’’
i+1
– P’’
i
)/(x
i+1
– x
i
)/6  
a
2i
 P’’
i
/ 2 
a
1i
= (P
i+1
– P
i
)/(x
i+1
– x
i
) – (x
i+1
– x
i
) (2 P’’
i
+ P’’
i+1
)/6 
a
0i
= P
i
The matrix of the system is tridiagonal, therefore can be solved in O(N) operations  
Xnumbers Tutorial 
207 
We note also that its solution (P’’
1 , 
P’’
, ... P’’
) depends only by the given knots, therefore the 
2
nd
derivatives  can be evaluated only once for any interpolate. 
This example shows how the interpolation spline works.  
2.5 
For these 6 knots we obtain 5 cubic polynomials having the following coefficients 
Polynomials 
a3 
a2 
a1 
a0 
Range 
1st spline 
0.20148927 
1.79851073 
0
≤ x < 
1
2nd spline 
-0.8783764 
0.60446781 
2.40297854 
≤ x <
2.5 
3rd spline 
5.54708717 
-3.348226 
-1.7126588 
2.5 
≤ x <
4th spline 
-3.0718353 
4.97240473 
-0.9005694 
≤ x <
5th spline 
1.41436706 
-4.2431012 
-0.1712659 
≤ x <
In the graphs below we can see the interpolated points (dotted line) fitting the data points and 
the cubic polynomials (green line) passing through the nodes of each segment. Each 
polynomial interpolates inside the proper segment. That is: the 1st spline works for 0 ≤ x < 1, 
the 2nd spline for 1 ≤ x < 2.5, and so on. 
In the graphs below are shown the entire interpolation line (left) and the 1
st
spline (right). 
-2
-1
0
1
2
3
4
5
6
-1
1
3
5
spline Interp
knots
-2
-1
0
1
2
3
4
5
6
-1
1
3
5
spline Interp
knots
1st spline
In the graphs below are shown the 2
nd
spline (left) and the 3
rd
spline (right) 
-2
-1
0
1
2
3
4
5
6
-1
1
3
5
spline Interp
knots
2nd spline
-2
-1
0
1
2
3
4
5
6
-1
1
3
5
spline Interp
knots
3rd spline
In the graphs below are shown the 4
th
spline (left) and the 5
th
spline (right) 
Assuming to have to sub-tabulate with a step 
x = 0.1 a given function known only in the 
following 6 points 
Note that these points are unequal spaced 
Xnumbers Tutorial 
208 
-2
-1
0
1
2
3
4
5
6
-1
1
3
5
spline Interp
knots
4th spline
-2
-1
0
1
2
3
4
5
6
-1
1
3
5
spline Interp
knots
5th spline
Let’s examine the 1
st
and 2
nd
derivatives. We can compute them either analytically or 
numerically using – for example -the following derivative formulas: 
y’(x
i
 (y
i+1
– y
i-1
)/2x                       y’’(x
i
 (y
i+1
– 2 y
i
+ y
i-1
)/ ∆ x
2
In both ways, we get the following graphs 
Y'
-5
-4
-3
-2
-1
0
1
2
3
0
1
2
3
4
5
Y''
-10
-5
0
5
10
15
0
1
2
3
4
5
As we can see the 1
st
derivatives is smooth and the 2
nd
is continuous. This last feature is 
particularly appreciated in many fields of engineering. Although this algorithm is less efficient 
than other polynomial interpolation methods, it has the advantage of following the interpolated 
curve without the spurious oscillations that other schemes can create 
Xnumbers Tutorial 
209 
Other test functions 
In our last example we have found that both methods can provide acceptable interpolation for 
all range of x . Thus, there are same case, that the superiority of the spline interpolation is more 
evident. Gerald [2] used the “bump” test case to illustrate problems with other interpolation 
methods. Let’s see. 
Interpolate the following knots 
Y = (cos(x))
10
, for x= -2 , -1 , -0.5 , 0 , 0.5 , 1 , 2 
Plotting the interpolated values with a step of 0.1, we get the following graphs 
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
-2
-1
0
1
2
cos(x)^10
cubic poly
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
-2
-1
0
1
2
cos(x)^10
cubic spline
The curves appear acceptable in both graphs. The second shows a closer fit near the points x 
= 1 and x = -1 where are "knees" of the curve. 
But matching the error plots, we see clearly the better accuracy of the spline interpolation. 
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
error cubic poly
error cubic spline
As we can see, the amplitude 
error of the cubic polynomial is 
much more than the spline. 
We can show  that an higher 
order of the interpolation 
polynomial, is even worst  
In this case, the cubic spline is 
the better choice 
Documents you may be interested
Documents you may be interested