1. C + + Complex
Las funciones y los operadores correspondientes a los números complejos se
llevan a cabo por medio de complejo de clase y se encuentran en el directorio C +
+ biblioteca matemática de números complejos. La definición de clase
compleja sobrecarga el nivel de entrada, de salida, operadores aritméticos, de
comparación y asignación de C + +, así como los nombres estándar de la
exponencial, el poder logaritmo, raíz cuadrada y funciones trigonométricas (seno,
coseno, seno hiperbólico, y coseno hiperbólico). Funciones para convertir entre
coordenadas cartesianas y polares también se proporcionan. En esta sección se
describen las funciones, clases, y los operadores que se encuentran en complejos
de clase . Las declaraciones de estas funciones y los operadores están contenidos
en el archivo de cabecera complex.h . En las descripciones de las funciones, la
forma (a, b) se utiliza para representar un número complejo. Esto es equivalente a
la expresión matemática a + bi .
Descripción de las funciones
Las descripciones de las funciones de la biblioteca complejo se organizan de la
siguiente manera:
constructores y operadores de conversión
incluir constructores y operadores de conversión de variables complejas.
cartesianas y polares funciones coordenadas
incluyen descripciones de abs () , arg () , conj () , imag () , norma () , polar
() y real () .
exponencial, logarítmica de potencia, y funciones de raíz cuadrada
incluyen descripciones de exp () , log () , pow () y sqrt () .
funciones trigonométricas e hiperbólicas
incluyen descripciones de sin () , cos () , senh () y cosh () .
operadores
incluyen los operadores disponibles para la biblioteca compleja ( + , * , == ,
y así sucesivamente).
complejas funciones I / O
proporcionar el complejo I / O, es decir, la inserción y la extracción de los
operadores << y >> .
Cada conjunto de descripciones de funciones incluye la siguiente información:
un resumen de las funciones
una breve descripción de la finalidad de las funciones
detalles sobre el diagnóstico, si procede
cualquier información preventiva adecuada.
2. En las siguientes descripciones, información de diagnóstico específico se da para
una función o grupo de funciones, en su caso. Sin embargo, la información de
diagnóstico más general no está incluido en este libro.Además, algunas de las
funciones de biblioteca complejos llamar SAS / C funciones de la biblioteca de
matemáticas. Si usted encuentra que usted necesita más información sobre el
manejo de errores para funciones matemáticas, o si necesita más información
acerca de las funciones llamadas por las funciones de biblioteca complejas,
consulte la Referencia SAS / C Library . Si desea utilizar los manejadores de
señales a desbordamientos de trampa, consulte la SAS / C Library Reference,
Volume 1 también.
complejo ()
Los constructores y operadores de conversión
SINOPSIS
# Include<complex.h>
clase compleja
{
pública:
complejo ();
complejo (doubleimag real, doble = 0,0);
};
DESCRIPCIÓN
Los siguientes constructores se definen para complejo de clase .
complejo ()
permite declarar variables complejas sin inicializar ellos. Alcance Archivo-
variables complejas declaradas sin tener un inicializador de un valor inicial
de (0,0) , otros sin inicializar variables complejas tienen un valor inicial
definido.
complejo (doubleimag real, doble = 0,0)
permite la inicialización explícita de variables complejas. Por ejemplo, las
dos sentencias siguientes son válidos:
complejo c1 (1,0, 2,0);
/ / La parte imaginaria es 0,0.
complejo c2 (1,0);
Este constructor también permite la conversión implícita de tipos aritméticos
con valores complejos. Por ejemplo, las dos sentencias siguientes son
válidos:
complejo c3 = 3,4; / / c3 es (3,4, 0,0).
c3 = 10 / / c3 es (10,0, 0,0).
El uso de este constructor, también puede crear valores complejos dentro
de expresiones. Aquí está un ejemplo:
/ / Utiliza complejo ::operator +
c2 = c3 + complejo (1,2, 3,5);
3. abs, arg, conj, imag, norma, polar, real
Funciones cartesianas y polares
SINOPSIS
# Include<complex.h>
clase compleja
{
pública:
amigo doble abs (complejo a);
amigo doble arg (complejo A);
amigo complejo conj (complejo A);
amigo doble imag (complejo A);
amigo doble norma (complejo a);
amigo complejo polar (double r,
doble t);
amigo doble real (complejo A);
};
DESCRIPCIÓN
Las funciones siguientes se definen para complejo de clase , donde d , r ,
y t son de tipo doble y una y z son de tipo complejo .
d = abs (a)
devuelve el valor absoluto (magnitud) de un .
d = arg (a)
devuelve el ángulo de un (medido en radianes) en el intervalo semiabierto (-
a ].
z = conj (a)
devuelve la conjugación de una . Si a es (x, y) , entonces conj (a) es (x,-y) .
d = imag (a)
devuelve la parte imaginaria de una .
d = norma (a)
devuelve el cuadrado de la magnitud de una .
z = polares (r, t)
devuelve un complejo . Los argumentos representan un par de
coordenadas polares, donde r es la magnitud y t es el ángulo (en
radianes). polares (r, t) se define por la fórmula r * e i * t .
d = real (a)
devuelve la parte real de una .
4. exp, log, pow, sqrt
Exponencial, Logarítmica Potencia, raíz cuadrada y funciones
SINOPSIS
# Include<complex.h>
clase compleja
{
pública:
amigo complejo exp (complejo A);
amigo complejo log (complejo A);
amigo complejo pow (double a, b, complejo);
amigo complejo pow (complejo a, int b);
amigo complejo pow (un complejo, doble b);
amigo complejo pow (un complejo,
complejo b);
amigo complejo sqrt (complejo A);
};
DESCRIPCIÓN
Las siguientes funciones están sobrecargados por la biblioteca de C + +
compleja, donde z es de tipo complejo y un y b son de los tipos indicados
por los prototipos de funciones en la sinopsis.
z = exp (a)
rendimientos e un .
z = log (a)
devuelve el logaritmo natural de una .
z = pow (a, b)
devuelve una b .
z = sqrt (a)
devuelve la raíz cuadrada de una que está contenido en el primer cuadrante
o cuarto del plano complejo.
5. DIAGNÓSTICO
La exp () y log () funciones tienen consideraciones especiales de
diagnóstico.
exp () función
Si el desbordamiento se produce por la parte real de un ser pequeño o la
parte imaginaria de un ser grande, entonces exp
(a) rendimientos (0,0) y errno se establece ERANGE
Si la parte real de una es lo suficientemente grande para causar
desbordamiento, exp (a) devuelve valores diferentes en las siguientes
condiciones relacionadas con el seno y el coseno de la parte imaginaria
de una.
En valores de retorno de exp (a) , la parte real de un número
complejo un depende del cos (imag (a)) y la parte imaginaria depende de
la sen (imag (a)) . Corresponde enorme a la más grande
representabledoble .
Valor de retorno para exp (a)
cos (imag (a)) sin (imag (a)) exp (a) regresa
positivo positivo (ENORME, ENORME)
positivo negativo o 0 (ENORME, ENORME-)
negativo o 0 positivo (-ENORME, ENORME)
negativo o 0 negativo o 0 (-ENORME, ENORME-)
Como se puede ver en esta tabla, la traducción es simple. Si el coseno es
positivo, exp (a) grandes ganancias para la parte real de una , si el coseno
es negativo, exp (a) con rendimientos enorme para la parte real. Si el
coseno no es positivo, exp (a) con rendimientos enorme para la parte
real. Las mismas reglas válidas para el seno y la parte imaginaria
de una . En todos los casos de desbordamiento, errno se
establece ERANGE .
log () función
Cuando una es (0,0), log (a) regresa (-enorme, 0) y errno se establece
en EDOM .
6. sin, cos, sinh, cosh
Funciones trigonométricas e hiperbólicas
SINOPSIS
# Include<complex.h>
clase compleja
{
pública:
amigo complejo sin (complejo A);
amigo complejos cos (complejo A);
amigo complejo sinh (complejo A);
amigo complejo cosh (complejo A);
};
DESCRIPCIÓN
Las funciones siguientes se definen para complejo de clase ,
donde una y z son de tipo complejo .
z = sen (a)
devuelve el seno de una .
z = cos (a)
devuelve el coseno de una .
z = sinh (a)
devuelve el seno hiperbólico de un .
z = cosh (a)
Devuelve el coseno hiperbólico de un .
DIAGNÓSTICO
sin (a) y cos (a) cambio (0,0) si la parte real de un desbordamiento de las
causas. Si la parte imaginaria de una es lo suficientemente grande como
para causar desbordamiento, sin (a) y cos (a) los valores de retorno como
se muestra en los valores devueltos para cos (a) y Valores devueltos por el
pecado (a) . Corresponde enorme a la más grande representable doble .
Valor de retorno para cos (a)
cos (real (a)) sin (real (a)) cos (a) regresa
positivo o 0 positivo o 0 (ENORME, ENORME-)
positivo o 0 negativo (ENORME, ENORME)
negativo positivo o 0 (-ENORME, ENORME-)
negativo negativo (-ENORME, ENORME)
7. Valores devueltos por el pecado (a)
sin (real (a)) cos (real (a)) sin (a) regresa
positivo o 0 positivo o 0 (ENORME, ENORME)
positivo o 0 negativo (ENORME, ENORME-)
negativo positivo o 0 (-ENORME, ENORME)
negativo negativo (-ENORME, ENORME-)
sinh (a) y cosh (a) retorno (0,0) si la parte imaginaria de un desbordamiento
de causas. Si la parte real de una es lo suficientemente grande para causar
desbordamiento, sinh (a) y cosh (a) los valores de retorno de acuerdo
con devolver valores para cosh (a) y senh (a) .
Devolver valores para cosh (a) y senh (a)
cos (imag (a)) sin (imag (a)) cosh (a) y senh (a) tanto el retorno
positivo o 0 positivo o 0 (ENORME, ENORME)
positivo o 0 negativo (ENORME, ENORME-)
negativo positivo o 0 (-ENORME, ENORME)
negativo negativo (-ENORME, ENORME-)
En todos los casos de desbordamiento, errno se establece ERANGE .
9. DESCRIPCIÓN
Los operadores aritméticos habituales, operadores de comparación y
operadores de asignación están sobrecargados para números
complejos. Los habituales relaciones de precedencia entre estos
operadores están en vigor. En las siguientes descripciones, un y b son de
tipo complejo y d es de tipo doble .
Los operadores aritméticos
Los siguientes son los operadores aritméticos.
a+b
es la suma aritmética de una y b .
-Un
es la negación aritmética de una .
a-b
es la diferencia aritmética de una y b .
un b *
es el producto aritmético de una y b .
a/bya/d
son el cociente aritmética de una y b o un y d .
Los operadores de comparación
Los siguientes son los operadores de comparación.
a b ==
es distinto de cero si una es igual a b , es cero en caso contrario.
A! = b
es distinto de cero si una no es igual a b , es cero en caso contrario.
Los operadores de asignación
Los siguientes son los operadores de asignación.
a+b=
asigna a una suma aritmética de la misma y b .
a-b=
asigna a una diferencia aritmética de la misma y b .
a*=b
asigna a un producto de la aritmética de la misma y b .
a/b=ya/d=
asignar a un cociente de las medias aritméticas de sí mismos y b o d .
PRECAUCIÓN
Los operadores de asignación no producen un valor que se puede utilizar
en una expresión. Por ejemplo, la construcción siguiente no es válida:
complejo de a, b, c;
a = (b + c =);
10. operador<< y >> operador
Complejas funciones I / O
SINOPSIS
# Include<complex.h>
clase compleja
{
pública:
ostream&operator<< (ostream& os,
complejo c);
istream operador &>> (istream y es,
complejo y c);
};
DEFINICIÓN
Las funciones siguientes se proporciona la inserción y la capacidad de
extracción de los números complejos.
ostream&operator<< (ostream& os,
complejo c)
escribe un número complejo c a os . La salida se formatea de la siguiente
manera:
( parte real , imag-parte )
donde parte real y parte imag- son las partes real e imaginaria del número
complejo, respectivamente. Tanto la parte real y la parte imag- tienen el
formato de dobles. Para obtener más información, consulte la descripción
ción del operador << (ostream&, doble) en la clase ostream . El formato
de parte real y parte imag- está controlado por las banderas asociados con
la corriente. Verenumeraciónformat_state .
istream operador &>> (istream y es
complejo y c)
lee un número complejo con formato de es en c . El istream debe contener
el número complejo para ser leído en uno de estos formatos:
( parte real , imag-parte )
( parte real )
donde parte real y parte imag- son las partes real e imaginaria del número
complejo, respectivamente. Tanto la parte real y la parte imag- deben tener
el formato de doble s. Para obtener más información, consulte la
descripción del operador >> (istream&, doble &) en istream clase . El
formato de parte real y parte imag- está controlado por las banderas
asociados con la corriente. Verenumeraciónformat_state .
11. Recuerde lo siguiente al realizar el complejo I / O:
debe utilizar los paréntesis y las comas para entrada
se puede utilizar el espacio en blanco en su entrada, pero no es
significativo.
Si la variable de entrada representa un número real tal como 5e-2 o (502),
el operador >> lo interpreta como un número complejo con una parte
imaginaria de 0.
DIAGNÓSTICO
Si el istream no contiene un número complejo con el formato
adecuado, operador >> establece el ios::failbit poco en el estado de la
corriente de entrada / salida.
EJEMPLOS
He aquí un ejemplo del uso de <<operador :
complejo c (3.4,2.1);
cout<< "Se trata de un complejo:" << c <<endl;
Este código escribe la siguiente cadena al cout :
Este es un complejo: (3.4,2.1)
Aquí está un ejemplo de uso >>operador . Supongamos cin contiene (1,2,
3,4) . A continuación, el siguiente código lee el valor (1,2, 3,4) y el valor
de c pasa a ser el (1.2,3.4) .
complejo c;
cin>> c;