Xnumbers Tutorial 
240 
Second Derivative 
=Diff2(x, func, [param]) 
It approximates the second derivative of an univariate function f(x) at the given point 
( )
''( )
2
2
f x
dx
d
f x
=
The parameter "func"  is a math expression string containing the symbolic function f(x)  
Examples of function definition are: 
-2*Ln(x) ,  2*cos(x) ,  3*x^2-10*exp(-4*x) , x^2+4*x+1 , etc. 
"param" contains labels and values for parameters substitution (if there are) 
Example: Evaluate the first and second 
derivatives at the point x = 2 for the 
following function 
1
3
( )
2
+
+
=
x
x
f x
Gradient 
=Grad(p, func, [param]) 
Approximates the gradient of a multivariate function f(x, y, z) at the given point  
=
z
f
y
f
x
f
f x x y z
  ,
  ,
( , , , , )
The parameter "p"  is the vector of the variables [x, y, z] 
The parameter "func"  is an expression string containing the function f(x, y, z). Examples of 
function definition are: 
-2*ln(x+3y), 2*exp(-x)*cos(3*t), 3*x^2-y^2+z^2, (x^2+y^2)^(1/3),etc. 
For performance problem, the number of variables is restricted to 4, “x”, “y”, “z”, “t”. The 
variables values must be always passed in this order. 
"param" contains labels and values for parameters substitution (if there are) 
Example. Evaluate the gradient of 
the following function at the point 
P(1, 1)  
2
2
5
1
( , , )
y
x
f x x y
+
=
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; batch update 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
change pdf metadata; read pdf metadata java
Xnumbers Tutorial 
241 
Jacobian matrix 
=Jacobian (p, func, [param])   
Approximates the Jacobian’s matrix of a multivariate vector-function F(x, y, z) at the given point 
(x, y, z) 
=
( , , , , )
( , , , , )
( , , , , )
( , , , , )
3
2
1
f x x y y z
f x x y y z
f x x y y z
F x y y z
=
z
f
y
f
x
f
z
f
y
f
x
f
z
f
y
f
x
f
J x x y z
3
3
3
2
2
2
1
1
1
  ,
  ,
  ,
  ,
  ,
  ,
( , , , , )
The parameter "p"  is the vector of the variables [x, y, z] 
The parameter "func"  is an expression string containing the function f(x, y, z). Examples of 
function definition are: 
-2*ln(x+3y), 2*exp(-x)*cos(3*t), 3*x^2-y^2+z^2, (x^2+y^2)^(1/3),etc. 
For performance problem, the number of variables is restricted to 4, “x”, “y”, “z”, “t”. The 
variables values must be always passed in this order. 
"param" contains labels and values for parameters substitution (if there are) 
Example. Evaluate the Jacobian’s matrix of the following vector-function at the point  P(1, 1)  
2
2
2
1
5
1
( , , , , )
z
y
x
f x x y y z
+
+
=
2 )
ln(
( , , , , )
2
y
x
z
f x x yz
+
= ⋅
=
xyz
f x x y y z
( , , , , ) ) 4
3
=
Hessian matrix 
=Hessian (p, func, [param])   
Approximates the Hessian’ matrix of a multivariate function f(x, y) at the given point p(x, y) 
∂ ∂
∂ ∂
=
2
2
2
2
2
2
  ,
  ,
