You are on page 1of 11

1

Trabajo Mtodos Numricos


y Programacin (EIQ-150)
Grupo N 24
Sebastan Rojas Nuez
Jos Maldonado Sandoval
Fecha entrega: 25 de noviembre de 2013
Paralelo 1
Profesor: Danilo E. Carvajal
2

PA1. Haga una lista de 10 actividades en las cuales usted podra usar un mtodo numrico de los
mencionados en clases para resolver algn problema en su futuro profesional, indicando el
mtodo numrico que se puede utilizar. Ejemplos: regresin lineal para calibrar un rotmetro,
regresin no lineal para determinar parmetros reolgicos de un fluido no Newtoniano, mtodo
de Gauss para resolver sistemas de ecuaciones no lineales que describen el flujo en una red de
caeras.
1. Mtodo de Newton-Raphson para calcular el tiempo que demora un cuerpo de masa M
en llegar al fondo de un recipiente de altura H lleno con un lquido viscoso.
2. Mtodo de diferencias finitas para calcular la velocidad de sedimentacin de una
suspensin a partir de su concentracin volumtrica.
3. Mtodo de interpolacin de Lagrange para determinar la densidad de una sustancia a una
temperatura y concentracin determinadas usando datos experimentales.
4. Mtodo de Newton-Raphson para calcular el tamao de un estanque esfrico de modo
que pueda contener un volumen V de agua.
5. Mtodo de Simpson o mtodo trapezoidal compuesto para determinar el n necesario de
unidades de transferencia presentes en una torre de absorcin de gas A a la cual se
ingresa gas A en una concentracin M y de la cual sale el mismo gas con concentracin N.
6. Mtodo de Simpson o mtodo trapezoidal compuesto para determinar la razn entre las
nuevas concentraciones de gases A y B presentes en una torre de destilacin discontinua
luego de que la concentracin de uno se reduzca en un N%.
7. Mtodo de newton para sistemas de ecuaciones para determinar las concentraciones de
los lquidos presentes en un extractor lquido-lquido, sabiendo que el soluto que sale es
igual al que entra.
8. Mtodo de Regresin lineal para determinar el coeficiente de transferencia de masa de
una membrana a partir de los datos de las concentraciones de soluto en un solvente en
funcin del tiempo.
9. Mtodo de biseccin para determinar la variacin del caudal de un sistema de tuberas al
haber varias secciones del sistema funcionando, habiendo calculado experimentalmente la
variacin de la presin y la resistencia del flujo de agua.
10. Mtodo de Euler para calcular la cantidad de contaminante radiactivo distribuido
uniformemente dentro de un reactor cerrado, sabiendo que disminuye con una tasa de
decaimiento proporcional a su concentracin.





3

PM3. Hacer una lista de 10 lenguajes de programacin que puedan ser utilizados para uso
cientfico, con una breve descripcin de cada uno (10 lneas mximo), indicando breve historia,
caractersticas generales y aplicaciones. Ejemplos de lenguajes de programacin tiles para uso
cientfico son: MATLAB, Visual Basic y Fortran. Pregunta sin puntaje: hacer una lista de cursos de la
malla curricular de su carrera en los cuales usted cree que le pueden ser tiles tales programas.
1. Python: creado a fines de los aos 80 por Guido van Rossum, informtico nacido en los
Pases Bajos, se convirti en el sucesor del lenguaje ABC, su ltima versin es la 3.3.3/2.7.5.
Es un lenguaje de programacin con una sintaxis sencilla que facilita la lectura, con grandes
bibliotecas estndar y mdulos de terceros fcilmente escritos en C, C++, Java o .NET. Est
disponible para los principales sistemas operativos Windows, Linux/Unix, OS/2, entre otros. La
licencia es administrada por Python Software Foundation, y est bajo un cdigo abierto lo que
significa que es libre. Dentro de sus aplicaciones est el desarrollo web y de internet, es decir
permite escribir scripts CGI bsicos, Marcos como Django y TurboGears, Zope; posee amplio
soporte para HTML y XML, alimenta procesamiento de rss, es muy usado en Biotecnologa y
Fsica, en el desarrollo de juegos y graficos 3D. )

