Vous êtes sur la page 1sur 5

CAPTULO 1

Introduccin
Antes de hacer el esfuerzo para escribir este libro, los autores nos hemos
planteado el porqu deberamos hacerlo. Varios motivos se han unido para
impulsarnos a escribir este documento que tienes en tus manos y que trata sobre
software libre, en concreto software libre aplicado a clculo numrico.
En primer lugar, en los ltimos aos se ha odo mucho hablar de software libre.
Se trata sin duda de una palabra atractiva, que puede resultar sugerente para muchas
personas. Pero
qu es exactamente el software libre?
Las sutilezas de las diferentes licencias constituyen un tema aparte [1], pero
podemos entender el espritu a travs de las palabras de los documentos de la
fundacin para el software libre, Free Software Foundation (FSF) en ingls [2]:
El software libre concierne a la libertad de los usuarios para ejecutar, copiar,
distribuir, cambiar y mejorar el software:
1. Libertad para ejecutar el programa.
2. Libertad para estudiar cmo funciona el programa, y adaptarlo a las
necesidades propias. El acceso al cdigo fuente es un prerrequisito para esto.
3. Libertad para redistribuir copias.
4. Libertad para mejorar el programa, pudiendo redistribuir estas mejoras para
que todo el mundo pueda beneficiarse. De nuevo, el acceso al cdigo fuente es un requisito
previo.
SOFTWARE LIBRE PARA CLCULO NUMRICO
2 RC Libros
La lista de proyectos de este tipo [2], [3] es realmente impresionante. Algunos
han conseguido una calidad alta, por ejemplo el compilador gcc o el sistema operativo
Linux, mientras que otros a lo mejor han cado en el olvido por falta de
programadores o por no tener una comunidad amplia de personas que contribuyan
con preguntas, manuales y cdigo al proyecto. Precisamente, consideramos que el
aspecto ms relevante que aparece tpicamente en un proyecto de este tipo, es que
un conjunto de personas separadas a distancias de miles de kilmetros sean capaces, a
travs de la web, del e-mail y de foros, de aunar sus esfuerzos para crear o mejorar
un producto, de forma que todos ellos se benefician unos de otros. Evidentemente,
una gran parte del peso recae sobre los desarrolladores, pero es cierto que la difusin
de los programas necesita a los usuarios, que con su experiencia ayudan a encontrar
fallos, hacen manuales, crean foros de discusin y son, en definitiva, los que al final dan
el visto bueno al producto.
Por qu se interesan los autores, profesores universitarios, en el software
libre?
Porque bajo el software libre subyace la idea de compartir conocimiento y
favorecer la existencia de nuevas ideas; y qu es investigar y ensear sino crear
conocimiento y procurar que nuestros alumnos aprendan e incluso vayan ms all de
lo aprendido? Creemos que el espritu del software libre es similar al que debera
reinar en las instituciones universitarias.
Concretando estas ideas, los profesores necesitamos herramientas para
nuestra investigacin y nuestra docencia, y estas herramientas deben tener una calidad
mnima y ser fcilmente distribuibles entre nuestros alumnos. En muchos casos las
compaas que ofrecen software no han sabido ofrecer productos con una flexibilidad
adecuada para la labor docente o, en otros casos, especialmente en el campo de la
electrnica, incluso aun siendo de pago, la calidad no era la esperada.
En este contexto, por qu escribimos el libro? Qu orientacin tiene?
El principal motivo es que una difusin de una herramienta libre necesita una
buena documentacin. Pretendemos poner nuestro grano de arena en esta tarea. Para
ello, nos basaremos en el conocimiento de software libre que hemos acumulado
durante aos y en la experiencia de trabajo en clculo numrico en ingeniera. Las
contribuciones de este libro son varias:
1. Poder encontrar en una nica obra una informacin extensa que permita
a una persona instalar y empezar a trabajar con los programas. No obstante, somos
conscientes de que es imposible y no tiene sentido reproducir los manuales accesibles
en internet, por lo que hemos intentado hacer un esfuerzo de sntesis y dar
abundantes referencias.
CAPTULO 1: INTRODUCCIN
RC Libros 3
2. Una recopilacin de la informacin que, segn nuestra experiencia, es
ms importante para trabajar. Hemos hecho un esfuerzo generalista, pero a la vez
tratamos temas, como la depuracin de cdigo, que no suelen encontrarse en
manuales de inicio y que son, sin embargo, imprescindibles para un uso profesional.
3. Una comparacin de las herramientas. La evaluacin de las herramientas
es un proceso complejo y a veces subjetivo, pero creemos que la informacin que
hemos obtenido puede ser de ayuda para que una persona se decida entre una
herramienta u otra.
A quin va dirigido este libro?
Este libro va dirigido a:
1. Estudiantes de ciencias o ingenieras que necesiten realizar clculo
numrico y no quieran usar versiones de pago o piratas.
2. Profesores e investigadores que por algn motivo no desean usar
programas de pago, donde el ejemplo ms extendido es MatLab [5]. Entre otros
puede haber motivos econmicos, bsqueda de mejores lenguajes de programacin,
independencia de casas comerciales, adhesin a la filosofa de cdigo libre, necesidad
de conocer el cdigo fuente para profundizar en l, etc.
3. Profesionales que necesiten realizar clculos sin necesidad de una
inversin econmica fuerte.
4. Personas interesadas en el software libre en general.
Qu aspectos no cubre este libro?
En este libro no encontrar una discusin de los fundamentos matemticos de
los mtodos numricos. Para ello, existen referencias clsicas [4]. Tampoco
encontrar un manual de uso de Linux, aunque ste ser el sistema operativo sobre el
que mostremos muchos ejemplos. De hecho, todos los programas que tratamos
tienen su versin en Windows, por lo que el conocimiento de Linux tampoco es
imprescindible.
Qu conocimientos previos se requieren?
El libro es bastante autosuficiente en cuanto a la parte de programacin. No
obstante, es conveniente tener conocimientos generales de programacin y es
inevitable que hagamos referencia a MatLab, por ser el programa ms extendido,
cuando realicemos comparaciones.
SOFTWARE LIBRE PARA CLCULO NUMRICO
4 RC Libros
Dado que usamos el sistema operativo Linux, es necesario que el usuario tenga
unos conocimientos mnimos y que sepa instalarlo. Estos conocimientos se adquieren
en cualquier libro general o incluso en revistas de informtica. Actualmente,
distribuciones como Kubuntu [12] son muy fciles de instalar y guan totalmente al
usuario. No obstante, como hemos mencionado, todos los programas analizados
tienen versiones en Windows. Por ello, un usuario de Windows puede perfectamente
seguir los ejemplos. De hecho, el anlisis de una de las herramientas ser mostrado en
este sistema operativo.
Convenciones usadas en el libro
En este libro se usar la cursiva como elemento dentro de un prrafo normal
para indicar comandos o palabras clave de un lenguaje, variables utilizadas en ejemplos
o resaltado en general (por ejemplo, la primera vez que aparece un nombre de un
programa o de una librera). Cuando un comando aparezca como primera palabra de
una frase, el comando aparecer con mayscula, aunque en s mismo deba escribirse
en minscula (por ejemplo, Fread y fread). Cuando aparezcan explcitamente varias
lneas de programacin, stas seguirn este formato:
Tipo de letra usado para lneas de programacin o de comandos.
Cuando hablemos de un string nos referiremos a una cadena de caracteres.
Usaremos indistintamente el trmino ingls o el nombre, ms largo, en castellano. Un
vector es una lista de nmeros accesibles por un nico ndice, una matriz es un
conjunto de nmeros al que se puede acceder mediante dos ndices, y un array ser
un conjunto de nmeros accesibles mediante ndices. El concepto ms general es el de
array, que engloba a vectores y matrices. Muchos ejemplos en el libro se refieren a
matrices y vectores por comodidad de visualizacin, pero el lector se dar cuenta
enseguida de que casi todos los conceptos se extienden de forma trivial a arrays
multidimensionales.
Estructura del libro
El libro comienza con un captulo general de introduccin histrica, instalacin
y fuentes de informacin de cada programa (captulo 2).
A continuacin, en el captulo 3 se tratan los aspectos bsicos que permiten al
lector comenzar a trabajar y escribir sus propias funciones.
El captulo 4 est dedicado a operaciones que se pueden realizar con funciones,
tales como minimizacin e integracin.
El captulo 5 se dedica a la definicin de vectores, matrices y arrays, un aspecto
fundamental en clculo numrico.
CAPTULO 1: INTRODUCCIN
RC Libros 5
El captulo 6 muestra la manera de representar grficamente funciones, datos,
etctera.
En el captulo 7 hablaremos de otros aspectos algo ms avanzados como la
integracin de otros lenguajes, el uso de entornos de programacin, etctera.
Finalmente, en el captulo 8 haremos una comparativa de las herramientas,
prestando especial atencin a sus diferencias, para que una persona habituada a
trabajar con una de ellas no cometa demasiados errores al pasar a otra.

Vous aimerez peut-être aussi