Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Anlisis Numerico-2015
30-06-2015
CR12008
MR11140
OM13001
RM11014
Resumen
La importancia de los mtodos numricos ha aumentado en forma
drstica en la enseanza de la ingeniera y la ciencia, lo cual refleja el
uso actual y sin precedentes de las computadoras. En los primeros
apartados se navega en el uso de los mtodos para resolver ecuaciones
no lineales, a travs de mtodos iterativos. Para el caso de interpolacin
se revisan los mtodos ms predominantes para interpolar aquellos
valores que no aparecen en una tabla de valores discretas, tales valores
pudieron haber sido obtenido a travs de experimentos empricos.
Siguiendo con lo habitual, se estudia la derivacin e integracin
numrica como mtodos precedentes a la presentacin de mtodos que
solucionan ecuaciones diferenciales ordinarias de primer orden, de
matera iterativa nuevamente.
CONTENIDO
Introduccin........................................................................................................ 1
Aplicaciones de los mtodos numricos.............................................................2
Solucin ecuaciones no lineales.......................................................................2
Ejemplos....................................................................................................... 2
Solucin para gases de van der Waals aplicando Newton-Raphson..............6
Interpolacin polinomial................................................................................. 10
Descripcin................................................................................................. 10
Ejemplos..................................................................................................... 10
Brazo robtico: Camino ms corto..............................................................14
Derivacin e integracin numrica................................................................20
Ejemplos..................................................................................................... 20
Fuerza efectiva sobre el mstil de un bote de carreras...............................22
Ecuaciones diferenciales con problemas de valor inicial................................32
Descripcin................................................................................................. 32
Ejemplos..................................................................................................... 32
Modelo de contagio epidemiolgico............................................................34
Conclusin........................................................................................................ 39
Bibliografa........................................................................................................ 40
INTRODUCCIN
La matemtica es una herramienta que permite a las personas
comprender el mundo que los rodea; a base de postulados, axiomas,
teoremas, que relacionan cantidades abstractas o smbolos. Existe una
estrecha relacin entre la ciencia y la matemtica, ya que sin esta ltima
no se podra establecer un nexo entre la realidad y la abstraccin del
modelado de la realidad.
Sin embargo, no todo es explicado de manera sencilla. A veces surgen
problemas cuya resolucin conlleva clculos demasiado grandes o
enormes que son imposibles para una persona terminar la odisea en un
tiempo determinado. Otras ocasiones, se desconoce o es imposible, por
medio de mtodos analticos, llegar a una respuesta exacta o precisa, es
por ello que se necesita de una aproximacin cercana a la realidad;
nuevamente esta tarea no es fcil de lograr a travs del esfuerzo
humano.
Los cientficos trabajan a base de modelos, esto es, realizando ciertas
abstracciones del medio y asumiendo postulados de hechos
anteriormente estudiados o analizados, se logra reducir la complejidad
en gran medida. Este modelo identifica, capta y explica el entorno que
nos rodea de una manera muy aproximada.
El ordenador, una maquina o una computadora (segn se le conozca)
fue inventada para realizar clculos grandes en cantidades
sorprendentes de tiempo. Esto produjo una reduccin en los costes de
los proyectos ya que el tiempo para analizar un determinado problema
se redujo considerablemente. Con ayuda de esta capacidad de
procesamiento de las computadoras, se pueden establecer mtodos,
pasos, guas, para resolver problemas matemticos que conllevan una
gran cantidad de clculos o necesiten aproximaciones bastante
considerables.
El anlisis numrico o clculo numrico es la rama de las matemticas
que se encarga de disear algoritmos para, a travs de nmeros y reglas
matemticas simples, simular procesos matemticos ms complejos
aplicados a procesos del mundo real. Desde este punto de vista, el
anlisis numrico proporcionar todo el andamiaje necesario para llevar
a cabo todos aquellos procedimientos matemticos susceptibles de
expresarse algortmicamente, basndose en algoritmos que permitan su
simulacin o clculo en procesos ms sencillos empleando nmeros.
Definido el error, junto con el error admisible, pasamos al concepto de
estabilidad de los algoritmos. Muchas de las operaciones matemticas
pueden llevarse adelante a travs de la generacin de una serie de
1
H (m)
U (m/ s)
Q=U Ac , Donde
canal rectangular
Q=UBH
1
U= R 3 S 2
n
Q=
S 1/ 2 ( BH )
n ( B+2 H )2/ 3
R=
BH
B+2 H
entonces:
Q=
BH 2/ 3 1 /2
R S
n
De esa forma la ecuacin queda con una incgnita H junto con el valor dado de
Q y los parmetros del canal (n, S y B). Aunque se tiene con una incgnita, es
imposible resolverla en forma explcita para encontrar H. Sin embargo, la
profundidad se determina numricamente al reformular la ecuacin como un
problema de races.
5 /3
f ( H )=
S1 /2 ( BH )
Q=0
n ( B+ 2 H )2 /3
H=
( Qn )3 /5 ( B+2 H )2 /5
O bien,
B S3 /10
5/ 2
1 S ( BH )
H=
B
2 ( Qn )3 /2
Ingeniera Elctrica
En el diseo de un circuito elctrico. Cuando se cierra el interruptor la corriente
experimenta una serie de oscilaciones hasta que alcance un nuevo estado
estacionario. En tal caso, existe un periodo de ajuste al cerrar el interruptor
hasta que se alcance un nuevo estado estacionario. La longitud de este periodo
de ajuste est ntimamente relacionada con las propiedades de
almacenamiento de energa, tanto del capacitor como del inductor.
VR ,
VL
es:
V R =L
di
dt , donde L es la
V C=
VC
depende de la carga
sobre ste:
q
C , donde C es la capacitancia.
di
q
+ Ri+ =0
dt
C
d2 q
dq 1
+ R + q=0
2
dt C
dt
1
R 2
t
LC 2 L
( )
q , q0, L
C . Sin
1
R 2
q
t
LC 2 L
q0
( )
[ ( ) ( ) ]
h=h0 sen
Para
2 x
2 tv
cos
+ex
es:
2 d 2 u
+V ( x ) u ( x )=Eu ( x )
2 m dr x 2
V ( r )= V 0 0 x< a
0 x >a
d 2 u ( x ) 2m
+ 2 ( V 0+ E ) u ( x )=0 x < a
d x2
d 2 u ( x ) 2m
+ 2 Eu ( x )=0 x >a
d x2
u ( r )= Asen
2m (V |E|) r
0
r <a
u ( r )=Bexp
( 2 m |E|r ) r >a
2m ( V 0| E|) cot
2 ma ( V
2
|E|)
= 2 m|E|
f ( E ) = 2m ( V 0|E|) cot
2 ma ( V
2
|E|)
+ 2m|E|
Qumica
Uno de los casos en qumica donde se puede aplicar la solucin de ecuaciones
no lineales es para el estudio de gases no ideales.
La ecuacin para un gas ideal viene dada por
( p+ va ) ( vb)=RT
2
donde
v=
V
n
es el volumen molar,
son
f ( v )= p+
a
( vb )RT
2
v
f ' ( v )= p
f (v)
a 2 ab
+
v2 v3
v i +1=v i
f (vi )
f ' ( vi )
bo = 0.03183
//Presiones de inters (en tamsferas):
P1 = input('Presin 1 (atmsferas):-->');
P2 = input('Presin 2 (atmsferas):-->');
P3 = input('Presin 3 (atmsferas):-->');
//Temperaturas en Kelvin
printf('\nTemperaturas:\n');
T1 = input('Temperatura 1 (Kelvin):-->');
T2 = input('Temperatura 2 (Kelvin):-->');
T3 = input('Temperatura 3 (Kelvin):-->');
//Ocupando como valor de aproximacin el dado por la ecuacin de los gases
ideales
function [v0]=gasIdeal(T, p)
R = 0.082054
v0 = (R*T)/p
endfunction
printf('\nComparacin de los datos obtenidos a partir de la ecuacin de los gases
ideales\ny la ecuacin de van deer Waals para CO2 y O2\n\n');
printf('Temperatura\tPresion \t Volumen Molar\t Volumen Molar\t Volumen
Molar\n (K) \t (atm) \t(Gases Ideales)\t(van der Waals CO2)\t(van der Waals
O2)');
[v0] = gasIdeal(T1,P1)
[vc] = newton(v0,1e-8,50,P1,ac,bc,T1)
[vo] = newton(v0,1e-8,50,P1,ao,bo,T1)
printf('\n
%d
\t %d
\t\t %f\t
%f\t\t %f',T1,P1,v0,vc,vo);
[v0] = gasIdeal(T1,P2)
[vc] = newton(v0,1e-8,50,P2,ac,bc,T1)
[vo] = newton(v0,1e-8,50,P2,ao,bo,T1)
printf('\n
\t %d \t\t
%f\t
%f\t\t
%f',P2,v0,vc,vo);
[v0] = gasIdeal(T1,P3)
[vc] = newton(v0,1e-8,50,P3,ac,bc,T1)
[vo] = newton(v0,1e-8,50,P3,ao,bo,T1)
printf('\n
\t %d \t\t
%f\t
%f\t\t
%f\n',P3,v0,vc,vo);
[v0] = gasIdeal(T2,P1)
[vc] = newton(v0,1e-8,50,P1,ac,bc,T2)
[vo] = newton(v0,1e-8,50,P1,ao,bo,T2)
printf('\n
%d
\t %d
\t\t %f\t
%f\t\t %f',T2,P1,v0,vc,vo);
[v0] = gasIdeal(T2,P2)
[vc] = newton(v0,1e-8,50,P2,ac,bc,T2)
[vo] = newton(v0,1e-8,50,P2,ao,bo,T2)
printf('\n
\t %d \t\t
%f\t
%f\t\t
%f',P2,v0,vc,vo);
[v0] = gasIdeal(T2,P3)
[vc] = newton(v0,1e-8,50,P3,ac,bc,T2)
[vo] = newton(v0,1e-8,50,P3,ao,bo,T2)
printf('\n
\t %d \t\t
%f\t
%f\t\t
%f\n',P3,v0,vc,vo);
[v0] = gasIdeal(T3,P1)
[vc] = newton(v0,1e-8,50,P1,ac,bc,T3)
[vo] = newton(v0,1e-8,50,P1,ao,bo,T3)
printf('\n
%d
\t %d
\t\t %f\t
%f\t\t %f',T3,P1,v0,vc,vo);
[v0] = gasIdeal(T3,P2)
[vc] = newton(v0,1e-8,50,P2,ac,bc,T3)
[vo] = newton(v0,1e-8,50,P2,ao,bo,T3)
printf('\n
\t %d \t\t
%f\t
%f\t\t
%f',P2,v0,vc,vo);
[v0] = gasIdeal(T3,P3)
[vc] = newton(v0,1e-8,50,P3,ac,bc,T3)
[vo] = newton(v0,1e-8,50,P3,ao,bo,T3)
printf('\n
\t %d \t\t
%f\t
%f\t\t
%f',P3,v0,vc,vo);
Interpolacin polinomial.
Descripcin.
En muchas ocasiones tenemos datos discretos (esto es: un conjunto de
puntos tabulares) que se han obtenido a partir de un experimento,
muchas veces se desea obtener un valor entre el intervalo de puntos
que no est especificado en la tabla. A este procedimiento se le conoce
como Interpolacin.
Cuando las calculadoras no estaban totalmente desarrolladas para
valores de x, cuyo valor era el argumento de una funcin trigonomtrica
o logartmica, se utilizaban tablas en donde la variacin del argumento
estaba igualmente espaciados entre los valores. Si por ejemplo se
deseaba calcular el valor x=0.125, se obtena el resultado como el valor
medio entre x=0.12 y x=0.13. Si los valores estaban muy cerca entre si
y la funcin no cambiaba rpidamente entre esos valores, esta
estimacin lineal era suficientemente precisa para realizar clculos.
Se desean realizar clculos interpolatorios por las siguientes razones:
Los mtodos de interpolacin son bsicos para desarrollar soluciones
numricas a derivacin e integracin, se pueden utilizar las tcnicas de
interpolacin para simplificar los clculos de una funcin complicada,
etc.
Los mtodos de interpolacin comenzaron cuando los astrnomos
decidieron predecir el movimiento de cuerpos celestiales, todo esto era
Esta capa impide la mezcla en gran medida de las dos capas antes
habladas, como resultado puede ocasionar una reduccin significativa
del oxgeno en el fondo aislado de las aguas. La ubicacin de la
termoclina, se puede conocer obteniendo el punto de inflexin de la
curva temperatura-profundidad; es decir: el punto donde la segunda
derivada de la funcin temperatura con respecto a la profundad sea
cero. Se pueden utilizar trazadores cbicos (por su versatilidad y
suavidad) para construir un polinomio sobre datos empricos y luego
encontrar los valores para la segunda derivada de la interpolacin, a
travs de dataos tabulares como los que se muestran.
T(C)
h(m)
22.8
0
22.8
2.3
22.8
4.9
20.6
9.1
13.9
13.7
11.7
18.3
11.1
22.9
11.1
27.2
Variable Cefeida
Una Cefeida es una estrella que pulsa radialmente, variando tanto
temperatura como dimetro para producir cambios de brillo con un
periodo y amplitud muy estable regulares. Con estos cambios de brillo
se pueden establecer como marco de referencia para la medicin de
distancias a travs del espacio.
0.0
0.30
2
0.2
0.18
5
0.3
0.10
6
0.4
0.09
3
0.5
0.24
0
0.6
0.57
9
0.7
0.56
1
0.8
0.46
8
1.0
0.30
2
Camino ms corto
En una empresa manufacturera se utiliza un brazo de robot para realizar
un chequeo rpido de calidad a los radios de seis agujeros en un plato
rectangular de 15x10 , los puntos se muestran a continuacin.
X
2.00
4.5
5.25
7.81
9.20
10.60
Y
7.2
7.1
6.0
5.0
3.5
5.0
Y
7.2
7.1
6.0
5.0
3.5
5.0
OK = FALSE;
while OK == FALSE
printf('Input n-1\n');
N = input(' ');
if N > 0
OK = TRUE;
X = zeros(1,N+1);
A = zeros(1,N+1);
for I = 0:N
printf('Input X(%d) and F(X(%d)) ', I, I);
printf('on separate lines.\n');
X(I+1) = input(' ');
A(I+1) = input(' ');
end
else printf('Number must be a positive integer\n');
end
end
if OK == TRUE
M = N - 1;
//% STEP 1
H = zeros(1,M+1);
for I = 0:M
H(I+1) = X(I+2) - X(I+1);
end
//% STEP 2
//% Use XA in place of ALPHA
XA = zeros(1,M+1);
for I = 1:M
XA(I+1) = 3.0*(A(I+2)*H(I)-A(I+1)*(X(I+2)-X(I))+A(I)*H(I+1))/
(H(I+1)*H(I));
end
//% STEP 3
//% STEPs 3, 4, 5 and part of 6 solve the tridiagonal system using
//% Crout reduction.
//% use XL, XU, XZ in place of L, MU, Z resp.
XL = zeros(1,N+1);
XU = zeros(1,N+1);
XZ = zeros(1,N+1);
XL(1) = 1;
XU(1) = 0;
XZ(1) = 0;
//% STEP 4
for I = 1:M
XL(I+1) = 2*(X(I+2)-X(I))-H(I)*XU(I);
XU(I+1) = H(I+1)/XL(I+1);
XZ(I+1) = (XA(I+1)-H(I)*XZ(I))/XL(I+1);
end
//% STEP 5
XL(N+1) = 1;
XZ(N+1) = 0;
B = zeros(1,N+1);
C = zeros(1,N+1);
D = zeros(1,N+1);
C(N+1) = XZ(N+1);
//% STEP 6
for I = 0:M
J = M-I;
C(J+1) = XZ(J+1)-XU(J+1)*C(J+2);
B(J+1) = (A(J+2)-A(J+1))/H(J+1) - H(J+1) * (C(J+2) + 2.0 *
C(J+1)) / 3.0;
D(J+1) = (C(J+2) - C(J+1)) / (3.0 * H(J+1));
end
//% STEP 7
//
//
C(I)
//
//
//
//
printf('are:\n');
printf('for I = 0, ..., N-1\n');
printf('
A(I)
D(I)\n');
B(I)
Resultados
El algoritmo anterior obtiene el valor de los coeficientes en los intervalos
de los nodos, usando trazadores cbicos libres, estos coeficientes se
utilizan para construir un polinomio de aproximacin, que incluya a los
nodos de manera seccionada o partidos por segmentos.
Aplicacin conceptual
Se ha demostrado que, a medida un polinomio aumenta de orden, este
presenta un comportamiento oscilatorio, Runge uso un ejemplo
particular para demostrar esto. Como en este caso, se utiliz trazadores
cbicos para realizar la ruta del camino ms suave y corto, la siguiente
grafica muestra en comparacin el polinomio de orden superior y los
trazadores cbicos.
S= 1+(
a
df 2
) dx
dx
14.919
11.248
gc d
t
m
)
gm
v ( t )=
tanh
Cd
M =M 0 + V dx
0
Si
M0
Tiempo (h)
7:30
7:45
18
24
8:0
0
14
8:15
8:45
9:15
24
21
m= ( x ) A c ( x ) dx
0
0
4.00
2
3.95
3
3.89
4
3.80
5
3.60
8
3.41
10
3.30
cm 3
A c , cm2 100
103
106
110
120
133
150
Supngase que el soporte del cable derecho est flojo y el mstil se une al
casco de manera que transmita fuerzas verticales y horizontales pero no
momentos. El mstil permanece vertical.
=0=F Tsin ( ) H
M =0=3 V Fd
0
=0=V Tcos ( )
tan ( ) =
3
1
tan 0.1 =5.72 =0.09967
30
30
x
F= 200
e
5+ x
0
( )
2 x
30
dx
REGLA TRAPEZOIDAL
METODO DE SIMPSON
Cdigo
//Traducido por: Oscar Moreira
//
//ENTRADAS: tipo de formula (abierta o cerrada), n, x0, xn y fx.
//SALIDAS: r (aproximacion).
//
clc;
funcprot(0);
ieee(2);
format(25);
printf('\nAPROXIMACION DE INTEGRALES MEDIANTE NEWTON-COTES.\n');
printf('Recuerde que:\nEn las formulas cerradas,\n si n=1: Regla trapezoidal,\n
si n=2: De Simpson,\n si n=3: Regla de tres octavos de Simpson.');
printf('\nEn las formulas abiertas,\n si n=0: Regla del punto medio.\n\n');
OK = 0;
while OK == 0
printf('Ingrese el tipo de formula\n1. Cerrada\n2. Abierta\n');
tipoFormula = input(' ');
if tipoFormula == 1 | tipoFormula == 2
OK = 1;
else
printf('ERROR: Ingrese nuevamente.\n');
end
end
if tipoFormula == 1
OK = 0;
while OK == 0
printf('Ingrese n (entre 1 y 4):\n');
n = input(' ');
if n == 1 | n == 2 | n == 3 | n == 4
OK = 1;
else
printf('ERROR: Ingrese nuevamente.\n');
end
end
else
OK = 0;
while OK == 0
printf('Ingrese n (entre 0 y 3):\n');
n = input(' ');
if n == 0 | n == 1 | n == 2 | n == 3
OK = 1;
else
printf('ERROR: Ingrese nuevamente.\n');
end
end
end
if tipoFormula == 1
printf('Ingrese x0:\n');
else
printf('Ingrese x-1:\n');
//x0 = input(' ');
end
x0 = input(' ');
if tipoFormula == 1
printf('Ingrese x%d:\n', n);
else
printf('Ingrese x%d:\n', n+1);
end
xn = input(' ');
//printf('Ingrese f(x) en terminos de x:\n');
if n == 3
r = ((5*h)/24)*(11*f(x0+h)+f(x0+2*h)+f(xn-2*h)+11*f(xn-h));
end
end
err = abs(double(intg(x0,xn,f))- r);
printf('\nSeleccione el tipo de salida\n');
printf('1. En pantalla\n');
printf('2. En archivo de texto\n');
printf('3. En pantalla y archivo de texto\n');
opcion = input(' ');
//imprime en archivo o en pantalla
if opcion == 1 | opcion == 2
if opcion == 2
printf('Ingrese el nombre del archivo de la forma: drive:\\name.ext\n');
printf('Por ejemplo: A:\\Output.dta\n');
nombre = input(' ',"s");
salida = mopen(nombre,'wt');
end
printf('\n');
if opcion == 1
printf('*** Aproximaciones con algunas formulas abiertas y cerradas de
Newton-Cotes ***\n\n');
else
mputl('*** Aproximaciones con algunas formulas abiertas y cerradas de
Newton-Cotes ***\n\n',salida);
end
if tipoFormula == 1
if opcion == 1
printf('Formula cerrada con n = %d\n', n);
else
else
printf('Formula abierta con n = %d\n', n);
end
printf('Aproximacion = %.10e\n', r);
printf('Error = %.10e\n', err);
//impresion en archivo
mfprintf(salida,'\n*** Resultados de aproximaciones mediante Newton-Cotes
***\n\n');
if tipoFormula == 1
mfprintf(salida,'Formula cerrada con n = %d\n', n);
else
mfprintf(salida,'Formula abierta con n = %d\n', n);
end
mfprintf(salida,'Aproximacion = %.10e\n', r);
mfprintf(salida,'Error = %.10e\n', err);
mclose(salida);
printf('Archivo %s creado exitosamente\n',nombre);
end
En donde:
X equivale al nmero de presas en un determinado tiempo.
Y es el nmero de predadores o depredadores en funcin de t.
A es la razn de crecimiento de la presa.
B y D la razn que caracteriza el efecto de la interaccin
depredador-presa.
C es la razn de muerte del depredador.
m=x (t ) + y ( t )
Que se presentara constante, con objeto de sencillez. As, la ecuacin descrita
anteriormente se puede reescribir en trminos de y nicamente.
dy
=k (m y) y
dt
Asumiendo que, que la poblacin total es de 100,000, la cantidad de
personas infectadas en el tiempo cero es 1000, que el tiempo se mida
en das y con una constante equivalente a 2x10-6 encuentre la cantidad
de nvidos infectados al final de 30 das.
Cdigo
Se utilizara el algoritmo de Runge-Kutta de orden 4 para la solucin de una
ecuacin diferencial ordinaria, implementado en Scilab.
clc;
clear;
funcprot(0);
ieee(0);
//EDO DE PRIMER ORDEN
deff("dy=f(x,y)","dy=kmy-y^2");
//2x 3 + 12x 2 20x + 8.5
printf("\n===============================================================
==========");
printf("\n
METODO DE RUNGE-KUTTA DE ORDEN SUPERIOR PARA EDO DE PRIMER
ORDEN
");
printf("\n
LA E.D.O. SE DEFINE INTERNAMENTE.
");
printf("\n
(NOTA: SE HA CAMBIADO x POR t)
");
printf("\n===============================================================
===========");
Resultados
Se ha cambiado la variable t por x, por cotidianidad.
Aplicacin conceptual.
La aproximacin puede mejorar al determinar un nmero mayor de
pasos o segmentos a subdividir.
CONCLUSIN
La matemtica juega un rol crucial en las aplicaciones de uso diario en la
ingeniera. La etapa del diseo, o del como hacerlo, requiere de un
ingenio y creatividad notables para resolver los problemas, dentro del
proceso de diseo de ingeniera. Al ser responsable de crear nuevas
tcnicas para suplir las deficiencias de la humanidad, pueden surgir
problemas que conllevan mayor complejidad en los clculos y en la
resolucin de problemas. Los algoritmos y procesos que se estudian en
el anlisis numrico, pueden ayudar a calcular con rapidez una cantidad
inimaginable de problemas y situaciones que requieran de una precisin
bastante alta. Los mtodos numricos son una herramienta potente en
el procesamiento de clculo y de datos, con estas tcnicas es posible
adaptarlas a necesidades especficas con problemas especficos para
encontrar aproximaciones muy buenas, con unos cuantos segundos
invertidos en su bsqueda. Adems, fomentan el proceso cientfico y
ayudan a fomentar nuevas y mejores teoras en el campo del
conocimiento, todo esto resulta en aproximaciones y paradigmas cada
vez ms exactos acerca de la realidad.
BIBLIOGRAFA
Baroni, S. (1952). Numerical methods in Engineering. Prentice-Hall.
Burden R, F. D. (2011). Numerical Analysis 9th edition. Boston: CENGAGE
Learning.
Chapra S, C. R. (2007). Metodos numericos para ingenieros, 5ta edicion. Mexico
D.F.: McGraw-Hill.
Curtis G, W. P. (2004). Applied numerical analysis . Pearson Education.
Kaw, A. (Junio de 2015). Holistic numerical Methods . Obtenido de Math for
College: http://mathforcollege.com/nm/topics/textbook_index.html