2. Ruby: Creado por Yukihiro Matsumoto, en 1995, quien mezcl sus lenguajes preferidos
(Perl, Smalltalk, Eiffel, Ada y Lisp). Es un lenguaje de programacin interpretado, reflexivo y
orientado a objetos. Su uso est bajo una licencia de software libre, debe su nombre a que los
amigos ms cercanos de Matsumoto lo encontraron similar a Perl (perla) y por eso el nombre ruby
(rub). Las ltimas versiones son las 1.8.7_p248 y la 1.9.2_p180. Posee 4 niveles de mbito de
variable: clase, local, instancia y global, la posibilidad de redefinir los operadores, portable.
Compaas como Intel, HP, e incluso la NASA lo utilizan para sus programaciones, ya que entre sus
usos est la simulacin, generacin de cdigos y el procesamientos de imgenes, por nombrar
algunos.( https://www.ruby-lang.org/es/)

3. Ada: lenguaje de programacin orientado a objetos, diseado por Jean Ichbiah por
encargo del departamento de defensa norteamericana durante los 70, creado con una filosofa
orientada a la disminucin de errores comunes, por medio de un tipado fuerte y chequeos en
tiempo de ejecucin que se pueden desactivar para mejorar el rendimiento. Por lo mismo sus
aplicaciones estn en reas que necesitan gran seguridad, como la defensa, aeronutica, la
industria aeroespacial, etc. Su nombre est puesto en honor a Lady Ada Augusta Byron, condesa
de Lovelace, considerada la primera programadora de la historia. Presenta una sintaxis basada en
Pascal, es legible aun para aquellos que desconocen el lenguaje. En Ada todo el programa est
contenido en un procedimiento que puede a su vez, tener subprogramas dentro.
(http://www.gedlc.ulpgc.es/docencia/mp_i/GuiaAda/ada01.html )

4. C#: en ingls C Sharp, es un lenguaje diseado por Microsoft para su plataforma .NET en
el 2001. destacan entre sus creadores Anders Hejlsberg, quien adems particip en la creacin de
Turbo Pascal la herramienta Rad Delphi, y Scoot Wiltamuth. Combina los mejores elementos de
otros lenguajes conocidos como C++, Java, Visual Basic o Delphi. Su nombre est inspirado en la
4

notacin musical C# que indica sostenido (Sharp), es decir, que es un semitono ms alta que C,
haciendo referencia a que C# es superior a C/C++. A pesar de que la plataforma .NET permite
escribir en muchos lenguajes, C# est diseado especficamente para esta, por lo que usarla es
mucho ms fcil e intuitivo que otro lenguaje. El cdigo escrito es Autocontenido, esto quiere
decir que no necesita ficheros de cabecera o IDL. Incorpora un tipo bsico decimal, que permite
realizar operaciones con alta precisin, lo que vuelve a C# muy til en el mbito financiero.
(http://csharp-station.com/)

5. Algol: Algorithmic Langauge, de ah su nombre, fue muy popular durante los aos 60 y si
bien, nunca lleg a ser una lenguaje de utilizacin comercial, fue la base para programas como C,
Pascal y Ada, y por lo tanto fue considerado el lenguaje ms importante de su era, Algol es
independiente del hadware donde se ejecuta, lo que lo vuelve mucho ms portable, sin embargo
hacia difcil la implementacin del lenguaje. Utiliza bloques de declaraciones entre parntesis y fue
el 1er lenguaje en usar los trminos begin y end para delimitar acciones, su primera versin,
Algol 58 incorpor los ciclos, esto despertara mucho inters y no tardara en salir una versin
mejorada tanto en Europa como en Estados Unidos, Algol 60 se convirti en un lenguaje estndar
usado en la descripcin de algoritmos principalmente el papel, incluy tambin los condicionales
if-then-else. Algol W, elaborado por Niklaus y Tony Hoare, fue la ltima versin conocida.
(http://groups.engin.umd.umich.edu/CIS/course.des/cis400/algol/algol.html)

6. Fortran: Su nombre es una abreviatura de The IBM Mathematical Formula Translating
Ssem, en 1956 se escribi el primer compilado en Fortran (2500 lneas en IBM 704), durante
aos fue el principal lenguaje de programacin usado en ciencias y en anlisis numrico, esto
debido a que posee mltiples libreras de subrutinas cientficas, entre sus capacidades estn
incluidas el uso de variables compleja y la doble precisin. Su uso requiere un archivo de texto
ascii llamado cdigo fuente, cuyo nombre termina en .f90. Una gran cantidad de capacidades
de C han sido incluidas en F90 (versin ms popular de Fortran) de modo que incluso es posible
combinar ambos lenguajes, a pesar de esto su uso es cada vez menor, siendo reemplazado por los
lenguajes C y C++.
(http://www.um.es/docencia/barzana/DIVULGACION/INFORMATICA/Lenguaje-FORTRAN.html
http://wwwprof.uniandes.edu.co/~gprieto/classes/compufis/prog_lang.pdf)

7. Pascal: Es un lenguaje de alto nivel derivado del lenguaje Algol, fue creado entre 1968 y
1971 por Niklaus Wirth, se cre con fines de aprendizaje, por lo cual es estructurado, sencillo y
prctico. Al usar Pascal se debe declarar el tipo de todas sus variables, sus programas estn
divididos en 2 partes, declarativa (se enuncian unidades, funciones, procedimientos, etc.) y
ejecutiva (ejecuta lo declarado anteriormente). Su forma estructurada permite obtener programas
ordenados, eficientes y libres de errores, adems permite uso de estructuras dinmicas como
listas, pilas, colas y rboles. Es de propsito general aunque principalmente se usa para ensear
lenguaje de programacin estructurado y para el control de procesos en tiempo real.
(http://sicuz.unizar.es/siscen/doc/ccuz19.pdf
http://thegeneralsystems.blogspot.com/2011/06/lenguaje-de-programacion-pascal.html)
5


8. PL/1: Llamado programming languange I, es un lenguaje gratuito que fue creado en 1970
por IBM, se cre para fines cientficos y comerciales. No fue muy aceptado debido a que
presentaba muchos problemas de implementacin. Es un lenguaje estructurado por capas, donde
la externa corresponde a datos y cdigos y las otras corresponden a procedimientos ejecutables
como subrutinas o funciones. Posee solo una serie de palabras reservadas en ingles, pero son
reconocidas solamente por contexto. Este lenguaje otorga total control al definir una variable,
incluye muchos complementos para programacin por defecto. PL/1 permite que los archivos sean
procesados como cadenas de bits o como registros individuales, en forma secuencial o aleatoria.
(http://www.di-mare.com/adolfo/cursos/2007-2/pp-Cobol-PL1.pdf)

9. Scilab: Lenguaje desarrollado por INRIA en 1990, para su uso en el software Scilab, opera
desde funciones hasta integrales, adems es fcil su uso en resolucin de ecuaciones y graficacin.
Por defecto codifica los nmeros como nmeros reales en coma flotante de doble precisin.
Permite mltiples funciones en la misma lnea adems distingue entre minsculas y maysculas:
Las variables usadas en Scilab nunca son declaradas, estas se crean automticamente y cambian
dependiendo de los valores que se le asignan.
(http://personal.us.es/echevarria/documentos/ApuntesScilab.pdf)

10. Mathematica: Lenguaje de alto nivel creado por Stephen Wolfram, es de propsito general
y permite programar a 3 niveles, procedural (uso de ciclos, bloques e iteraciones), funcional
(funciones, definicin, etc.), programacin basada en reglas. Est basado en el tipo computacin
simblica, su sintaxis es muy similar a la del C. En Mathematica existen 2 tipos de expresiones,
normales (ej. head[part1,par2,...]) y los tomos (expresiones indivisibles en expresiones ms
simples, como smbolos, nmeros o strings). Este lenguaje es ampliamente usado en ciencias ya
que tiene soporte para matrices, elementos de graficacin,
(http://www.oldemarrodriguez.com/yahoo_site_admin/assets/docs/Programaci%C3%B3n_Proced
imental.9974626.pdf)

6

PE5. Buscar en la web, libros o artculos, algn ejemplo aplicativo relacionado a su carrera en el
cual se pueda utilizar el mtodo de Rungue Kutta (cuarto orden) para ecuaciones diferenciales de
valor inicial. Indicar desarrollo paso a paso en informe. Utilizar EXCEL como herramienta de
clculo. Graficar resultados.
Ejercicio tomado del libro: "Principios bsicos y clculos en ingeniera qumica , sexta edicin,
autor: David M. Himmelblau, pag 614 y 615"

Un destilador pequeo est separando propano y butano a 135C; en un principio contiene 10 Kg
mol de una mezcla cuya composicin es x=0.30 (x = fraccin molar del butano). Se alimenta mezcla
adicional (x
F
= 0.30) a razn de 5 kg mol/h. Si el volumen total del lquido en el destilador es
constante y la concentracin del vapor del destilador (x
D
) est relacionada con x
S
como sigue:

(a)
Sabiendo que el valor inicial de x
s
es 0.3, qu valor tendr x
s
luego de transcurridas 5.85 horas?
Solucin: Puesto que el propano y el butano forma disoluciones ideales, no tenemos que
preocuparnos por cambios de volumen durante la mezcla o la separacin. Slo necesitamos el
balance de materia para responder a la pregunta hecha. Si t es la variable independiente y x
s
la
dependiente, podemos decir que:
Balance de butano (C
4
): La entrada al destilador es


La salida del destilador es igual a la cantidad condensada
5 mol cond. x
D
mol C
4

h Mol condensado

La acumulacin es


5 mol alimentacin 0.30 mol C
4

h Mol alimentacin
Xs= fraccin molar de butano en el destilador
XD=fraccin molar de butano destilado
Xf=fraccin molar de butano en la mezcla alimentada
dXs= variacin de fraccin molar de butano en el
destilador
dt=variacin de tiempo
7

Nuestra ecuacin de estado no estacionario es entonces:

(b)
Reduciendo a una variable dependiente sustituyendo (a) en (b)


Solucin con el Mtodo de Rungue kutta:
Seudocdigo:


Para (N+1) nmeros igualmente espaciados en el intervalo [a, b]:

ENTRADA : valores de entorno a, b; nmero entero N; condicin inicial
SALIDA: aproximacin de w para y a (N+1) valores de t.

Parmetros constantes: N, a, b,
Variables y expresiones a evaluar: h, t, w, i, K1, K2, K3, K4

Paso 0 Fijar valores iniciales de N, a, b,

Paso 1 Fijar h = (b-a)/N;
t = a;
w = ;
SALIDA (t,w)

Paso 2 Para i = 1,2,,N, hacer pasos 3 5
Paso 3 Fijar k1 = h * f(t, w)
k2 = h * f(t + (h / 2), w + ((k1) / 2))
k3 = h * f(t + (h / 2), w + ((k2) / 2))
k4 = h * f(t + h, w + k3)

Paso 4 fijar w = w+(K1+2K2+2K3+K4)/6;(Calcular wi)
Paso 5 SALIDA (t,w).
Paso 6 STOP


Procedimiento completo tomado de: Burden, 2010, pag. 267.



t=a+ih. (Calcular ti.)

Paso 5 SALIDA (t,w).


dXs= fraccin molar de butano en el destilador
XD=fraccin molar de butano destilado
dt =variacin de tiempo
8

Cambiando variables:



Fijando constantes:
N 10
A 0
B 5,85
0,3

H 0,585

Calculando la tabla segn el mtodo
I t W f(t,w) k1 k2 k3 k4
- 0 0,3 0,03461538 0,02025 0,01851114 0,0186594 0,01706619
1 0,585 0,31860954 0,02918731 0,01707457 0,01564762 0,01576617 0,01445363
2 1,17 0,33433551 0,02471835 0,01446024 0,01327884 0,01337488 0,01228476
3 1,755 0,34767758 0,02100862 0,01229004 0,01130489 0,01138353 0,01047211
4 2,34 0,35903408 0,01790836 0,01047639 0,00965002 0,00971497 0,00894878
5 2,925 0,36872661 0,01530305 0,00895228 0,00825569 0,00830973 0,0076627
6 3,51 0,37701758 0,01310357 0,00766559 0,00707599 0,00712122 0,00657274
7 4,095 0,38412304 0,01123956 0,00657514 0,00607439 0,00611245 0,00564601
8 4,68 0,39022218 0,00965474 0,00564802 0,0052215 0,00525365 0,00485592
9 5,265 0,39546455 0,00830362 0,00485762 0,00449343 0,00452069 0,00418077
10 5,85 0,39997566 0,00714907 0,0041822 0,00387059 0,00389378 0,00360271

Por lo tanto la respuesta es w=y=0, 399975660,4 , es decir, transcurridas 5,85 horas X
s
=0,4

0.29
0.34
0.39
0 2 4 6 8
f(t,w)
f(t,w)
9

PN4. En media pgina describa de modo resumido la historia del desarrollo del mtodo de Gauss
con sustiucin hacia atras, indicando el o los inventores del mtodo, el periodo en el cual fue
desarrollado, as como su evolucin hasta la forma que se conoce en la actualidad.
Los orgenes de este mtodo aparecen muchos siglos atrs, en la antigua china, diseado en la
resolucin de cuadrados mgicos. Desde all se transfiri a Babilonia y Grecia. Sera en Europa
donde se perfeccionara hasta lo que utilizamos hoy en da. En grecia un buen ejemplo es el libro
arithmetica de Diophantus, alrededor del 250 d.C.
Isaac Newton present por primera vez este mtodo de la forma actualmente conocida. Entre la
segunda mitad del siglo XVII y principios del XVII hay al menos 30 fuentes distintas donde est
descrito el mtodo, por ejemplo, Nathaniel Hammond lo presenta en su libro The elements of
algebra, en 1752 como The Method of resolving Questions, which contain four Equations, and
four unknown Quantities. Sera Carl Friedrich Gauss quien le sacara el mximo provecho a este
mtodo que l mismo calificaba como comn. Al usarlo en la resolucin del mtodo de mnimos
cuadrados, que abrira el campo de la astronoma y la cartografa, ya que poda ser usado para
calcular por ejemplo, rbitas de planetas y otros cuerpos del universo. Desde ese entonces hasta
la aparicin de los computadores, el mtodo se ha publicado en innumerables ocasiones. Algunos
ejemplos son el norteamericano Myrick Hascall Dooliitle, quien lleg a resolver sistemas de 41x41
entre el 1873 y el 1911. Doolittle seala que es necesario mecanizar el mtodo; durante la I guerra
mundial Andr-Louis Cholesky disea el primer algoritmo pensado para una mquina, posterior al
1850; con la llegada de las matrices, se abre una nueva forma de hacer clculos, no sera hasta en
el 1947 cuando aparece una presentacin del mtodo de eliminacin de Gauss creada por John
Von Neumann y Herman Goldstine. Debido a que los nuevos cientficos que usaban el mtodo
hacan referencia a gauss, como por ejemplo Chauvenet (1868) o Liagre (1879): limination des
inconnues entre les quations du minimum (quations normales) mediante les coefficients
auxiliaires de Gauss. El mtodo sera conocido en adelante como eliminacin de gauss con
sustitucin, que tiene por objetivo, dado un sistema con igual numero de incgnitas que de
ecuaciones, ir eliminando variables en el sistema hasta tener una ecuacin con una incgnita que
una vez resuelta se sustituye en las otras hasta obtener los valores de todas las variables.

Informacin obtenida de How Ordinary Elimination Became Gaussian Elimination ,Joseph F.
Grcar ( http://arxiv.org/pdf/0907.2397v4.pdf).

10

PV4. Construya un programa en VISUAL BASIC basado en el mtodo trapezoidal con iteracin de
Newton (Trapezoidal with Newton iteration, algoritmo 5.8, Burden 9 edicin, 2010) para resolver
numricamente una ecuacin diferencial de valor inicial definida por usted. El programa debe ser
entregado en archivo EXCEL e impreso en informe.
Resolver con el mtodo trapezoidal con sustitucin de newton la siguiente ecuacin:

Con 0 < t < 1 , N=10, tol=0,00001 sabiendo que y(0)= - 1.
La solucin analtica es .
(ejercicio tomado de numerical analysis, 9th edition BURDEN, ilustration page 353.)

Seudocdigo para Visual Basic:

Private Sub CommandButton1_Click()
'mtodo trapezoidal con sustitucion de newton
'definir valores de entrada
a = Cells(4, 2) 'valor inicial
b = Cells(5, 2) ' valor final
alfa = y(a) 'alfa=y(a)
tol = Cells(6, 2)
n = Cells(8, 2) 'numero de espaciamientos
m = Cells(7, 2) ' numero de iteraciones por cada paso
h = (b - a) / n 'PASO 1
t = a
w = alfa

For i = 1 To n 'PASO 2
k1 = w + (h / 2) * f(t, w) 'PASO3
w0 = k1
j = 1
flag = 0
Do While flag = 0 'PASO 4
w = w0 - ((w0 - ((h / 2) * f(t + h, w0)) - k1) / (1 - ((h / 2) * fy(t + h, w0)))) ' PASO 6
If Abs(w - w0) < tol Then 'PASO 6
flag = 1
Else
j = j + 1
w0 = w
If j > m Then
MsgBox ("excedi el nmero mximo de iteraciones")
End
End If
11

End If
Loop
t = a + i * h 'PASO 7



Cells(10, 1) = "i"
Cells(10, 2) = "t"
Cells(10, 3) = "w"
Cells(10, 4) = "f(t,w)"
Cells(10, 5) = "y(t)"

Cells(i + 10, 1) = i
Cells(i + 10, 2) = t
Cells(i + 10, 3) = w
Cells(i + 10, 4) = f(t, w)
Cells(i + 10, 5) = y(t)
Next i
MsgBox ("Procedimiento Completado")
End Sub


Public Function fy(t, w)
fy = (10 * w - 10 * t) * Exp(5 * t)
End Function


Public Function f(t, w)
f = ((5 * Exp(5 * t)) * (w - t) ^ 2) + 1
End Function


Public Function y(t)
y = t - Exp(-5 * t)
End Function