Biblioteca Matemática
<math.h>


La librería math.h es un archivo de cabecera de la biblioteca estándar del lenguaje de programación Cesta diseñado para operaciones matemáticas básicas. Muchas de sus funciones incluyen el uso de números en coma flotante. C++ también implementa estas funciones por razones de compatibilidad y las declara en la cabecera math.
La biblioteca de matemáticas es relativamente fácil de usar, al igual que las vistas previamente. Se debe incluir la directiva de pre procesamiento #include <math.h>, además de recordar de ligar la biblioteca de matemáticas al compilar:
gcc progmat.c -o progmat -lm
Un error común es el olvidar incluir el archivo <math.h>.
Una nota importante: si se está programando en C/C++ bajo Linux, y se utiliza uno de los compiladores nativos de este sistema operativo (gcc o g++), es necesario incluir, al compilar, la opción -lm, dado que, de lo contrario, el compilador generará un error. Por ejemplo, si tenemos un fichero fuente con funciones de la biblioteca matemática, llamado mi_fich_fuente_math.c, para compilarlo será necesario dar la orden siguiente en la consola de comandos de Linux:
$ gcc mi_fich_fuente_math.c -lm -o <nombre_del_ejecutable>
Esto, asimismo, no es necesario si se programa en C/C++ bajo Windows utilizando la herramienta gráfica MS Visual C++.
Todas las funciones en las que participan ángulos toman y devuelven radianes.
Funciones matemática
Se muestra a continuación una lista de funciones matemáticas. Son fáciles de usar y algunas de ellas han sido ya usadas previamente. No se proporciona ejemplo de las mismas.
Nombre
Descripción
acos

Arco coseno
asin

arco seno

atan

arco tangente

atan2

arco tangente de dos parámetros
ceil

menor entero no menor que el parámetro
cos

coseno

cosh
coseno hiperbólico

exp(double x)
función exponencial, computa ex
abs

valor absoluto

floor

mayor entero no mayor que el parámetro
fmod

residuo de la división de flotantes
frexp

Fracciona y eleva al cuadrado.
ldexp

tamaño del exponente de un valor en punto flotante
log

logaritmo natural

log10

logaritmo en base 10
modf

obtiene un valor en punto flotante íntegro y en partes
pow(x,y)

eleva un valor dado a un exponente, xy
sin

seno

sinh

seno hiperbólico

sqrt

raíz cuadrada

tan

tangente

tanh

tangente hiperbólica



Constantes matemáticas
La biblioteca de matemáticas define varias constantes (por lo general desechadas). Siempre es aconsejable usar estas definiciones.
  • M_E La base de los logaritmos naturales e.
  • M_LOG2E El logaritmo de e de base 2.
  • M_LOG10E El logaritmo de e de base 10.
  • M_LN2 El logartimo natural de 2.
  • M_LN10 El logaritmo natural de 10.
  • M_SQRT2 La raíz cuadrada positiva de 2
  • M_SQRT1_2 La raíz cuadrada positiva de 1/2
Ejemplos:
El siguiente programa calcula las raíces la ecuación cuadrática ax2 + bx + c = 0
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
int main()
{
/* Este programa permite el calculo de las raices
de una ecuacion cuadratica */
/* Declaración de variables*/
double a, b, c, x_1, x_2;
/* Entrada de datos */
cout<< "Dame los coeficientes a,b y c de la ecuacion cuadratica \n";
cin>>a >> b >> c;
/* Procesamiento de datos */
x_1 = ( -b + sqrt( pow(b,2.0) – 4.0 * a * c) ) / (2.0 * a);
x_2 = ( -b - sqrt( pow(b,2.0) – 4.0 * a * c) ) / (2.0 * a);
/* Salida de Resultados */
cout<<”\n”;
cout<<”La primera raiz es ”<< x_1 << "\n";
cout<<”La segunda raiz es ”<< x_2 << "\n";
cout<<”\n”;
system("PAUSE");
return 0;
}
El siguiente programa también calcula las raíces de la ecuación cuadrática, pero considera el caso general en el que pueden haber raíces imaginarias:
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
int main()
{
/* Este programa permite el calculo de las raices
de una ecuacion cuadratica */
/* Declaración de variables*/
double a, b, c, x_1, x_2;
double x_1r, x_1i, x_2r, x_2i;
/* Entrada de datos */
cout<< "Dame los coeficientes a, b y c de la ecuacion cuadratica \n";
cin>>a >> b >> c;
/* Procesamiento de datos y Salida de Resultados */
if ( (pow(b,2.0) - 4.0 * a * c) > 0)
{
x_1 = ( -b + sqrt( pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a);
x_2 = ( -b - sqrt( pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a);
cout<<"\n";
cout<<"La primera raiz es "<< x_1 << "\n";
cout<<"La segunda raiz es "<< x_2 << "\n";
cout<<"\n";
}
else
{
x_1r = -b / (2.0 * a);
x_1i = sqrt( fabs(pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a);
x_2r = -b / (2.0 * a);
x_2i = -sqrt( fabs(pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a);
cout<<"\n";
cout<<"La primera raiz es "<< x_1r <<" + " <<x_1i << " i \n";
cout<<"La segunda raiz es "<< x_2r <<" " <<x_2i << " i \n";
cout<<"\n";
}Bibloteca matematica



http://www.youtube.com/watch?v=IfMsf6OEPcQ