Bernoulli numbers and polynomials
MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.
MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.
bernoulli(n) returns the n-th
bernoulli(n, x) returns the n-th
Bernoulli polynomial in x.
The Bernoulli polynomials are defined by the generating function
The Bernoulli numbers are defined by
An error occurs if
n is a numerical value
not representing a nonnegative integer.
n is an integer larger than the value
Pref::autoExpansionLimit(), then the
bernoulli(n) is returned symbolically. Use
get an explicit numerical result for large integers
n contains non-numerical symbolic identifiers,
then the call
bernoulli(n) is returned symbolically.
In most cases, the same holds true for calls
x). Some simplifications are implemented for special numerical
values such as
x = 0,
x = 1/2,
= 1 etc. for symbolic
n . Cf. Example 3.
Note that floating-point evaluation for high degree polynomials may be numerically unstable. Cf. Example 4.
The floating-point evaluation on the standard interval x ∈
[0, 1] is numerically stable for arbitrary
When called with a floating-point value
the function is sensitive to the environment variable
determines the numerical working precision.
The first Bernoulli numbers are:
bernoulli(n) $ n = 0..11
The first Bernoulli polynomials:
bernoulli(n, x) $ n = 0..4
n is symbolic, then a symbolic call is
bernoulli(n, x), bernoulli(n + 3/2, x), bernoulli(n + 5*I, x)
x is not an indeterminate, then the evaluation
of the Bernoulli polynomial at the point
x is returned:
bernoulli(50, 1 + I)
bernoulli(3, 1 - y), expand(bernoulli(3, 1 - y))
Certain simplifications occur for some special numerical values
x, even if
n is symbolic:
bernoulli(n, 0), bernoulli(n, 1/2), bernoulli(n, 1)
Calls with numerical arguments between and 1 are automatically rewritten in terms of calls with arguments between 0 and :
bernoulli(n, 2/3), bernoulli(n, 0.7)
Calls with negative numerical arguments are automatially rewritten in terms of calls with positive arguments:
Float evaluation of high degree polynomials may be numerically unstable:
exact := bernoulli(50, 1 + I): float(exact);
bernoulli(50, float(1 + I))
DIGITS := 40: bernoulli(50, float(1 + I))
delete exact, DIGITS:
diff(bernoulli(n, f(x)), x)
expand(bernoulli(n, x + 2))
An arithmetical expression representing a nonnegative integer
M. Abramowitz and I. Stegun, “Handbook of Mathematical Functions”, Dover Publications Inc., New York (1965).