Documentos de Académico
Documentos de Profesional
Documentos de Cultura
______________________________________________________________________
1
Manuel Dez Minguito
ndice
ndice ................................................................................................................................ 2
Lista de Figuras ................................................................................................................ 2
Lista de Tablas y Algoritmos ........................................................................................... 2
Algunos Fundamentos de Computadores ......................................................................... 4
Breve historia................................................................................................................ 5
La era mecnica (1623-1945) ................................................................................... 5
La primera generacin de ordenadores electromecnicos (1937-1953): Vlvulas de
vaco. ........................................................................................................................ 6
Segunda Generacin (1954-1962): Transistor.......................................................... 6
Tercera generacin (1963-1972): Integracin de transistores en superficies planas:
circuitos integrados................................................................................................... 7
Cuarta generacin (1972-1984). Desarrollo de circuitos integrados........................ 7
Quinta generacin (1984-1990)................................................................................ 7
La actualidad ............................................................................................................ 8
Sistemas numricos y errores ....................................................................................... 8
Representacin en coma flotante............................................................................ 10
Lgica de programacin y estructuras de datos.............................................................. 15
Programacin estructurada ......................................................................................... 15
Algoritmos .................................................................................................................. 16
Diagramas de Flujo................................................................................................. 17
Pseudocdigo.......................................................................................................... 20
Elementos de programacin ....................................................................................... 21
Inicio, Fin ............................................................................................................... 21
Tipos de datos: declaracin y asignacin de variables ........................................... 22
Estructuras de control de flujo................................................................................ 23
Bibliografa..................................................................................................................... 32
Lista de Figuras
Figura 1. Representacin binaria de enteros..................................................................... 9
Figura 2. Representacin en computador de un nmero fraccionario en notacin punto
flotante. ............................................................................................................................. 9
Figura 3. Representacin en coma flotante en simple precisin para un computador con
32 bits de longitud de palabra. ...................................................................................... 11
Figura 4. Conceptos de las tres clases de bloques de programacin. ............................. 16
Figura 5. (Izquierda) Diagrama de flujo de un algoritmo que calcula la suma de los
primeros 50 nmeros enteros. Implementado mediante un ciclo while. (Derecha)
Diagrama de flujo de un algoritmo que calcula el producto escalar de los vectores A y
B . Implementado mediante un ciclo for........................................................................ 19
Figura 6. (Izquierda) Pseudocdigo asociado al algoritmo cuya funcin es sumar los 50
primeros nmeros enteros. (Derecha) Pseudocdigo asociado al algoritmo cuya funcin
es realizar el producto escalar de los vectores A y B ................................................... 20
______________________________________________________________________
3
Manuel Dez Minguito
Breve historia
Una historia completa de los ordenadores debera incluir las mquinas analgicas como
los bacos chinos, las mquinas analticas de J. Loom (1805) y C. Babbage (1834), y la
calculadora de Marchant (1965). Sin embargo nos vamos a restringir principalmente al
rea de los ordenadores digitales.
La evolucin de los ordenadores digitales se divide en generaciones. Cada generacin
se caracteriza por una mejora substancial sobre la generacin precedente en tecnologa
usada para su construccin, su organizacin interna (arquitectura) y sus lenguajes de
programacin.
______________________________________________________________________
5
Manuel Dez Minguito
El primer intento para construir un ordenador electrnico fue realizado por J.V.
Atanasoff, un profesor de Fsica y Matemticas en Iowa State Univ. en 1937. Atanasoff
quera construir una mquina que ayudase a sus estudiantes a resolver sistemas de
ecuaciones diferenciales. En 1941 l y su estudiante C. Berry consiguieron construir una
mquina que poda resolver 29 ecuaciones simultneas con 29 incgnitas. Sin embargo
la mquina no era programable y se pareca ms a una calculadora electrnica.
Otra mquina construida en aquellos tiempos fue Colossus, diseada por Alan Turing
para los militares britnicos en 1943. Esa mquina contribuy decisivamente a la
ruptura de los cdigos secretos del ejrcito alemn durante la segunda guerra mundial.
La existencia de Colossus fue mantenida en secreto incluso despus de la finalizacin
de la II guerra mundial.
El primer ordenador electrnico programable para cualquier tipo de problema fue el
ENIAC (Electronic Numerical Integrator And Computer), construido por J.P. Eckert
and J.V. Mauchly en la Universidad de Pensilvania. Su trabajo comenz en 1943
financiado por el ejrcito norteamericano que necesitaba un forma rpida de realizar
clculos balsticos durante la guerra. La mquina no estuvo completa hasta 1945 y luego
se utiliz extensivamente para el diseo de la bomba de hidrgeno. En 1955 ENIAC se
jubil despus de haber hecho importantes contribuciones en el diseo de tneles de
viento, nmeros aleatorios y predicciones meteorolgicas. Eckert, Mauchly and J. von
Newmann haban comenzado ya a disear una nueva mquina: EDVAC en la que
introdujeron el concepto de programa almacenado. ENIAC era controlado por un
conjunto de interruptores externos de tal forma que, para cambiar el programa uno tena
que alterar su configuracin. EDVAC usaba una memoria que era capaz de almacenar
las instrucciones y los datos lo que la haca incrementar en rdenes de magnitud su
velocidad con respecto a ENIAC. As pues el gran avance de EDVAC fue el reconocer
que las instrucciones de programacin del ordenador podan ser codificadas como
nmeros. Sin embargo, los primeros programas fueron escritos en cdigo mquina.
Eckert y Mauchly desarrollaron posteriormente el primer ordenador con xito
comercial: UNIVAC.
La actualidad
www.top500.org
______________________________________________________________________
8
Manuel Dez Minguito
Por consiguiente, si un entero es representado con los N bits n1, n2 , , nN de forma que
ni = {0,1} , podemos representar slo 2N enteros. Puesto que el signo del entero utiliza
un bit (0 representa +), nos deja solo N-1 bits para representar enteros entre 0 y 2N-1.
Cada procesador maneja de manera ptima una longitud de palabra (386-16 bits,
Pentium-32 bits, Mercer-64 bits), de acuerdo con su diseo.
Esta representacin de los nmeros enteros, denominada signo-magnitud, presenta
ciertas desventajas. Una de ellas es que tiene dos representaciones del 0. Suponiendo
que N = 4 , tanto 1000 como 0000 representan el nmero 0. Otras representaciones
alternativas de nmeros enteros en el computador son la representacin en exceso,
representacin en complemento a uno y representacin en complemento a dos. Describir
con detalle estos otros tipos de representacin queda fuera del mbito de este curso.
Por ser los ms relevantes en clculos cientficos, aqu nos centraremos en nmeros
reales, en cmo stos se representan en un computador y cmo se llevan a acabo
operaciones con ellos. En clculos de ndole cientfica, clculos exclusivamente con
enteros no son frecuentes.
Los nmeros reales pueden representarse de dos modos en el ordenador: representacin
en coma fija y representacin en coma flotante. En la notacin en coma fija, se reservan
un nmero determinados de bits (vase Figura 2) para la parte decimal.
nq +1 . nq
n1 )(2) .
(0.2)
______________________________________________________________________
9
Manuel Dez Minguito
= 13.75(10).
(0.3)
La ventaja de esta representacin es que sabemos en todo momento el error absoluto
que cometemos en todos los nmeros: 2q 1 . Su mayor desventaja es que los nmeros
pequeos tienen un error relativo (que es el que nos interesa que sea pequeo en
mtodos numricos) que puede ser muy grande. Para evitar este problema se emplea la
representacin en punto o coma flotante.
x (2) = q 2m ,
(0.6)
______________________________________________________________________
10
Manuel Dez Minguito
Figura 3. Representacin en coma flotante en simple precisin para un computador con 32 bits de
longitud de palabra.
Cualquier nmero almacenado de esta manera se dice que est almacenado en simple
precisin.
Puesto que para la mantisa hay destinados 7 bits, los nmeros ms grandes que se
podran almacenar con esta mquina (cuando m = 1111111(2) ) son del orden de
2127 1038 y los ms pequeos como 2127 1038 , los cuales suelen ser insuficientes
para muchas aplicaciones cientficas. Por ello, suelen escribirse programas con variables
definidas en doble precisin (representadas por dos palabras en vez de una), aunque
ralentiza notablemente los clculos (las operaciones en simple precisin son realizadas
por el hardware, mientras que las de doble precisin se implementan mediante
software).
La limitacin en q ( 23 bits) implica que 2231 107 , esto es, nuestra computadora
tiene una precisin limitada a 7 cifras decimales. Por ello, cualquier nmero con ms
de 7 cifras decimales ser aproximado cuando sea almacenado en memoria.
Cmo aproximar esos nmeros? Una solucin obvia es truncar el nmero descartando
el resto de decimales. Esto es, el nmero real x (2) = (0.n1n2 n24n25n26 ) 2m es
aproximado por x '(2) = (0.n1n2 n24 ) 2m , resultando x ' < x . La sucesin llega hasta
24 y no hasta 23 , puesto que, como hemos mencionado antes, el primer bit de la
mantisa es siempre 1 y no es necesario almacenarlo.
Otra solucin podra ser el redondeo hacia arriba, resultando
x ''(2) = (0.n1n2 n24 + 224 ) 2m . El resultado es x ' < x < x '' .
Se puede demostrar que el error relativo en el redondeo hacia arriba es
(x x '') / x 224 . O dicho de otro modo, definiendo (x x '') / x , se tiene
(0.7)
x '' = x (1 + ), 224
donde x '' es el nmero propio de la mquina (machine number) ms cercano al nmero
real x . Tambin lo denotaremos como x '' fl (x ) .
Desbordamiento
Aparte de los errores por la finitud de espacio reservado en memoria para representar
nmero reales, de forma ocasional, pueden surgir problemas de desbordamiento.
Cuando m > 127 , en el transcurso de un clculo, queda supera del rango permitido
por la computadora, se dice que se ha producido un desbordamiento, detenindose
______________________________________________________________________
11
Manuel Dez Minguito
(0.12)
x
______________________________________________________________________
12
Manuel Dez Minguito
Existen otras situaciones en las que puede ocurrir una prdida de precisin en las
operaciones. Es muy tpico el caso de funciones que reciben argumentos elevados. Por
ejemplo, si consideramos el cos(x ) , la subrutinas disponibles en las computadoras
suelen reducir el rango de x si este sobrepasa 2 , haciendo uso de la periodicidad del
la funcin. Las operaciones de reduccin de rango (productos y restas) de x pueden dar
lugar a prdida de precisin ( x A ), donde el error relativo (x x A ) / x sea muy elevado.
En tal caso, la funcin cos(x A ) dar resultados totalmente ficticios.
Condicionamiento
Comnmente se emplean las palabras condicionado y condicionamiento para indicar
cun sensible es la solucin de un problema a pequeos cambios en los datos de
entrada. Se dice que un problema est mal condicionado si pequeos cambios en las
entradas producen respuestas dispares. En algunos problemas es posible definir un
nmero de condicionamiento, el cual si es grande indica cundo un problema est mal
condicionado.
Un ejemplo sencillo para ilustrar este concepto es el siguiente. Dada una funcin f (x ) ,
supongamos que queremos evaluar el efecto en f de un perturbacin pequea x + .
El error relativo ser entonces
f (x + ) f (x ) f '(x ) x f '(x )
.
(0.15)
=
f (x ) x
f (x )
f (x )
El factor es la magnitud relativa del error y, por tanto,
x
nmero de condicionamiento.
x f '(x )
representa el
f (x )
______________________________________________________________________
14
Manuel Dez Minguito
Programacin estructurada
Uno de los requisitos que debe seguir el buen programador es redactar un programa
legible e inteligible, incluso para personas que no saben programar. Para ello es
importante que el cdigo mantenga una buena estructura (formato que se usa al redactar
un programa) y que est bien comentado, de tal forma que facilite la comprensin,
modificacin y depuracin del programa. Por el contrario, un programa no estructurado
es aquel en el que no se ha hecho ningn esfuerzo, o muy poco, para ayudar a leerlo y
comprenderlo. Hay que decir que, desde el punto de vista del computador, no hay
diferencia entre un programa estructurado y otro que no lo es. La diferencia est en
cmo de fcil le resulta a una persona entender y manipular el cdigo.
Un programa bien estructurado est constituido por bloques, donde cada bloque est
bien definido y formado por un grupo de instrucciones que desempean una
determinada funcin. Cada bloque tiene una nica entrada al mismo al comienzo de los
mismos, y una nica salida al final. As pues, un programa estructurado no es ms que
un conjunto de bloques, en vez de una lista continua de instrucciones.
Es importante hacer notar que un programa basado en una estructura de bloques no debe
tener instrucciones de salto (v.gr. el GOTO de Basic o Fortran en sus primeras
versiones), tambin llamadas de transferencia incondicional, que rompen el desarrollo
secuencial y por bloques del programa.
Existen tres tipos de bloques necesarios (y suficientes) para programar cualquier
aplicacin de inters. Sin excepcin. Estos son (vase Figura 4),
1. Bloque secuencial
2. Bloque repetitivo (bucle o iteracin)
3. Bloque de seleccin
El bloque secuencial es el tipo ms simple de bloque de programacin, estando formado
por un conjunto de sentencias, una seguida de otra. Un bloque repetitivo efecta la
ejecucin iterada de una seccin del programa y, por ltimo, un bloque de seleccin
ofrece la posibilidad de realizar secuencias diferentes de instrucciones (ramas) segn
una condicin.
______________________________________________________________________
15
Manuel Dez Minguito
Algoritmos
Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la
solucin de un problema.
Mediante algoritmos, somos capaces de resolver problemas cotidianos, como cocinar
una tortilla de patatas, o problemas matemticos, como resolver una ecuacin
diferencial ordinaria por mtodos numricos. En ambas situaciones el algoritmo verifica
las siguientes propiedades:
1. Por definicin, son finitos.
2. Reciben informacin de entrada y producen salidas (resultados).
3. Estn bien definidos: las operaciones que se llevan a cabo se establecen de
forma precisa sin ambigedades.
______________________________________________________________________
16
Manuel Dez Minguito
Diagramas de Flujo
Los diagramas de flujo u organigramas son esquemas que se emplean para representar
grficamente un algoritmo. Se basan en la utilizacin de diversos smbolos convenidos
para representar operaciones especficas. Se les llama diagramas de flujo porque los
smbolos utilizados se conectan por medio de flechas para indicar la secuencia de
operacin.
Es recomendable (especialmente en problemas complicados o muy largos), a la hora de
establecer el problema y antes de comenzar a programar, expresar mediante diagramas
de flujo el algoritmo.
Los diagramas de flujo se dibujan generalmente usando smbolos estndares. No
obstante, smbolos especiales pueden ser introducidos ad hoc siempre y cuando sean
requeridos. Los smbolos ms comunes se muestran a continuacin:
______________________________________________________________________
17
Manuel Dez Minguito
Figura 5. (Izquierda) Diagrama de flujo de un algoritmo que calcula la suma de los primeros 50 nmeros
enteros. Implementado mediante un ciclo while. (Derecha) Diagrama de flujo de un algoritmo que calcula
el producto escalar de los vectores A y B . Implementado mediante un ciclo for.
______________________________________________________________________
19
Manuel Dez Minguito
Pseudocdigo
El pseudocdigo es un lenguaje de alto nivel empleado para describir algoritmos, igual
que los diagramas de flujo aunque ms cercano a la computadora. El objetivo ltimo del
pseudocdigo es facilitar la comprensin del algoritmo. Emplea ciertas convenciones de
los lenguajes de programacin, como C o Fortran, pero omite subrutinas, declaracin de
variables, etc. y no sigue reglas estructurales rgidas.
Concretamente, el pseudocdigo describe un algoritmo utilizando una mezcla de frases
en lenguaje comn, instrucciones de programacin y palabras clave que definen las
estructuras bsicas. Su objetivo es permitir que el programador se centre en los aspectos
lgicos de la solucin a un problema. El pseudocdigo vara de un programador a otro,
es decir, no hay una estructura semntica ni arquitectura estndar.
El pseudocdigo asociado a los ejemplos de la Figura 5 es el siguiente
Suma 0
N 1
While N 50 Then
Suma Suma + N
N N +1
End While
Output Suma
N 5
Input Ai , Bi
1i N
Prod 0
For i = 1 to N
Pr od Pr od + Ai * Bi
End for
Output Prod
Figura 6. (Izquierda) Pseudocdigo asociado al algoritmo cuya funcin es sumar los 50 primeros
nmeros enteros. (Derecha) Pseudocdigo asociado al algoritmo cuya funcin es realizar el producto
escalar de los vectores A y B .
Asignacin
N 1
Operadores relacionales
<, >, , , , and, or
Controladores por contador
For i = 1 to N
Operadores aritmticos
*,/, +, ,
Entrada manual de datos
Input a, b, c
Controladores por centinela
While <condicin> Then
End for
End While
Seleccin simple
If <condicin> Then
Seleccin doble
If <condicin> Then
End If
Else
______________________________________________________________________
20
Manuel Dez Minguito
Seleccin anidada
If <condicin 1> Then
Else
If <condicin 2> Then
Else
End If
End If
End If
Seleccin mltiple
Switch <expresin entera o carcter>
Case valor1:
End Case
Case valor2:
End Case
End Switch
Comentarios
% comentario
While <condicin>
Salida datos por pantalla
Output
Elementos de programacin
En esta seccin presentaremos los ingredientes bsicos requeridos para poner en
funcionamiento un algoritmo. Compararemos diferentes ejemplos mediante diagramas
de flujos, psedocdigo, C y Matlab.
Inicio, Fin
Todos los programas tienen un inicio y un final (son finitos) y por regla general tienen
directivas especiales para que el compilador los identifique.
# include <stdio.h>
main(){
printf(Programa simple en C\n);
}
______________________________________________________________________
21
Manuel Dez Minguito
N 5
Print N
# include <stdio.h>
// Declaro la variable
int N;
main(){
// Asigno valor
N=5;
// Resultado por pantalla
printf(N=%d es un entero\n,N);
}
En C, adems de declarar las variables, stas deben incluir explcitamente el tipo, el cual
no se puede cambiar dinmicamente. Matlab, en cambio, es ms flexible: cuando
Matlab encuentra un nuevo nombre de variable, reserva el espacio debido en memoria
(mayor o menor segn el tipo) y crea la variable. Si la variable ya existe le cambia el
contenido y, si es necesario, reserva un nuevo espacio de memoria.
Por ejemplo,
% Programa en Matlab que asigna diferentes valores y tipos a una variable
______________________________________________________________________
22
Manuel Dez Minguito
Suma
Resta
Producto
Divisin
Potencia
Parntesis (precedencia)
Traspuesta compleja conjugada
Estructuras de seleccin
Permiten decidir qu bloque de instrucciones se van ejecutar, dependiendo de una o
varias condiciones.
Simple
______________________________________________________________________
23
Manuel Dez Minguito
# include <stdio.h>
// Declaro la variable
int numero;
main(){
// Valor proporcionado por usuario
printf(Dme un nmero entero\n);
scanf(%d,&numero);
if (numero>5)
printf(Mayor que 5.\n);
}
Tabla 5. Estructuras de seleccin simple.
Doble
Input numero
If numero > 5 Then
Output Mayor que 5.
Else
Output Menor o igual a 5.
End If
# include <stdio.h>
// Declaro la variable
int numero;
______________________________________________________________________
24
Manuel Dez Minguito
function largerthanfive(numero)
if (numero>5)
f=Mayor que 5.
elseif
f=Menor o igual a 5.
end
}
Tabla 6. Estructuras de seleccin doble.
Anidada
Input numero
If numero > 5 Then
Output Mayor que 5.
Else
Output Menor o igual a 5.
If numero > 4 Then
Output Igual a 5.
Else
Output Menor que 5.
End If
End If
# include <stdio.h>
// Declaro la variable
int numero;
main(){
// Valor proporcionado por usuario
printf(Dme un nmero entero\n);
scanf(%d,&numero);
if (numero>5){
printf(Mayor que 5.\n);
}
______________________________________________________________________
25
Manuel Dez Minguito
elseif
f=Menor que 5.
end
end
}
Tabla 7. Estructura de seleccin anidada.
Mltiple
Input numero
Switch nmero
Case 4:
Output Igual a 4.
End Case
Case 3:
Output Igual a 3.
End Case
Case 2:
Output Igual a 2.
End Case
Case 1:
Output Igual a 1.
End Case
Default :
Output Otro caso.
End Case
End Switch
# include <stdio.h>
// Declaro la variable
int numero;
main(){
// Valor proporcionado por usuario
______________________________________________________________________
26
Manuel Dez Minguito
switch (numero)
case 4
Igual a 4
switch (numero){
case 4:
printf(Igual a 4.\n);
break;
case 3
Igual a 3
case 2
Igual a 2
case 3:
printf(Igual a 3.\n);
break;
case 1
Igual a 1
case 2:
printf(Igual a 2.\n);
break;
otherwise
Otro caso
end
case 1:
printf(Igual a 1.\n);
break;
default:
printf(Otro caso.\n);
break;
}
}
Tabla 8. Estructura de seleccin mltiple.
Estructuras iterativas
Permiten que una o ms instrucciones se ejecuten varias veces.
______________________________________________________________________
27
Manuel Dez Minguito
factorial _ n 1.0
x _ n 1.0
exponencial 0.0
For i = 1 to N
exponencial exponencial
+ x _ n / factorial _ n
x _n x _n * x
factorial _ n
factorial _ n * i
End for
Output exponencial
# include <stdio.h>
function exponencial(x,N)
// Declaro variables
double exponencial; // exp(x) appox.
double x;
double factorial_n; // para el factorial del
// denominador
double x_n; // producto
int i;
// ndice
int N;
// orden aproximacin
factorial_n=1.0;
x_n=1.0;
exponencial=0.0;
main(){
// Valor proporcionado por usuario
printf(Dnde desea evaluar exp(x)?\n);
scanf(%lf,&x);
for i=1:N
exponencial =
exponencial +
x_n./factorial_n;
x_n = x_n * x;
factorial_n =
factorial_n * i;
end
sprintf('exp(%g) appox.
%g.\n',x,exponencial)
Otra estructura iterativa es el bucle while consta de los mismos elementos del bucle for.
La diferencia se encuentra en la disposicin de los elementos dentro del programa. El
bucle while es ms conveniente cuando no se sabe por adelantado el nmero de veces
que se va a repetir el bucle.
El ejemplo siguiente determina la aproximacin de la funcin exponencial empleando
un bucle while.
Input x , N
factorial _ n 1.0
x _ n 1.0
exponencial 0.0
i =1
While i N
exponencial exponencial
+ x _ n / factorial _ n
x _n x _n * x
factorial _ n
factorial _ n * i
i = i +1
End While
Output exponencial
# include <stdio.h>
function exponencial(x,N)
// Declaro variables
double exponencial; // exp(x) appox.
double x;
double factorial_n; // para el factorial del
// denominador
double x_n; // producto
factorial_n=1.0;
x_n=1.0;
exponencial=0.0;
i=1;
while i<N
exponencial =
exponencial +
______________________________________________________________________
29
Manuel Dez Minguito
// ndice
// orden aproximacin
main(){
// Valor proporcionado por usuario
printf(Dnde desea evaluar exp(x)?\n);
scanf(%lf,&x);
x_n./factorial_n;
x_n = x_n * x;
factorial_n =
factorial_n * i;
i=i+1;
end
sprintf('exp(%g) appox.
%g.\n',x,exponencial)
El ltimo de los tres bucles iterados es el do-while. Es similar al ciclo while, con la
diferencia que la condicin se evala despus de ejecutar el cuerpo del bucle. Es decir,
el cuerpo del bucle siempre se ejecuta al menos una vez. Seguimos con el ejemplo de la
exponencial.
______________________________________________________________________
30
Manuel Dez Minguito
factorial _ n 1.0
x _ n 1.0
exponencial 0.0
i =1
Do
exponencial exponencial
+ x _ n / factorial _ n
x _n x _n * x
factorial _ n
factorial _ n * i
i = i +1
While i N
Output exponencial
# include <stdio.h>
// Declaro variables
double exponencial; // exp(x) appox.
double x;
double factorial_n; // para el factorial del
// denominador
double x_n; // producto
int i;
// ndice
int N;
// orden aproximacin
main(){
// Valor proporcionado por usuario
printf(Dnde desea evaluar exp(x)?\n);
scanf(%lf,&x);
printf(Qu orden de aproximacin?\n);
scanf(%d,&N);
// Inicializo exponencial, factorial_n,
// x_n
factorial_n=1.0;
x_n=1.0;
exponencial=0.0;
i=1;
do{
______________________________________________________________________
31
Manuel Dez Minguito
Ejemplo
Bibliografa
Antonakos, J.L. and Jr., K.C.M., 1997. Programacin Estructurada en C. Prentice Hall
Iberia, Madrid, Espaa.
Burden, R.L. and Faires, J.D., 1985. Numerical Analysis. PWS-Kent Publishing
Company, Boston, EE. UU.
Conte, S.D. and Boor, C.d., 1980. Elementary Numerical Analysis: An algorithmic
approach. International Series in Pure and Applied Mathematics. McGraw-Hill,
Nueva York, EE. UU.
Gerald, C.F. and Wheatley, P.O., 2000. Anlisis Numrico con Aplicaciones. Pearson
Educacin, Mxico D.F.
Hefferson, J., 2006. Linear Algebra. Publicacin electrnica (http://joshua.smcvt.edu).
Kernighan, B.W. and Ritchie, D.M., 1988. The C Programming Language. Prentice
Hall Inc.
Kincaid, D. and Cheney, W., 1990. Numerical Analysis. Brooks/Cole Publishing,
Pacific Grove, California, EE. UU.
Lang, S., 1987. Linear Algebra. Undergraduate Texts in Mathematics. Springer, Nueva
York, EE.UU. .
Molina, J.J.Q., 1996. Ecuaciones Diferenciales, Anlisis Numrico y Mtodos
Matemticos. Editorial Santa Rita, Granada.
O'Connor, J.L.F., 1993. Tecnicas de Clculo para Sistemas de Ecuaciones,
Programacin Lineal y Programacin Entera, Madrid, Espaa.
Toro, E.F., 1999. Riemann Solvers and Numerical Methods for Fluid Dynamics.
Springer, Berlin.
______________________________________________________________________
32
Manuel Dez Minguito