Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

cplxexp Transzendente Funktionen

&pagelevel(3)&pagelevel


In diesem Abschnitt werden die transzendenten Funktionen der Klasse complex beschrieben.


#include <complex.h>

class complex
{

public:

friend complex exp(complex);
friend complex log(complex);
friend complex pow(double, complex);
friend complex pow(complex, int);
friend complex pow(complex, double);
friend complex pow(complex, complex);
friend complex sqrt(complex);

};



complex z = exp(complex x)

Es wird e x geliefert.

complex z = log(complex x)

Der natürliche Logarithmus von x wird geliefert.

complex z = pow(complex x, complex y)

Es wird x y geliefert.

complex z = sqrt(complex x)

Die Quadratwurzel von x, die im ersten oder vierten Quadranten der komplexenEbene enthalten ist, wird geliefert.

FEHLERERGEBNISSE


exp liefert (0.0, 0.0), wenn der Realteil von x so klein oder der Imaginärteil so groß ist, daß es zu einem Überlauf kommt. Ist der Realteil groß genug, um einen Überlauf hervorzurufen, liefert exp:

  • (HUGE, HUGE), wenn der Kosinus und Sinus des Imaginärteils von x > 0 sind;
  • (HUGE, -HUGE), wenn der Kosinus > 0 ist und der Sinus <= 0
  • (-HUGE, HUGE), wenn der Sinus > 0 ist und der Kosinus <= 0
  • (-HUGE, -HUGE), wenn der Sinus und der Kosinus <= 0 sind.

In allen diesen Fällen wird errno auf ERANGE gesetzt.

Die Funktion log() liefert (-HUGE, 0.0) und setzt errno auf EDOM, wenn x (0.0, 0.0) ist. Auf der Standardfehlerausgabe wird eine Meldung angezeigt, die auf einen SING-Fehler hinweist.

Die fehlerbehandelnden Prozeduren können durch die Funktion complex_error() (siehe "cplxerr Fehlerbehandelnde Funktionen") verändert werden.

BEISPIEL

Das folgende Programm gibt eine Folge komplexer Zahlen sowie deren Exponentialpotenzen aus.

#include <iostream.h>
#include <complex.h>
main()
{
  complex c;
  for (c = complex(1.0,1.0); real(c) < 4.0; c += complex(1.0,1.0))
  {
    cout <<c<<" "<<exp(c)<<"\n";
  }
  return 0;
}

Das Ergebnis der Programmausführung ist:

( 1, 1) ( 1.46869, 2.28736)
( 2, 2) ( -3.07493, 6.71885)
( 3, 3) ( -19.8845, 2.83447)
%  CCM0998 Verbrauchte CPU-Zeit: 0.0012 Sekunden

Komplexe Zahlen können mit dem Operator << ausgegeben werden. Die Bearbeitung komplexer Zahlen ist genauso einfach wie die der Zahlen vom Typ float oder double.

SIEHE AUCH


cplxcartpol, cplxerr, cplxops, cplxtrig