Introducción a la GSL (GNU Scientific Library) - Evaluar un polinomio La librería GSL (GNU Scientific Library) es una potente librería disponible en C para realizar complejos cálculos científicos. Este artículo va a servir como introducción a dicha librería.
Lo primero que necesitamos para trabajar con esta librería en Ubuntu es el paquete
libgsl0-dev. Si no me equivoco el paquete libgsl0dbl, necesario para ejecutar programas hechos con esta librería, viene de serie en el sistema.
Vamos a ver el funcionamiento de la librería evaluando el polinomio: 4×2+3x+2 cuando x = 2:
[/COLOR]
[COLOR=#808080] /* ejemplo_gsl.c */[/COLOR]
[COLOR=#339933]#include <stdio.h>[/COLOR]
[COLOR=#339933]#include <gsl/gsl_poly.h>[/COLOR]
[COLOR=#993333]int[/COLOR] main [COLOR=#009900]([/COLOR][COLOR=#993333]void[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#009900]{[/COLOR]
[COLOR=#993333]double[/COLOR] coeficientes[COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#009900]{[/COLOR] [COLOR=#cc66cc]2[/COLOR], [COLOR=#cc66cc]3[/COLOR], [COLOR=#cc66cc]4[/COLOR] [COLOR=#009900]}[/COLOR];
[COLOR=#993333]double[/COLOR] x [COLOR=#339933]=[/COLOR] [COLOR=#cc66cc]2[/COLOR];
[COLOR=#993333]double[/COLOR] resultado [COLOR=#339933]=[/COLOR] gsl_poly_eval [COLOR=#009900]([/COLOR]coeficientes, [COLOR=#cc66cc]3[/COLOR], x[COLOR=#009900])[/COLOR];
[COLOR=#000066]printf[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#ff0000]"4*x2 + 3*x + 2 = %f[COLOR=#000099][B]\n[/B][/COLOR]"[/COLOR], resultado[COLOR=#009900])[/COLOR];
[COLOR=#b1b100]return[/COLOR] [COLOR=#cc66cc]0[/COLOR];
[COLOR=#009900]} [/COLOR]
El polinomio se evalúa usando la función You are not allowed to view links.
Register or Login, que tiene como parámetros:
- coeficientes: un array que contiene los coeficientes del polinomio.
- 3: es el tamaño del array de coeficientes.
- x: contiene el valor que queremos evaluar.
Para compilar el ejemplo bastaría con hacer:
[/COLOR][/B]
[COLOR=#c20cb9][B][COLOR=magenta]gcc[/COLOR][/B][/COLOR][COLOR=lime]-o ejemplo_gsl ejemplo_gsl.c -lgsl -lgslcblas[/COLOR]
[COLOR=gray]
[/COLOR]
Este programa daría como resultado [COLOR=lime]4*x2 + 3*x + 2 = 24.000000[/COLOR]
[/COLOR]
[/COLOR]