Funciones matemáticas en PHP.

Resumen.

Si hay algo recurrente en cualquier lenguaje de programación es el cálculo matemático. En este artículo exploraremos los fundamentos de cálculo de este potente lenguaje de programación que nos ofrece posibilidades prácticamente infinitas. Desde lo más simple, como calcular una factura, hasta lo más complejo, como análisis estadístico avanzado.

Artículo.

Si hay algo que es recurrente en cualquier lenguaje de programación son los cálculos matemáticos, y PHP nos permite realizar casi cualquier tipo de calculo por no decir cualquier tipo de calculo. Desde las operaciones mas básicas a las mas complejas, PHP dispone de un conjunto de funciones que nos pueden ayudar a realizar cálculos casi de cualquier tipo, sea cual sea tu disciplina.

Empezaremos con las operaciones mas básicas, las primeras que aprendimos en el colegio.

+ para sumar
- para restar
* para multiplicar
/ para dividir


<?php
// Operaciones matemáticas básicas
$a = 3;
$b = 4;
$suma = $a + $b;
echo "$a + $b = $suma";
?>


A estas cabe agregar la las siguientes:

% - resto
sqrt() - raíz cuadrada
pow() - potencia


<?php
/* Aplicamos la función resto */

$a = 7;
$b = 3;
$resto = $a % $b;

echo "El resto de dividir $a entre $b es $resto <br />";

/* Calculamos ahora la raíz cuadrada */

$a = 10;
$raiz = sqrt($a);

echo "La raíz cuadrada de $a es $raiz <br />";
?>


La función de potencia es interesante de examinar con un poco de conocimiento matemático, veamos el motivo.


<?php
/* Calculamos una potencia */

$a = 2;
$potencia = pow($a, 3);

echo "El cubo de $a es $potencia";
?>


Pero esta función no solo nos sirve para calcular potencias, también cualquier raíz. La función pow() recibe dos parámetros, el primero el valor sobre el que queremos calcular la potencia, el segundo, la potencia que queremos calcular. Pues bien, si nos remontamos a nuestros viejos conocimientos matemáticos, debemos saber que la raíz cuadrada de un valor es lo mismo que elevar al inverso de 2 es decir 1/2, si queremos calcular la raíz cúbica, para lo cual PHP no tiene una función, elevaremos a 1/3.


<?php
/* Calculamos la raíz cubica con pow() */

$a = 125;
$raiz_cubica = pow($a, 1/3);

echo "La raíz cubica de $a es $raiz_cubica";
?>


Las operaciones matemáticas muchas veces precisan de una precedencia, es decir, efectuar un cálculo antes que el siguiente, para lo cual recurrimos a los paréntesis.


<?php
/* Precedencia de los cálculos */

$base = 5;
$altura = 4;

$area_triangulo = ($base * $altura) / 2;

echo "La superficie del triangulo es $area_triangulo <br />";

/* Otro ejemplo mas con la hipotenusa */
// Teorema de Pitagoras

$c1 = 3;
$c2 = 4;

$h = sqrt(pow($c1, 2) + pow($c2, 2));

echo "Hipotenusa = $h <br />";
?>


Hasta aquí hemos tratado las operaciones matemáticas mas elementales, las que siempre necesitaremos casi para cualquier cosa, pero existen otras muchas, de las que solo pondremos algún ejemplo, podemos por ejemplo calcular logaritmos mediante las siguientes funciones: log() para logaritmos naturales (neperianos) o de base e, y log10(), para logaritmos decimales.


<?php
/* Calculamos logaritmos */

$valor = 5;

$log_natural = log($valor);
$log_decimal = log10($valor);

echo "El logaritmo natural (e) de $valor es $log_natural <br />
El logaritmo decimal de $valor es $log_decimal";
?>


El listado de funciones matemáticas de PHP es muy extenso, por lo que si necesitas algún cálculo concreto, consulta la página oficial de PHP.

Pero las funciones matemáticas no se limitan a esto, también podemos ejecutar funciones matemáticas sobre conjunto de datos, la variables tipo array, veamos un caso.


<?php
/* Realizamos operaciones sobre array */

$conjunto = array(5,8,1,4,6,7,4);

$suma = array_sum($conjunto);
$n = count($conjunto);
$media = $suma/$n;

echo "Los valores suman $suma <br />
El total de valores es $n <br />
La media de los valores es $media";
?>


También podemos, por ejemplo, multiplicar un array por un valor, para lo cual precisaremos usar un bucle, en este caso, el bucle foreach.


<?php
// Vamos a multiplicar por 3 cada elemento del array

$conjunto = array(5,8,1,4,6,7,4);

foreach($conjunto as $key => $datos){
$multiplicar[$key] = $datos * 3; // Creamos el nuevo array
}

echo '<pre>';
print_r($conjunto);
echo '</pre>';

echo '<pre>';
print_r($multiplicar);
echo '</pre>';
?>


Explicando un poco el código, la variable $datos representa cada elemento del array, y sencillamente aplicamos la operación de multiplicar, que está recogida en la variable tipo array $multiplicar.

También podemos aplicar funciones a los array, por ejemplo para calcular una potencia.


<?php
// Elevamos array al cuadrado con la funcion pow()
$conjunto = array(5,8,1,4,6,7,4);

foreach($conjunto as $key => $datos){
$cuadrado[$key] = pow($datos, 2); // Creamos el nuevo array
}

echo '<pre>';
print_r($conjunto);
echo '</pre>';

echo '<pre>';
print_r($cuadrado);
echo '</pre>';
?>


También podemos operar con tres arrays, por ejemplo, sumándolos.


<?php
// Operamos con tres arrays diferentes

$conjunto1 = array(5,8,1,4,6,7,4);
$conjunto2 = array(3,4,5,3,9,7,2);
$conjunto3 = array(2,1,7,4,9,3,8);

foreach($conjunto1 as $key => $datos){
// Creamos el nuevo array
$suma[$key] = ($datos + $conjunto2[$key]) - $conjunto3[$key];
}

echo '<pre>';
print_r($conjunto1);
echo '</pre>';

echo '<pre>';
print_r($conjunto2);
echo '</pre>';

echo '<pre>';
print_r($conjunto3);
echo '</pre>';

echo '<pre>';
print_r($suma);
echo '</pre>';
?>


Lo que hemos hecho es muy sencillo, hemos sumado los dos primeros arrays, por eso los hemos puesto entre paréntesis, y al resultado de esa suma, le restamos el tercero.

Aquí, dado que solo pretendemos hacer es una introducción a las funciones matemáticas con PHP, no resulta oportuno en tratar mas posibilidades de calculo, hemos hecho algunas operaciones básicas con variables simples y variables tipo array, y a partir de aquí, podéis plantearos retos, como resolver una ecuación de segundo grado por poner un ejemplo que cualquiera conoce, o la correlación de Pearson, que no todos conocen.
Tags: matemático || formulas || funciones || array || foreach || array_sum || pow || count

Comentarios.

Sin comentarios, publica el tuyo.