Namensräume
Varianten
Aktionen

std::beta, std::betaf, std::betal

Von cppreference.com
 
 
 
 
double      beta( double x, double y );

float       betaf( float x, float y );

long double betal( long double x, long double y );
(1)
Promoted    beta( Arithmetic x, Arithmetic y );
(2)
1) Berechnet die Betafunktion von x und y.
2) Eine Menge von Überladungen oder eine Funktionsschablone für alle Kombinationen von Argumenten vom arithmetischen Typ, die nicht von (1) abgedeckt werden. Wenn ein Argument vom ganzzahligen Typ ist, wird es in double umgewandelt. Wenn ein Argument long double ist, dann ist der Rückgabetyp Promoted ebenfalls long double, andernfalls ist der Rückgabetyp immer double.

Wie alle Spezialfunktionen ist beta nur garantiert in <cmath> verfügbar, wenn __STDCPP_MATH_SPEC_FUNCS__ von der Implementierung auf einen Wert von mindestens 201003L definiert ist und wenn der Benutzer __STDCPP_WANT_MATH_SPEC_FUNCS__ definiert, bevor er irgendwelche Standardbibliotheksheader einbindet.

Inhalt

[edit] Parameter

x, y - Werte vom Gleitkomma- oder Ganzzahltyp

[edit] Rückgabewert

Wenn keine Fehler auftreten, wird der Wert der Betafunktion von x und y zurückgegeben, d.h. 1
0
tx-1
(1 - t)(y-1)
dt
, oder äquivalent dazu
Γ(x)Γ(y)
Γ(x + y)
.

[edit] Fehlerbehandlung

Fehler können wie in math_errhandling angegeben gemeldet werden.

  • Wenn ein Argument NaN ist, wird NaN zurückgegeben und kein Domänenfehler gemeldet.
  • Die Funktion muss nur dort definiert sein, wo sowohl x als auch y größer als Null sind, und darf andernfalls einen Domänenfehler melden.

[edit] Hinweise

Implementierungen, die TR 29124 nicht unterstützen, aber TR 19768 unterstützen, stellen diese Funktion im Header tr1/cmath und im Namensraum std::tr1 bereit.

Eine Implementierung dieser Funktion ist auch in boost.math verfügbar.

beta(x, y) ist gleich beta(y, x).

Wenn x und y positive ganze Zahlen sind, ist beta(x, y) gleich
(x - 1)!(y - 1)!
(x + y - 1)!
. Binomialkoeffizienten können durch die Betafunktion ausgedrückt werden:

n
k


=
1
(n + 1)Β(n - k + 1, k + 1)
.

[edit] Beispiel

(funktioniert wie gezeigt mit gcc 6.0)

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#include <cmath>
#include <iomanip>
#include <iostream>
#include <string>
 
double binom(int n, int k)
{
    return 1 / ((n + 1) * std::beta(n - k + 1, k + 1));
}
 
int main()
{
    std::cout << "Pascal's triangle:\n";
    for (int n = 1; n < 10; ++n)
    {
        std::cout << std::string(20 - n * 2, ' ');
        for (int k = 1; k < n; ++k)
            std::cout << std::setw(3) << binom(n, k) << ' ';
        std::cout << '\n';
    }
}

Ausgabe

Pascal's triangle:
 
                  2 
                3   3 
              4   6   4 
            5  10  10   5 
          6  15  20  15   6 
        7  21  35  35  21   7 
      8  28  56  70  56  28   8 
    9  36  84 126 126  84  36   9

[edit] Siehe auch

(C++11)(C++11)(C++11)
Gammafunktion
(Funktion) [bearbeiten]

[edit] Externe Links

Weisstein, Eric W. "Beta Function." From MathWorld--A Wolfram Web Resource.