Defining Numerical Values

If you make a definition such as f[x_]:=value, the Wolfram Language will use the value you give for any f function it encounters. In some cases, however, you may want to define a value that is to be used specifically when you ask for numerical values.

Defining ordinary and numerical values.

This defines a numerical value for the function f:

N[f[x_]]:=Sum[x^-i/i^2,{i,20}]

Defining the numerical value does not tell the Wolfram Language anything about the ordinary value of f:

f[2]+f[5]

If you ask for a numerical approximation, however, the Wolfram Language uses the numerical values you have defined:

N[%]

You can define numerical values for both functions and symbols. The numerical values are used by all numerical Wolfram Language functions, including (RefLink[NIntegrate, paclet:ref/NIntegrate]), (RefLink[FindRoot, paclet:ref/FindRoot]), and so on.

Defining numerical values that depend on numerical precision.

This defines a numerical value for the symbol const, using 4n+5 terms in the product for n-digit precision:

N[const,{n_,Infinity}]:=Product[1-2^-i,{i,2,4n+5}]

Here is the value of const, computed to 30-digit precision using the value you specified:

N[const,30]

The Wolfram Language treats numerical values essentially like upvalues. When you define a numerical value for f, the Wolfram Language effectively enters your definition as an upvalue for f with respect to the numerical evaluation operation (RefLink[N, paclet:ref/N]).