( , , )
y
f
y x
f
x y
f
x
f
H x x y
The parameter "p"  is the vector of the variables [x, y] 
The parameter "Func"  is an expression string containing the function f(x, y, z). Examples of 
function definition are: 
-2*ln(x+3y), 2*exp(-x)*cos(3*t), 3*x^2-y^2+z^2, (x^2+y^2)^(1/3), etc. 
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.
add metadata to pdf file; search 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.
get pdf metadata; remove metadata from pdf online
Xnumbers Tutorial 
242 
For performance problem, the number of variables is restricted to 4, “x”, “y”, “z”, “t”. The 
variables values must be always passed in this order. 
"Param" contains labels and values for parameters substitution (if there are) 
This function returns a square a matrix (n x n) of the second derivatives  
The accuracy of this function is about 1E-10 
Example. Approx. the Hessian’s matrix of the following function at the point (2,1,1) 
2
2
2
5
1
( , , , , )
z
y
x
f x x y y z
+
+
=
Parameters. All the differential functions accept parameters into the string definition. They 
must be different from the canonical variables "x", "y", "z", "t" but apart this, can have any name 
that you like. 
Example: Calculate the Hessian matrix of the function 
a
y
x
k z
f x x y z
+
+
=
2
2
( , , , , )
for (x, y, z) = (1, -3, 4)  and for parameters k = 1.5 and a = -1 
Note the "param" range G2:H3: the parameters must be always passed with theirs labels "k" 
and "a". On the contrary the variables do not need labels but must always be passed in the 
order x, y, z.  
Using the trick of the scaling for 243, the inverse of the determinant,  we get an integer matrix, 
that represent the numerator of the Hessian itself. Then, simplifying each element for 243, we 
obtain the Hessian matrix in the following exact fractional form 
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
rename pdf files from metadata; remove metadata from pdf file
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.
pdf metadata editor online; read pdf metadata online
Xnumbers Tutorial 
243 
Non-linear equation solving with derivatives 
Derivatives play a strategic role in solving non-linear equation and non-linear system  
The most efficient algorithms use the derivatives information in order to speed up the 
convergence to the final solution. From the point of view of numeric calculus, derivatives are 
rarely used because they tend to magnify the truncation error. This is general true and a many 
rootfinding algorithm avoid the derivatives. In solving non-linear problem, however, the 
derivatives can be very useful because they can greatly improve the convergence without 
influence the final result accuracy, that depends only by the evaluation function f(x)  
Let's see and example. 
Solve the following equation  
x
x
sin
2
=
with an accuracy better then 1e-25. 
First of all we build the function  
x
x
f x
sin
( )
2
=
and draw its plot. The point x where 
f( x)=0
f
is 
the solution of the given equation We see that the 
zero exists and it is near the point 1. 
We note also that in the interval [0.5 1.5] the 
function is monotonic 
In this interval the Newton-Raphson iterative algorithm, starting from x = 1.5, should work fine.  
0, 1, 2 ...
n
'( )
( )
n
n
n
n 1
=
=
+
f x
f x
x
x
To implement this algorithm we need the evaluation function f(x) with about 30 significant digits. 
For that, it comes in handy the multiprecision function xeval. For the derivative we have to way: 
computing the function f'(x) by hand and evaluating it by xeval or approximating the derivative 
by the function diff1 in standard precision. Because we are a bit lazy and the derivatives is not 
so immediate, we chose the second way. A simple spreadsheet arrangement may be the 
following 
As we can see the convergence is superb!. After few iteration the solution is 
0.9496166887146629471509830317   with |f(x)| < 1e-28 
This excellent result has been obtained in spite of the limited precision (1e-13) of the derivative. 
The reason is simple: the accuracy of the derivative does not influence the final accuracy of the 
root. We note that the derivative, after very few iterations, remains constant: we might 
substitute this value with an even more approximated values, i.e. f' = 1.57, for all iterations. The 
final accuracy will not change. We will need only more few steps, at the most. 
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.
adding metadata to pdf; remove pdf metadata
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.
add metadata to pdf; remove pdf metadata online
Xnumbers Tutorial 
244 
But this method show its power overall for non-linear systems. For a 2 variables problem the 
Newton-Raphson method becomes 
=
=
( , , ) ) 0
( , , ) ) 0
g x x y
f x x y
 
