Modified Bessel function of the first kind, with order zero and exponential scaling.

You're viewing an older version of this page (#135). View the current version.

View versions (1)

Interface

#include <codecogs/maths/special/bessel/i/i0.h>

using namespace Maths::Special::Bessel::I;

Overview

These function return solutions to the Modified Bessel Function of the first kind with zero order.

The differential equation

z^2 \frac{d^2y}{dz^2} + z \frac{dy}{dz} - (z^2)y = 0
(1)

is called the modified Bessel&#039;s equation of zero order, with the solution known as the modified Bessel function,

I_{0}(z) = \sum_{k=0}^{\infty} \frac{\left ( \frac{1}{4}z^2 \right )^k}{(k!)^2}
(2)

where \Gamma(n) is the gamma function.

GPL Licence — free for non commercial use. See Licence details.

FUNCTION

I0_exp

Returns exponentially scaled modified Bessel function of the first kind, with order zero.

The function is defined as I_0(x) \exp(x) = \exp(-|x|) J_0(i x).

See also i

Accuracy:

<pre> Relative error: arithmetic domain # trials peak rms IEEE 0,30 30000 5.4e-16 1.2e-16 </pre>

References

Cephes Math Library Release 2.8: June, 2000

Example 1

#include <codecogs/maths/special/bessel/i/i0.h>
#include <stdio.h>

int main()
{
  using namespace Maths::Special::Bessel::I;

  for(double x=0; x<6; x+=1)
  {
    double y=I0_exp(x);
    printf("\n I0_exp(%.1lf)=%lf", x,y);
  }
  return 0;
}

Output:

I0_exp(0.0)=1.000000
I0_exp(1.0)=0.465760
I0_exp(2.0)=0.308508
I0_exp(3.0)=0.243000
I0_exp(4.0)=0.207002
I0_exp(5.0)=0.183541

Parameters

x
input argument
Author

Stephen L. Moshier. Copyright 1984, 1987, 2000

Author

Documentation by Will Bateman (August 2005)

Interactive Calculator

x
Result

FUNCTION

I0

Returns modified Bessel function of order zero of the argument (v=0).

The function is defined as I_0(x) = J_0(ix).

The range is partitioned into the two intervals [0,8] and (8, infinity). Chebyshev polynomial expansions are employed in each interval.

Accuracy:

<pre> Relative error: arithmetic domain # trials peak rms DEC 0,30 6000 8.2e-17 1.9e-17 IEEE 0,30 30000 5.8e-16 1.4e-16 </pre>

Example:

#include <codecogs/maths/special/bessel/i/i0.h>
#include <stdio.h>

int main()
{
  using namespace Maths::Special::Bessel::I;

  for(double x=0; x<6; x+=1)
  {
    double y=I0(x);
    printf("\n I0(%.1lf)=%lf", x,y);
  }
  return 0;
}

Output:

I0(0.0)=1.000000
I0(1.0)=1.266066
I0(2.0)=2.279585
I0(3.0)=4.880793
I0(4.0)=11.301922
I0(5.0)=27.239872

References

Cephes Math Library Release 2.8: June, 2000

Parameters

x
value to be transformed.
Author

Stephen L. Moshier. Copyright 1984, 1987, 2000

Author

Documentation by Will Bateman (August 2005)

Interactive Calculator

x
Result