n
1
n
n 1
n 1
=
+
+
g
f
g
g
f
f
y
x
y
x
y
x
y
x
The (2 x 2) matrix is the Jacobian calculated at the point (x
n
, y
n
). In Xnumbers it can be 
evaluated by the function Jacobian 
Example. Solve the following system 
+ + + − − =
− − − =
+
1 0
6 0
2
5
x y
e
x
y
x
x y
setting: 
6
( , , )
2
5
− −
=− +
x
y
x
f x x y
1
( , , )
+ + −
=
x y
e
g x y
x y
the contour plots of the functions f = 0 and g = 0 show two 
intersection points: one near the point (-1 2) and another 
near (-1, -2) 
The function f(x,y) and g(x,y) are 
evaluated and converted in double 
precision by the nested functions 
=xcdbl(xeval(B4,B7:B8)) 
=xcdbl(xeval(B5,B7:B8)) 
At the begin, insert the starting point  
(-1, 2) in the cells B7:B8. 
The new point is calculated in the 
cells E7:E8. Copy this range and re-
insert in the range B7:B8. At each 
iteration the increments dx,dy of the 
range E10:E11 becomes more and 
more small. 
Starting from (-1, 2) and (-1, -2) the iteration algorithm converges to the correct solutions 
-1 
2
-1
-2 
-1.0201151219  1.9698273171
-0.7964138633
-2.3053792051 
-1.0196483063  1.9693084022
-0.8079928505
-2.2042117521 
-1.0196480758  1.9693081215
-0.8107932120
-2.1997452584 
-1.0196480758  1.9693081215
-0.8108021826
-2.1997248438 
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; pdf metadata extract
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.
metadata in pdf documents; pdf metadata online
Xnumbers Tutorial 
245 
Conversions 
Decibel 
=dBel(A, [MinLevel])   
Converts a positive number A into decibel 
( )
)
A
A
10
dB
log
=20
If zero, A is substituted with the value contained in the parameter "MinLevel" (default 1E-15) 
Example 
A
A dB
1
0
0.5
-6.0206
0.1
-20
0.05
-26.021
0.01
-40
0.001
-60
0.0001
-80
0
-300
Base conversion 
cvDecBin(DecNum)   
base 10  base 2 
cvBinDec(BinNum)   
base 2   base 10 
cvDecBase(DecNum, Base)   
base 10  any base (2-16) 
cvBaseDec(BaseNum, Base)   
any base (2-16)  base 10 
baseChange(number, old_base, new_base)   
1
any base (2 - 36)  any base (2 - 36) 
xBaseChange 
2
Any base (2 .. >1 million) 
These functions perform the number conversion between different bases. 
Example: Converts the decimal number  n = 902023485 into bases 2 and 3. 
cvDecBin(902023485) = 110101110000111100100100111101  (base 2) 
cvDecBase(902023485, 3 )= 2022212022112121020   (base 3) 
Example: Converts the hexadecimal number  n = 35CFFF3D into decimal 
cvBaseDec(35CFFF3D) = 902823741  (base 10) 
You can also convert directly base-to-base, nesting two functions.  
Example convert n = 35CFFF3D from base 16 into 8 
cvDecBase(cvBaseDec(35CFFF3D,16),8) = 6563777475   (base 8) 
For this scope you can also use the baseChange function 
1
The function baseChange appears thanks to Richard Huxtable 
2
The function xBaseChange appears thanks to Ton Jeursen 
Xnumbers Tutorial 
246 
In spite of its digits limitation (15), this function has several interesting features 
It converts any number into many different bases (up to 36). The digits greater then 9 are 
indicated as A, B, C, D E, F, G, H, etc. It converts also decimal numbers. It formats the result 
consistently with the source cell. Let's see how it works 
The cell C4 is formatted with 7 
digits and consequently its results 
have the same format; the cell D4 
is formatted with 2 decimals and its 
result has the same format. 
Multiprecision Base Conversion  
=
xBaseChange(xBC_OldNum, [xBC_NewBase], [deep])
This function
1
converts a number from any base (2 .. >1 million) 
xBC_OldNum is the number to convert in the following formats 
3642455[7]    (integer number in base 7) 
10C2AE[16]   (integer number in base 16) 
1098414        (integer number in base 10) 
213.02[4]       (decimal number in base 4) 
The oldnumber is assumed to be base 10; otherwise oldbase is provided between square 
brackets []. 
xBC_NewBase is the new base. If omitted it is assumed 10 as default. 
If the base > 35 the letters are no more sufficients and the digits are represented as group of 
digits separate with colon : 
9:34:9:23[36]    (integer number in base 36) 
6:54:122:42:65[200]    (integer number in base 200) 
100:368.356:980[1000]  (decimal number in base 1000) 
deep is an optional parameter (0 to 50) setting the max number of decimals showed (default 
50) 
Example:      xBaseChange("9:34:9:23[36]", 7)                     
Results in:    3642455[7]                                           
Example:      xBaseChange(1098414 , 16)                             
Results in:    10C2AE[16]                                           
1
The function xBaseChange appears thanks to Ton Jeursen. 
Xnumbers Tutorial 
247 
Example:      xBaseChange(1098414 , 46)                       
Results in:    11:13:4:26[46]                                      
Example:      xBaseChange("1F0C2AE[16]")                      
Results in:    32555694[10] 
Example       xBaseChange(10092.102 , 2048 , 6)   
Results in      4:1900.208:1835:16:786:884:1507...[2048] 
Note that, as in the last case, the digits groups can have different lenght: one , two, or more 
digits 
If we wan to force all the groups having the same number of digits simply insert the new base 
with prefix "0" 
Example       xBaseChange(10092.102 , "02048" , 6)   
Results in      0004:1900.0208:1835:0016:0786:0884:1507...[02048] 
Log Relative Error 
= mjkLRE(q, c, NoSD)   
= xLRE(q, c, NoSD, [DgtMax])   
This function
1
returns the log relative error (LRE) for an estimated value (q) and a certified 
value (c), which has a specified number of significant digits (NoSD). The LRE is a measure of 
the number of correct significant digits only when the estimated value is “close” to the exact 
value. Therefore, each estimated quantity must be compared to its certified value to make sure 
that they differ by a factor of less than two, otherwise the LRE for the estimated quantity is 
zero. 
Definition. The base-10 logarithm of the relative error is defined as: 
<
=
>
=
=
     |q| | 1
) ,
log(
min(
LRE
if   |q| 1
0
LRE
if c c 0
NoSD
q
=
=
=
=
if  lse
0
LRE
      if   c c q
LRE
)     if  c c q  and  1/2  |q/c| 2
|/| |) ,
log(|
min(
LRE
if c c 0
e
NoSD
NoSD
c
q c
Example: Assume that you want to compare an approximate value with a 15 digits certified 
value of 
π
. LRE metric can show this in a easy way 
Certified value  C = 3.14159265358979 
Approx.  value  Q = 3.14159265300001 
mjkLRE(C, Q, 15) = 9.7 
This means that two values are close for about 10 significant digits. LRE metric rejects non 
significant digits. Look at this example: 
Certified value  C = 0.000133333333333333 
1
These functions appear by courtesy of Michael J. Kozluk. This algorithm was first programmed into an Excel user 
function, by Michael, in standard 32 bit precision. As it works fine also for comparing long extended numbers (NoSD> 
15), we have now developed its multiprecision version xLRE(). 
Xnumbers Tutorial 
248 
Approx.  value  Q = 0.000133333333333311 
mjkLRE(C, Q, 15) = 12.8 
The two numbers appear exact up to the 17
th
digit, but the relative error is about 1E-13 
LRE is very useful when you work with long string of extended numbers.  
For example, compare this approximation of "e" (Napier’s number) 
Certified value  C = 2.71828182845904523536028747111 
Approx.  value  Q = 2.71828182845904523536028747135 
xLRE(C, Q, 30) = 28.1 
At the first sight it is hard to say, but the LRE function shows immediately a precision of about 
28 digits 
Xnumbers Tutorial 
249 
Special Functions 
The computation of special functions is a fundamental aspect of numerical analysis in virtually 
all areas of engineering and the physical sciences. 
All these special functions have a high-fixed-precision. Because most of these special functions 
are in the form of infinite series or infinite integrals, their numeric solutions are quite 
complicated, and we have spent many times for selecting and testing many different algorithms 
in order to achieve the highest possible accuracy in 32 bit arithmetic.  
Error Function  Erf(x) 
errfun(x)   
Returns the error function 
=
x
t
dt
e
erf x
0
2
2
( )
π
Accuracy: about 1E-14 per x > 0 
Exponential integral Ei(x) 
exp_integr(x) 
Returns the exponential integral  
=−
x
t
dt
t
e
Eix
( )
Accuracy: about 1E-14 for any x  0 
This version
1
accept also negative argument 
For definition is  
0
( )
( )
1
>
− =
E x x x
x
Ei
Exponential integral En(x) 
expn_integr(x, n)   
Returns the exponential integral of n-th order 
dt
t
e
E x
n
xt
=−
1
n
( )
Accuracy: about 1E-14 for x> 0 and n > 0 
1
This extension appears thanks to the courtesy of  Hans Günter 
Documents you may be interested
Documents you may be interested