ε - Universidad Nacional del Callao.

Anuncio
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE CIENCIAS NATURALES Y MATEMATICA
INSTITUTO DE INVESTIGACIÓN
“TEXTO: METODOS COMPUTACIONALES DE
FISICA AVANZADA”
AUTOR
Mg. Juan Abraham Méndez Velásquez
RESOLUCION RECTORAL No 534-2011-R
(CRONOGRAMA DE EJECUCIÓN: 01 de mayo del 2011 al 30 de abril del 2012)
CALLAO – PERU
2012
1
INDICE
INDICE.......................................................................................................................................... 2
RESUMEN ......................................................................................................................................4
INTRODUCCION............................................................................................................................5
1. CAPITULO I:Tamaño de paso adaptativo de Runge-Kutta .....................................................6
1.1. Método del paso adaptativo ....................................................................................................6
1.2. Estimación del error de truncamiento .....................................................................................9
1.3. Metodo de Runge Kuta del paso variable ..............................................................................10
1.4. Una alternativa par estimar el error local ..............................................................................12
2. CAPITULO II:Transformada rapida de Fourier Bidimensional ...............................................14
2.1. Transfomada Rápida de Fourier .............................................................................................14
2.2..Transformada Rapida de Fourier Bidimensional .................................................................15
2.3..Teorema de Muestreo de Whittaker-Shannon ......................................................................22
3. CAPIULO III:Descripción estadistica de datos .......................................................................25
3.1. Descripción estadistica de Datos............................................................................................25
3.2. Estimador de Maxima Verosimilitud ......................................................................................27
3.3. Mínimos Cuadrados ...............................................................................................................28
3.4.Calidad de Ajuste....................................................................................................................30
3.5.Datos sin incertidumbre conocida ..........................................................................................31
2
4.CAPITULO IV:Modelación de Datos .........................................................................................33
5.RESULTADOS…………………………………………………...…………………………………… 35
6.DISCUSIÓN ...............................................................................................................................41
7.REFERENCIAS BIBLIOGRÁFICAS ..........................................................................................44
ANEXO. PROGRAMA COMPUTACIONAL..................................................................................45
3
RESUMEN
En el presente texto se ha desarrollado cuatro de temas de interés científico en el
área de la Física Computacional, tales como son: (i) tamaño de paso adaptativo de
Runge-Kutta, (ii) Transformada rápida de Fourier bidimensional, (iii) Descripción
estadística de datos, (iv) modelación de datos.
Para cada capítulo se ha escrito un programa en el Lenguaje Científico Fortran, la
cual permite resolver problemas relacionados al tema en estudio de manera fácil y
practico.
Actualmente los métodos computacionales, se ha convertido en una herramienta
fundamental y nada despreciable para la solución de problemas en todas los
campos de la ciencia en particular de la física. La ventaja fundamental es la
rapidez con la que permite resolver cualquier problema.
En todos los casos se requiere la identificación de los problemas y luego el modelo
matemático que describen los procesos del fenómeno en estudio. A partir del cual
se automatiza mediante un programa computacional.
4
INTRODUCCION
La ciencia y la tecnología describen los fenómenos reales mediante modelos
matemáticos. El estudio de estos modelos permite un conocimiento más profundo
del fenómeno, así como de su evolución futura. La física computacional es una
rama relativamente nueva que combina el conocimiento de un lenguaje de
programación, en nuestro caso Fortran y las matemáticas discretas así como el
conocimiento de la física para poder enfrentar problemas cada vez más complejo.
En muchos casos desafortunadamente, no siempre es posible aplicar los métodos
analíticos clásicos para resolver ecuaciones por diferentes razones:

No se adecúan al modelo concreto.

Su aplicación resulta excesivamente compleja.

La solución formal es tan complicada que hace imposible cualquier
interpretación posterior.

Simplemente no existen métodos analíticos capaces de proporcionar
soluciones al problema.
En estos casos son útiles las técnicas numéricas, que mediante una labor de
cálculos básicos más o menos intensa, conducen a soluciones aproximadas que
son siempre numéricos. El importante esfuerzo de cálculo que implica la mayoría
de estos métodos hace que su uso esté íntimamente ligado al empleo de
computadores.
En el campo de la ciencia se requiere es identificar el problema físico en estudio,
luego se busca la solución usando diversos modelos matemáticos que en nuestro
caso son escritos en un lenguaje de programación, los cuales nos permite hallar su
solución, en forma rápida y precisa.
Nosotros vamos a tratar que nuestro trabajo sirva de ayuda a aquellos que
comienzan ha introducirse en este complicado pero fascinante mundo de los
métodos computacionales de la física.
5
CAPITULO I: Tamaño de paso adaptativo de Runge-Kutta
1.1. Métodos de paso adaptativo
En un método numérico para resolución de EDO, en ocasiones es
inconveniente mantener el paso de integración constante, como consecuencia del
costo asociado con las operaciones a realizar. Cuando la solución varíe
suavemente, convendrá adoptar un paso “grande”, mientras que cuando la misma
varíe “rápidamente”, será conveniente adoptar un paso menor.
Los métodos de paso adaptativo plantean, además del cálculo de yn+1 y de f en
cada paso de discretización, determinar el valor adecuado para el paso siguiente,
de acuerdo al siguiente procedimiento:

Estimar el error local

Decidir si el valor calculado de yn+1 puede ser aceptado, o si se debe
usar un paso más pequeño desde el punto anterior.

Determinar el tamaño del paso siguiente a usarse
Implementación de métodos con paso variable
Se estudiará el error local con el objetivo de controlar indirectamente el error global
cometido en la resolución de la EDO.
Considérese un método de un paso, de orden de consistencia p; el error local de
truncamiento es:
 n1  ~y  xn1   y n1  C  xn hnp 1  0hnp  2 
siendo ~
y es la solución exacta que pasa por (xn., yn ).
6
(1.1)
Remitiéndose al análisis de la evolución del error global realizado en (1.1), si el
error local por unidad de longitud satisface
 n1
hn
 tol
(1.2)
y las condiciones de unicidad de la solución se cumplen (f lipschitziana), entonces
el error global de truncamiento satisface,
| E n | tol
e L  xn  a   1
, xn  a, b
L
(1.3)
La estrategia a adoptar para la elección de cada paso deberá garantizar que se
satisfaga la cota (1.2).
La primera dificultad que aparece detrás de esta estrategia es que el valor de hn no
se puede calcular directamente de lo anterior porque generalmente la función C(x)
de (1.1) no se conoce, aunque se asumirá que la misma varía suavemente.
El procedimiento que se usa para salvar la dificultad expuesta es tomar un paso H,
estimar el error local cometido en xn + H, y utilizar dicha estimación para calcular el
paso hn = H que se usará efectivamente.
Si  n*1 es el error local estimado asociado con el paso H, entonces
 n*1  C  xn H p 1
(1.4)
y el error local producido por un paso H es, asumiendo el mismo valor de C(xn).
 n1  C  xn H  p 1
(1.5)
La desigualdad (1.2) se puede satisfacer en caso que
| C  xn H  | tol
p
7
(1.6)
Usando la estimación (1.4) para eliminar C  xn  , se tiene que la elección

tolH
1/ p
(1.7)
 n*1
cumple con la cota del error local propuesta en (1.2).
En términos de costo de las operaciones, es conveniente tomar el mayor paso
posible, pero como rechazar un paso puede resultar inadecuado, se toma:
tolH
  0,8 *
en1
1/ p
(1.8)
El factor 0,8 es un factor de seguridad que compensa en parte las aproximaciones
hechas al deducir el valor de  en (1.7)
Observaciones:
1) Si se tiene >1 entonces H utilizado era menor de lo necesario, en vez de
recalcular el paso se acepta el valor yn+1 con hn = H (ya que el resultado se
calculó con mayor precisión de la necesaria). Cuando un paso es aceptado se
comienza el siguiente usando H en lugar de H. (Siempre asumiendo que C(x)
no varía demasiado en el intervalo, es decir que C(xn+1) no es muy distinto a
C(xn))
2) Si <1 entonces se debe repetir el paso con H en vez de H.
3) Hay otras restricciones que deben ser impuestas a hn. Por ejemplo, si el mismo
se vuelve demasiado pequeño, los errores de redondeo pueden hacer que los
resultados obtenidos carezcan de valor.
Por otra parte, una longitud de paso demasiado grande no debe usarse, pues
se podría perder alguna característica de la solución. El valor hmax depende de
cada problema y debe ser proporcionada por el usuario.
Es inconveniente cambios demasiado abruptos de la longitud del paso.
Usualmente se restringe el incremento del paso a un factor de 2.
Un factor por el cual se puede achicar el paso es difícil de asignar, pues si es
muy grande entonces muchos pasos posteriores deberán ser rechazados. Un
número sugerido es 1/10.
8
1.2.
Estimación del error local de truncamiento
A continuación se estudia el cálculo de la estimación  n*1 , que quedó
pendiente de la sección anterior.
Si
y n1
se calcula por métodos de orden p y p+1, entonces la diferencia entre los
valores calculados de
yn1
por ambos métodos consiste en una buena
aproximación del error local de truncamiento en el método de orden p.
Efectivamente, si se usan y y yˆ para denotar el método de orden
p y p 1
respectivamente, se tiene que

~y  x   y  C  x h p 1  0 h p  2
n 1
n 1
n
n
n

(1.9)
y

p2
~
y  xn 1   yˆ n 1  0 hn

(1.10)
Restando estas dos ecuaciones se obtiene,
yˆ n 1  y n 1  C  x n hn
p 1

 0 hn
p2

(1.11)
por lo cual una estimación del error local (mediante su parte principal) es,
 n*1  yˆ n1  y n1
(1.12)
Nótese que al ser calculada mediante un método de mayor orden de consistencia,
yˆ n1
y  x n 1  que
será generalmente una mejor aproximación a ~
tanto deberá ser usada como valor de la aproximación
9
y n 1 .
y n 1
y por lo
En este caso
y n 1
se toma como el resultado obtenido usando el método de
orden p + 1. Si el resultado de mayor orden es usado en los cálculos pero la
selección del paso se basa en el esquema de orden menor, la solución calculada
será más precisa que lo predicho por (1.5).
1.3.
Método de Runge Kutta con paso variable
Siguiendo las ideas presentadas anteriormente para la estimación del error
local, Fehlberg desarrolló un par de métodos Runge Kutta de orden 4 y 5
asociados, de tal forma que ambos utilizan en cada paso las mismas evaluaciones
de f con el fin de ahorrar cálculos.
El método de orden 5 requiere 6 evaluaciones de f en cada paso. Fehlberg
demostró que es posible usar 5 de esos valores para desarrollar un método de
orden 4 (en lugar del método clásico, que usa 4 evaluaciones de f). El estimador
de orden 4 así obtenido puede utilizarse junto con el de orden 5 para estimar el
error local, sin necesidad de nuevas evaluaciones de f, y habilitando una
estimación del nuevo paso h.
10
Los coeficientes del método RKF son:
1
4
1
4
3
8
3
32
9
32
12 1932
13 2197

1
439
216
-8
3680
513
1
2

2

8
27
2200
2197
7296
2197
3544
2565

845
4104
1859
4104

11
40
6656 28561
9 2
 16
 135 0 12825 56430  50 55   a
128
2197 1 2 
 1
0


b
 360
4275 75240 50 55 
Tabla – Coeficientes de Runge-Kutta-Fehlberg de orden 5
donde:
y n1  y n  hak
 n*1  hbk
11
1.4.
Una alternativa para estimar el error local
 n*1 , puede aplicarse la técnica de
Como alternativa para estimar el error local
extrapolación de Richardson.
El paso desde
xn
con paso menor ( H
a
2
x n 1
se realiza dos veces, primero con un paso H y luego
por ejemplo).
Si el método tiene orden p y se denotan los resultados por
yn 1 y yˆ n 1
respectivamente, entonces

~
y xn 1   yn 1  C xn H p 1  0 H p  2

(1.13)
y también se puede probar que
H
~
y  x n 1   yˆ n 1  2C  x n  
2
p 1


 0 H p2 ,
(1.14)
donde se ha asumido que la función C  x  varía suavemente, es decir que
H

C x n   C  x n  
2

(1.15)
restando, se tiene que
yˆ n 1  y n 1
H
 2C  x n  
2
p 1
por lo que una estimación del error local de
2
p
 
1  0 H
yˆ n1 es,  n*1 
p2

(1.16)
yˆ n 1  y n 1
2p 1
La extrapolación local da para el siguiente valor la fórmula
y n1  yˆ n1   n*1
12
(1.17)
Nótese que este método de estimación del error local requiere evaluar la función f
varias veces, por lo que éste enfoque puede resultar inadecuado en términos de
costo de las operaciones, en caso que dicha función sea complicada.
13
CAPITULO II: Transformada rápida de Fourier bidimensional
2.1.
Transformada rápida de Fourier
Para llegar a la definición de la Transformada de Fourier (TF), se tomo el
límite de las series de Fourier, cuando el período de la función tiende a infinito.
Para hallar la TF de una función muestreada vamos en el sentido inverso, es decir
aproximarla por sumas cortadas de Fourier. Para esto recuérdese, que para una
función de período T en [0,T] :
f t  

 cn e 2 int/ T
(2.1)
n  
Donde:
cn 
T
1
f t e 2 int/ T dt

T0
n 
n
   2 / T
T
Si muestreamos la función en N+1 puntos, espaciados entre ellos intervalos Δt
hasta completar el período T, podemos aproximar los coeficientes de Fourier
usando sumas de Riemman:
c n  
1 N 1
f mt e i n mt t

T m 0
(2.2)
Usando el hecho de que: T= NΔt , vemos que los coeficientes resultan:
c n  
1
N
N 1
 f mt e i n mt 
(2.3)
m 0
Esto motiva definir la transformada de la función muestreada salvo un factor N
como:
N 1
N 1
g n    f mt e inmt   f mt e i 2mn / N
m 0
m 0
14
(2.4)
Estos coeficientes los podemos usar para recuperar la función f original,
f kt  

 cn e 2 int/ T 
n  
1 
g n e 2inkt / T

N n
(2.5)
De donde tenemos la relación:
f kt  

1 N 1


f
m

t
e 2ink / N e i 2mn / N


N m 0
n  
(2.6)
Esto significa que la función la podemos recuperar si se cumple la relación:
 e 2i k m / N 

n?
n  
 N m , k
(2.7)
Esta suma no converge para valores m=k, sin embargo es posible cumplir está
relación si cortamos la serie:
 e 2i k m / N 
N 1
n 0
n

 1  exp2i k  m 
 N k , m
 1  exp2i k  m  / N 
(2.8)
Es decir sólo necesitamos N frecuencias para recuperar la función
muestreada. Esto nos permite definir la Transformación Discreta de Fourier (TDFI)
inversa:
1
f mt  
N
N 1
 g n ei 2mn / N
(2.9)
n 0
Usando estas definiciones no es difícil demostrar que la TDF y su inversa cumplen
las siguientes propiedades importantes:
(1) g n  N   g n 
(2) g  n   g  N  n 
(3) f mt  Nt   f mt 
(4) f  mt   g  Nt  mt 
Las N frecuencias en las que podemos evaluar la transformada
15
para recuperar la función original usando la TDFI son:
0,..., N / 2,..., N  1 
Ahora bien de la propiedad (3) podemos ver que la mitad de este intervalo se
pueden interpretar como frecuencias negativas, es decir podemos hacer el mapeo:
N / 2, N  1    N / 2, 
Y por tanto la mayor frecuencia que se pude obtener de la función mediante la TFD
sería
 Nyquist  N / 2
(2.10)
Dado que las frecuencias negativas sólo se introducen en las series de Fourier
para simplificar la notación en el plano complejo.
En diferentes áreas de la ciencia, se usan diferentes formas para la TDF.
Considerando un par de parámetros a y b, se pueden condensar todas estas
formas en una sola:
g s  
f rt  
N 1
1
N
1a  / 2
1
N
 f rt e 2ibrs / N
r 0
N 1
1 a  / 2
 g st e 2íbrs / N
(2.11)
s 0
La definición dada anteriormente para la TFD la recuperamos para la elección a=1
y b = -1:
g s  
N 1
 f rt e 2írs / N
r 0
16
(2.12)
2.2.
Transformada Rápida de Fourier Bidimesional (TRFB)
Evaluar la Transformada de Fourier (TF) numéricamente a partir de las
sumatorias requiere de N2 operaciones. La TRF implementa el algoritmo de
Danielson y Lanczos para reducir el número de operaciones a N log2N!.
Algoritmo de Danielson y Lanczos
Sea N un número par podemos evaluar la TF separando como una suma sobre los
puntos numerados impares y pares
N 1
g n    f mt e i 2mn / N
m 0
g n  
g n  
N / 2 1
N / 2 1
j 0
j 0

f 2 jt e  i 2 2 jn / N 
 f 2 j  1t ei 2 2 j 1n / N
N / 21
 f 2 jt e i 2jn /  N / 2 
j 0
 e i 2n / N
N / 21
 f 2 j  1t e i 2jn /  N / 2 
j 0
g n   g par n   e  i 2n / N g impar n 
(2.13)
Esta descomposición requiere 2(N/2)2 operaciones. Cada una de estas TDF puede
evaluarse de la misma manera siempre y cuando el número de puntos sea par en
cada paso. Así para N=2k después k pasos se tendrá N transformadas que se
evaluaran sólo en un punto!
En dos dimensiones definimos la transformada de Fourier de una función en dos
variables como
G  f x , f y   F g  x, y  
 
  g x, y e


dxdy
(2.14)


df x df y
(2.15)
 2i f x x  f y y
 
y la transformada inversa como:
g  x, y   F
1
 
G  f , f     G  f , f e
x
y
x
 
17
y
 2i f x x  f y y
Condiciones para su existencia:
 f debe ser integrable en una región del plano.
 f debe tener un número finito de discontinuidades en cualquier región del
plano.
 f debe tener un número finito de máximos y mínimos en cualquier región del
plano.
 f no debe tener discontinuidades infinitas.
 Propiedad de linealidad de la transformada de Fourier Bidimensional
Discreta
a.-Linealidad
F g1  x, y   g 2  x, y   F g1  x, y   F  g 2  x, y 
(2.16)
prueba
G  f1 , f 2  

 
 2i  f x  f y 
dxdy
  g1 x, y   g 2 x, y e
x
 
 
  g1 x, y e

 2i f x x  f y y
 
 

  g 2 x, y e
y

dxdy

 2i f x x  f y y

dxdy
 
 G1  f1 , f 2   G2  f1 , f 2 
(2.17)
b. Propiedad de escalamiento
F g ax, by  
 f fy 
1
G  x , 
| ab |  a b 
(2.18)
prueba
 
F g ax, by   

i f x x  f y y
2
 g ax, by e

dxdy
 
 
1
 2i x´ f x / a  y´ f y / b 

g  x´, y´e
dx´dy´


| ab |  

1  fx fy
g ,
| ab |  a b
18



(2.19)
c. Inversión espacial
F g  x, y   G  f x , f y 
(2.20)
Prueba
 f fy 
1
G x ,   G  f x , f y 
| 1 |   1  1 
F g  x, y  
(2.21)
d. Propiedad de desplazamiento
F g  x  a, y  b   e

2i f x a  f y b

G f x , f y 
(2.22)
Prueba
F g  x  a, y  b  
 
  g x  a, y  b e

 2i f x x  f y y

dxdy
  

 
  g x´, y´e

 2i f x  x´ a  f y  y´ b 

dx´dy´

e

2i f x a  f yb

G f x , f y 
(2.23)
e.-Identidad de Parseval
 
 
*
  g x, y g 2 x, y dxdy    G1  f x , f y G2  f x , f y df x df y
*
1
  
(2.24)
  
Prueba
 
  g1 x, y g 2 x, y dxdy
*
  
 

      G1  , e 2i x y dd 
       

 


x    G 2  ,  e 2i x  y  dd  dxdy
 

 
19
(2.25)

   
    G1  , G2  ,  
*
   
   2i   x    y 

x   e
dxdy  dddd
  


   
    G1  , G2  ,      ,    dddd
*
   
 
=
  G1  , G2  , dd
*
 
 
 
*
  g x, y g 2 x, y dxdy    G1  f x , f y G2  f x , f y df x df y
*
1
 
(2.26)
 
En particular para una función g(x,y):
 
 
 
 
  | g x, y  | ² dxdy    | G  f x , f y  | ² df x df y
(2.27)
Donde se definen la taza de flujo de energía de la onda y el espectro de energía:
| G  f x , f y  | ²  G *  f x , f y G  f x , f y 
(2.28)
Una función de dos variables se llama separable en un sistema de coordenadas
rectangular, si puede escribirse en la forma:
g  x , y   g x  x g y  y 
20
(2.29)
La transformada de Fourier de este tipo de funciones se puede escribir
simplemente como el producto de dos transformadas en una dimensión.
F  g  x, y  
 
  g x, y e

 2i f x x  f y y

dxdy
 
F  g  x, y  

 g x x e

 2if x x

dx  g y  y e
 2if y y
dy



F  g  x, y   F g x  x F g y  y 
Visualización de la Transformada de Fourier bidimensional
21
(2.30)
2.3.
Teorema del muestreo de Whittaker-Shannon
De este resultado concluimos que podemos recuperar el espectro la función
de la transformada de Fourier de G de una función con ancho de banda limitado, si
las muestras de la función están suficientemente cerca, de manera que permita la
separación de las copias de G en es espectro de Gs.
 1

Gx  f x , f y   G  f x , f y   
comb1 / X  f x comb1 / Y  f y 
 XY

22
(2.31)
Espectro original G y varios espectros Gs
para diferentes valores X, Y
Sean 2Bx y 2By los anchos en las cada una de las direcciones fx y fy,
respectivamente, del rectángulo más pequeño que puede encerrar completamente
la región en la que está definido el espectro de G. Luego la separación de las
regiones de Gs se logra si:
2 Bx 
1
1
X
X
2 Bx
2B y 
23
1
1
Y 
Y
2B y
(2.32)
Para recuperar la función original a partir de los datos muestreados usamos un
filtro que seleccione sólo una copia de Gs
 fy
 f 
H  f x , f y   XYrect x rect 
 2B
 2 Bx 
 y




(2.33)
En efecto tenemos
 fy
 f 
XYGs  f x , f y rect  s rect 
 2B
 2 Bx 
 y

  G f x , f y 


(2.34)
O equivalentemente en el dominio espacial
g x, y combX x combY  y   hx, y   g x, y 
(2.35)
donde hemos definido:

 fy
 f 
h x, y   F 1  XYrect x rect 
 2B

 2 Bx 
 y




 4 Bx B y XY sin c2 Bx x sin c2 B y y 
g  x, y combX  x combY  y 



  g nX , mY  x  mX , y  nY 
m   n  
24
(2.36)
CAPITULO III: Descripción Estadística de Datos
3.1.Descripción Estadística de Datos
Dada cierta cantidad de mediciones de una cantidad, que sigue cierta distribución
con media y varianza, deseamos
determinar cual es la incertidumbre para la
media de la muestra
Para esto, escribimos las mediciones en función del media:
x i    ei
(3.1)
Sumando sobre todas las mediciones
N
N
i 1
i 1
x   xi  N   ei
(3.2)
Identificamos el último término como la incertidumbre en la suma:
N
 x   ei
(3.3)
i 1
Esperamos que cuanto mayor sea el número de mediciones. La incertidumbre en
la suma se aproxime a cero. Para calcular elevamos al cuadrado la ecuación
anterior:
N
N
N
i 1
i 1 j 1
i j
 x2   ei2   ei e j
(3.4)
 x2    xi   ²    xi    x j   
N
N
i 1
i 1
 x2  N ²
N
j 1
i j
x 
25
(3.5)

N
(3.6)
Sean N pares de medidas para dos cantidades X e Y. Sea Z una cantidad que
depende de X e Y, se quiere calcular el error en la estimación de la media de Z
z i  f  xi , y i 
xi  xi  x
yi  yi  y
(3.7)
xi yi
,
1
x
y
Realizando la expansión de Taylor alrededor de la media
zi  f  x , y   xi
f
f
 yi
x  x , y 
y
 ...
x, y 
N
 zi  f x , y N  f x , y   z
(3.8)
i 1
zi  z   xi  x 
f
f
  yi  y 
x  x , y 
y
 ...
x, y 
Teniendo en cuenta que la varianza está dada por
 z2 
1 N
 z i  z ²
N  1 i 1
2
 f 
f f 2
 f 
     x2     y2  2
 x, y
x y
 x 
 y 
2
2
z
 x2, y 
(3.9)
1 N
 xi  x  y i  y 
N  1 i 1
26
(3.10)
(3.11)
En el caso general de M variables dependientes, y despreciando las covarianzas
 f
   
i 1  x i
M
2
z
2
 2
  xi

(3.12)
Ejemplo: Incertidumbre en el producto
y u , v   auv
 y2  au ² u2  av ² v2  2a ²uv uv2
 y2
y²
3.2.

 u2
u²

 y2
v²
2
 uv2
uv
Estimador de Máxima Verosimilitud
Supongamos que se requieren ajustar N datos:
a un modelo que depende de M parámetros, que predice la siguiente forma
funcional:
y  x   y  x; a1 ,...a M 
(3.13)
¿Cómo seleccionamos los parámetros de ajuste más “correctos” entre todos los
posibles?. Desde luego, teniendo en cuenta la probabilidad de que ocurran…, sin
embargo No tiene sentido preguntarse:¿Cuál es la probabilidad de que dados los
datos, los parámetros obtenidos sean los correctos?.Pero si podríamos preguntar:
¿Dado un conjunto de parámetros en particular, cuál es la probabilidad de que el
conjunto de datos ocurra?
27
3.3. Mínimos Cuadrados
Suponemos que los puntos yi tienen un error de medición, tal que son
independientemente aleatorios y distribuidos según una distribución normal
alrededor de modelo correcto
  y  y  xi ² 
1
dy i
exp  i
2

2  i
2

i


P y i dy i 
 1
  y  y  xi ²  
dy i 
La1 , a 2 ,..., a M    
exp  i
2
 
2


2

i 1 
i
i

 

(3.14)
N
(3.15)
Maximizar la función de verosimilitud equivale a maximizar su logaritmo o
minimizar el negativo de su logaritmo, esto es minimizar la función
 y  y xi  

x ²    i
i
i 1 

N
2
(3.16)
conocida como la función chi-cuadrado. El ajuste correspondiente se denomina
ajuste por chi-cuadrado.
Consideramos el ajuste de N datos (xi, yi + i) a un modelo lineal
y  x   a  bx
 y  a  bxi
x ²a, b     i
i
i 1 
N
0



2
N
y  a  bxi
x ²
 2 i
a
 i2
i 1
N
x  y  a  bxi 
x ²
0
 2 i i 2
b
i
i 1
N
S 
i 1
N
1
Sx  

2
i
N
xi2
S xx  
i 1

i 1
2
i
xi

N
S xy  
i 1
2
i
xi y i
 i2
28
N
Sy  
i 1
yi
 i2
Con estas definiciones tenemos la solución formal del problema
  SS xx  S x ²
a
b
S xx S y  S x S xy

SS xy  S x S y

Los errores medidos insertan errores en la determinación de los parámetros del
ajuste. Recordando
a S xx  S x xi

yi
 i2 
b Sxi  S x

yi
 i2 
 f
    
i 1
 yi
N
2
f
2
i



2
 a2  S xx / 
 b2  S / 
De la suposición de que cada es una variable aleatoria con distribución normal
alrededor de y varianza se sigue que la variable
i 
y i  y  xi 
i
es una variable aleatoria que tiene una distribución normal con media cero y
varianza igual uno. Luego nos preguntamos por la distribución de la variable:
29
 y  y  xi  

t      i
i
i 1
i 1 

v
v
2
2
i
donde
v = N – M es el número de grados de libertad de la muestra.
La distribución de la variable aleatoria resulta
p t / v  
1
t v / 21e t / 2
v/2
2 v / 2 
donde la función gamma se define por:

 z    e t t z 1dt
0
La media de la distribución p(t/v) viene dada por y la varianza por 2v
Px ² / v  
x²
1
 2 v / 2 v / 2 t
v / 2 1 t / 2
e
dt
0
3.4.
Calidad del ajuste
Luego, la probabilidad de obtener un valor de
mayor que algún valor
viene
dado por x²
Q x ² / v   1  P x ² / v 
(3.17)
La calidad del ajuste se define entonces como la probabilidad de obtener un valor
de mayor a
x
 a, x    t
0
a 1 t
e dt
 y  a  bxi
x  x ²a, b     i
1
i 1 
N
2
0
30



2
(3.18)
Es decir, debemos calcular:



Q x02 / v  1  P x02 / v


(3.19)

Si el valor obtenido de Q x02 / v es demasiado pequeño por ejemplo tal que


Q x02 / v  0.05
se debe rechazar la hipótesis de que los datos vienen de una distribución
gaussiana con los parámetros calculados. Los posibles problemas pueden ser; El
modelo que describe los datos por una recta es falso, La distribución de los puntos
dados no es gaussiana. Las estimaciones de las incertidumbres son pequeñas
3.5.Datos sin incertidumbres conocidas
En este caso se puede usar el método de mínimos cuadrados para determinar los
parámetros del ajuste, pero se pierde la medida de la calidad del ajuste. El
procedimiento consiste en hacer cada i=1. Luego calculamos siguiendo las
ecuaciones dadas: a,b, a, b, x02
a
x02
 a  a  xv2  a
v²
b
x02
 b  b  xv2  b
v²
(3.20)
Que equivale a la normalización: x02  v
Consiste en graficar la diferencia entre los datos y los correspondientes valores
ajustados, ver Fig. No 1.
31
3.5
3
2.5
2
1.5
1
2
3
4
2
3
4
0.2
0.1
1
-0.1
-0.2
-0.3
Fig. No 3.1. Modelos de tendencias de datos experimentales: (i) lineal, (ii)
cuadrática.
32
CAPITULO IV: Modelación de datos
El ajuste analizado es un caso especial de un ajuste polinomial; pero lineal en los
parámetros
y  x   a1  a2 x  a3 x ²  ...  aM x M 1
(4.1)
El procedimiento que deberíamos seguir en este caso sería una simple
generalización del ajuste lineal. Este caso polinomial es a su vez un caso particular
de un ajuste mediante una función de la forma
M
y  x    ak X k  x 
(4.2)
k 1
Donde Xi(x) son funciones arbitrarias fijas. Nótese que el ajuste es lineal en los
parámetros.
Los mejores parámetros son los que minimizan la función, para el caso en que los
errores sean independientes y con distribución normal
 yi   kM1ak X k  xi 
x²   

i
i 1 

N
2
(4.3)
Existen varios métodos para encontrar la solución. Aquí planteamos una de ellas.
Para esto definimos la matriz de diseño:
bi 
Aij 
yi
i
X j  xi 
i
Matriz de diseño:
33
Basis functions
X1 ( ) X2 ( ) … XM ( )
X 1  x1 
X 2  x1 
X 1  x2 
X 2  x2 
x1
1
data points
x2
1
2

2



X 1 xN 
xN
X M  x1 

X M  x2 
1
2

X 2 xN 
N

N
(4.4)



X M xN 
N
Las ecuaciones de minimización son
N
1
i 1
 i2
0
M


  yi   a j X j  xi  X k  xi  k = 1, …, M
j 1


(4.5)
Que puede expresarse como una ecuación matricial
M
donde
 akj a j   k
j 1
N
a kj  
i 1
X j  xi  X k  xi 

2
i
   AT . A
N
k  
i 1
yi X k  xi 

2
i
   AT .b
(4.6)
La forma matricial de estas ecuaciones (Ecuaciones Normales) es
 .a    or as AT . A.a  AT .b
La solución puede hallarse mediante métodos establecidos para los sistemas de
ecuaciones lineales.
34
RESULTADOS
El material bibliográfico presenta herramientas necesarias sobre los Métodos
Computacionales de la Física para sistemas lineales, como no lineales, lo que no
se encuentra usualmente en las referencias bibliográficas son:
 Tamaño de paso adaptativo de Runge-Kutta
 Transformada rápida de Fourier Bidimensional
 Descripción estadística de datos
 Modelación de Datos
A continuación abordaremos los resultados obtenidos en cada uno de los
capítulos:
Tamaño de paso adaptativo de Runge-Kutta.- El estudio de los procesos
dinámicos y sus sistemas de control, debe iniciarse con la obtención de una
representación matemática de las relaciones existentes entre las diferentes
variables involucradas en el proceso a controlar, a la que usualmente se denomina
modelo del sistema. El proceso de modelado de un sistema dinámico, puede llevar
a la obtención de una representación para el mismo por medio de una ecuación
diferencial de orden alto, o por un conjunto de ecuaciones diferenciales de primer
orden no lineales, cuya solución se debe obtener para conocer la respuesta
temporal del sistema, a partir un conjunto de condiciones iniciales y una entrada
dada. La solución analítica de una ecuación diferencial lineal puede ser fácil, de
varias ya presenta dificultades y de muchas es prácticamente imposible. Si las
ecuaciones diferenciales son no lineales, el resolver una sola es muy difícil y varias
o muchas es imposible por medios analíticos. Como es normal que el modelo
obtenido para el sistema que se desea analizar, esté constituido por varias
ecuaciones diferenciales no lineales, este solamente puede resolverse con la
ayuda de un programa de simulación digital.
Para el desarrollo de un programa de simulación de sistemas dinámicos, es
necesario entonces contar con un método de solución de ecuaciones diferenciales.
Se presentarán adelante en forma breve, algunos de los métodos numéricos de
solución de ecuaciones diferenciales ordinarias (EDO), más empleados en la
simulación digital de los sistemas dinámicos.
35
En la presentación siguiente de los diferentes métodos de solución de ecuaciones
diferenciales, se considerará la solución de una sola ecuación diferencial no lineal
de primer orden, sin embargo todos ellos son fácilmente extensibles al caso de un
conjunto de ecuaciones diferenciales de primer orden no lineales simultáneas,
considerando a todas las variables y ecuaciones como vectores. Si el modelo está
representado por una ecuación diferencial de orden alto, es necesario convertirla
primero en un conjunto de ecuaciones diferenciales de primer orden simultáneas
para su solución.
El tamaño del paso de integración utilizado para la solución de la ecuación
diferencial, afecta directamente la exactitud de la misma. Normalmente se desea
emplear el paso de integración mayor posible para obtener una solución rápida,
pero no tan grande que introduzca errores apreciables en esta. Al utilizar los
métodos de integración de paso fijo, es responsabilidad del usuario la selección del
paso de integración adecuado.
En nuestro tema de estudio del presente trabajo nos permite resolver ecuaciones
diferenciales de manera rápida introduciendo errores mínimos en los resultados
finales del cálculo, lo cual es uno de los requisitos fundamentales en el estudio de
cualquier problema físico y además que es fácil de hacer su programa.
Transformada rápida de Fourier Bidimensional. El presente tema comprende la
investigación sobre los fundamentos matemáticos, algoritmos y aplicación práctica
en el procesamiento de imágenes de la Transformada de Fourier, y la difusión a
través de la elaboración de un texto orientado a los estudiantes de Informática,
Sistemas o ramas afines, ya que la implementación de la Transformada Rápida de
Fourier (más conocida como FFT por sus siglas en inglés) aplicada al
procesamiento de imágenes, en la bibliografía especializada, no se encuentra
explícitamente bien documentada. La Transformada de Fourier es una herramienta
matemática que tiene un uso muy amplio en lo referente al tratamiento digital de
señales, se encuentra implementada bajo la forma de dispositivos electrónicos de
reconocimiento de voz e imagen; puede ser aplicada a varios campos como
análisis espectral, ecuaciones diferenciales, resolución de problemas elásticos
estacionarios y dinámicos, etc. El presente trabajo, enlaza los aspectos teóricos
36
con la aplicación práctica de la Transformada de Fourier en el procesamiento
digital de imágenes mediante el desarrollo de aplicaciones que implementan los
algoritmos de la Transformada Rápida de Fourier, los mismos que son explicados
y analizados de una manera clara y didáctica, en un texto de nivel superior
orientado a los estudiantes de Informática, Sistemas y Ciencias de la Computación
el cual se encuentra en construcción.
La Importancia del desarrollo matemático de la transformada de Fourier fue
explicado por Jean Baptiste Joseph Fourier, en su libro la Teoría Analítica del
Calor, publicado en 1822; posteriormente, en 1965 Cooley y Tukey publicaron su
artículo “Un algoritmo para calcular las Series de Fourier Complejas”, el cual es
conocido como algoritmo FFT (Fast Fourier Transform) y que con el desarrollo
acelerado de las computadoras digitales ha permitido la aplicación de la FFT a
diferentes campos.
Su aplicación al procesamiento de imágenes se encuentra documentado en los
libros específicos sobre la materia a un nivel teórico, en los que no se expone
directamente, la forma de implementación de los diferentes algoritmos, y en el
mejor de los casos presentan una descripción narrativa del algoritmo, como
ejemplo se puede revisar el libro Digital Image Processing de González y Woods.
Por otra parte, los libros específicos sobre la Transformada Rápida de Fourier, se
centran su aplicación mayormente a la fundamentación matemática y explicación
de los algoritmos, presentando aplicaciones más orientadas al Procesamiento
Digital de Señales, que corresponde al campo de la Electrónica.
Siendo los objetivos del estudio, documentar la fundamentación matemática, los
algoritmos de la transformada Rápida de Fourier, y la aplicación de los mismos al
procesamiento de imágenes mediante el desarrollo de software que muestra como
se implementan dichos algoritmos la se expuesto en el presente trabajo de manera
clara y precisa.
Para la realización del proyecto fue necesario
identificar la bibliografía
especializada en dos áreas: transformada Rápida de Fourier y Procesamiento
Digital de Imágenes, la misma que se anexa
37
En este trabajo se estudió y analizó los fundamentos matemáticos de la
Transformada de Fourier en dos dimensiones, para lo cual se partió de las series
de Fourier, llegando hasta la Integral de Fourier. Para el desarrollo de esta
aplicación fue necesario estudiar el desarrollo de interfaces gráficas con el objeto
de visualizar los resultados de la implementación algorítmica de la serie de Fourier,
el siguiente gráfico muestra la pantalla principal de la aplicación, y cuyo código
fuente, se muestra en el anexo.
Descripción estadística de datos. El esquema de trabajo presentado en este
trabajo obedece a una operación estadística, que consta de las siguientes etapas:
1. Planificación.
2. Diseño y realización.
3. Ejecución.
4. Validación del resultado.
5. Difusión.
A continuación se explican de forma general cada una de estas etapas.
Planificación. En esta etapa se fijan los objetivos y se establecen las definiciones
básicas, además de analizar la información disponible en el dominio de estudio y
de diseñar un plan de acción.
Diseño y realización. En esta etapa se establecen los métodos y se elaboran los
procedimientos que permitirán cumplir los objetivos fijados. Se diseña el marco de
muestreo, el plan de muestreo, el cuestionario, el método de recogida, el método
de verificación manual, la codificación y la grabación, el método de detección de
errores con corrección manual, el método de imputación automática, el método de
estimación, los sistemas informáticos de soporte y los manuales de procedimientos
Ejecución. En esta etapa se obtienen y tratan los datos, siguiendo los
procedimientos establecidos en la anterior.
Validación del resultado. En esta etapa se analiza la realización de las tareas de
ejecución y los datos obtenidos, con vistas a decidir si los resultados tienen un
nivel de calidad aceptable. Se analizan y evalúan la cobertura obtenida, el nivel de
no respuesta, la precisión de las respuestas, los errores producidos durante la
grabación, el nivel y distribución de los errores detectados y las imputaciones
38
realizadas. La calidad del trabajo estadístico se logra extremando el cuidado en la
realización de las etapas descritas anteriormente. Dado que hay una gran variedad
de investigaciones estadísticas, que se realizan en muy diferentes contextos y bajo
organizaciones muy distintas, no hay normas o métodos prefijados sobre cómo
realizar cada una de las tareas necesarias en cada una de las etapas. En el
proceso de recoger y tratar los datos estadísticos se pueden producir distintos
tipos de errores. No hablamos de errores de muestreo, sino los errores en los
datos de la encuesta; es decir, los errores ajenos al muestreo, que clasificamos en
errores en las identificaciones y errores en los datos propiamente dichos. Los
errores en las identificaciones son importantes porque afectan a todo el proceso de
manipulación y clasificación de la información.
Difusión. En esta etapa se hacen llegar los resultados estadísticos obtenidos a la
sociedad. A través del acceso a los medios de comunicación, de folletos
informativos o revistas especializadas, el gran público tiene acceso a los datos y
conclusiones que realizan los institutos de estadística. Esta etapa es muy
importante, ya que el acierto en el acceso a la sociedad permite que se conozca el
trabajo efectuado y se valore es su justa medida.
Motivación. La toma de decisiones hoy en día es un asunto de prioridad máxima
para directores, políticos, empresarios, etc. Estas personas necesitan de
información de alta calidad que les produzca datos estadísticos sobre aspectos
sociales, demográficos, industriales, económicos, financieros, culturales, etc. para
llevar a cabo sus tareas.
Los institutos de estadística desempeñan un papel fundamental en proveer dichos
datos estadísticos a la sociedad y a los decisores. El trabajo de los institutos de
estadística no es fácil. La sociedad cambia con una rapidez insospechada, así
como todos sus aspectos, y además de ello, el usuario de a pie, puede – en gran
medida, gracias a la potencia de los ordenadores personales – realizar
tratamientos de gran cantidad de datos, sacando sus propias conclusiones. Por
ello, los usuarios finales de datos estadísticos exigen una alta calidad y un gran
detalle en los trabajos elaborados por los institutos de estadística. Y no sólo esto.
El trabajo de los institutos de estadística debe ser realizado en períodos de tiempo
muy pequeños y con unos recursos – por lo general – bastante escasos.
39
En nuestro trabajo presentamos las herramientas matemáticas que permiten
resolver cualquier problema de tratamiento estadístico de datos, donde se expone
de manera clara y precisa.
Modelación de Datos. Los puntos que vamos a tratar en la exposición son:
La introducción al método de Mínimos Cuadrados. La versión determinista del
método que responde a un problema de aproximación. Una gran parte de la
exposición se dedica a este punto pues la simplicidad en la formulación del método
determinista de mínimos cuadrados lo hace ideal para presentar de una forma
coherente y concisa muchos conceptos y sus interrelaciones. El método de
Mínimos Cuadrados Estocástico responde a un problema de estimación. Como
este método posee una complejidad ligeramente superior al anterior. Aquí no se
presentan conceptos nuevos sólo examinan con una mayor profundidad.
40
DISCUSIÓN
Este material a diferencia de otros materiales como el libro, Métodos Numéricos
Aplicados con Software de Shoichiro Nakamura, no solamente de muestra la
teoría, si no desarrolla las demostraciones y muestra con ejemplos aplicaciones,
haciéndolo un material my didáctico, a pesar de manejar complejo formalismo
matemático y computacional.
Dada la escases de material bibliográfico en idioma español, un material como el
presente trabajo, viene hacer una buena contribución al estudios de los métodos
computacionales, no solamente en física, si no también en la ingenierías. A
continuación se presenta las discusiones de cada capitulo.
Tamaño de paso adaptativo de Runge-Kutta.- En la obtención de los métodos
numéricos para la solución de las ecuaciones es importante considerar entonces:
1. Cuanto error se comete en cada paso del cálculo y como afecta este los
pasos siguientes, esto es, cómo se propaga el error.
2. La habilidad del método para estimar el error en una etapa de cálculo, en
función de los resultados obtenidos.
3. La iniciación del método (se conoce la condición inicial y0 pero como se
verá, algunos métodos numéricos requieren conocer además, los valores de
y en más de un punto anterior para calcular el siguiente).
4. La velocidad del método.
Estas características presentan nuestro trabajo, en relación a la exposición
realizada por el texto A first Course in Computational Physics, cuyo autor es Paul
L. Vries.
Transformada rápida de Fourier Bidimensional. Los principales logros
alcanzados en la realización del presente texto son:
1. Unificar
en
un
documento
la
fundamentación
matemática
de
la
Transformada de Fourier, la comprensión de los algoritmos que permiten su
41
implementación tanto en una como en dos dimensiones mediante software
cuyo código fuente es parte del presente trabajo.
2. Contar con bibliografía avanzada en el tema de la investigación. Mediante
este proyecto fue posible realizar la importación de libros de reciente
publicación y de diferentes niveles de complejidad en las áreas de
tratamiento de imágenes y de la Transformada de Fourier, los cuales sirven
para el desarrollo de futuros proyectos en diferentes áreas como sería la
del tratamiento de imágenes médicas; en anexo se adjunta el detalle de la
bibliografía adquirida.
3. Los algoritmos que implementan la FFT, y que se encuentran en la
bibliografía especializada, tienen un alto nivel de optimización, y son el
resultado de los esfuerzos de muchos investigadores durante las últimas
décadas, lo que ha permitido el uso práctico de la Transformada de Fourier
en diferentes áreas.
Los logros antes mencionados se ha logrado en el desarrollo de nuestro trabajo
en comparación con la exposición realizada por el texto: “Métodos Numéricos
Aplicadas con Software”. Cuyo autor es NAKAMURA, quienes no tocan temas
relacionados a series de Fourier en dos dimensiones.
Modelación de Datos. Los principales logros alcanzados en la realización del
presente texto son:
1. El método de Mínimos Cuadrados Estocástico es propiamente un método
de estimación. Frente a otros métodos estadísticos éste sólo requiere una
caracterización parcial del error.
2. Existe una equivalencia matemática entre las soluciones al problema
determinista y estocástico aunque la interpretación de ambos difiere.
3. En ambos métodos la simplicidad de sus hipótesis y formulación hacen que
estos sean muy utilizados en la práctica para la estimación de los
pparámetros de interés.
Los logros antes mencionados se ha logrado en el desarrollo de nuestro trabajo
en comparación con la exposición realizada por el texto: “, métodos numéricos
42
aplicados a la ingeniería, Cesca, 1998. Cuyos autores son ANTONIO NIEVES,
FEDERICO C. DOMINGUEZ, quienes no tocan desarrollan los temas de
modelación de datos de manera amplia de tal manera que pueda aplicarse a
todos los campos de la ciencia.
43
REFERENCIAS BIBLIOGRAFICAS
1. ASPIROZ L., J; MEDINA V., V; LERALLUT, J. F., “Procesamiento de Imágenes
Biomédicas” (CD), Universidad Autónoma Metropolitana, México.
2. RAFAEL C. GONZALES, RICHARD E. , Digital Image Processing - Second
Edition –Woods- Ed. Pentice Hall – 2002- ISBN 0-201-18075-8.
3. S. WEBB, The Physics of Medical Imaging Ed. Inst. of Physics Publishing,
Bristol and Philadelphia 1995.
4. NAKAMURA, S. Métodos Numéricos Aplicadas con Software.
México:
Prentice-Hall Hispanoamérica, primera edición, 1992.
5. PAUL L. VRIES, A first Course in Computational Physics, Jhon Wiley & Sons,
Inc. 1994.
6. ANTONIO NIEVES, FEDERICO
C.
DOMINGUEZ,
métodos
numéricos
aplicados a la ingeniería, Cesca, 1998.
7. UPPAL, J.S. Nonlinear dynamics and spatial complexity in optical systems.
Edinburgh: Institute of Physic Publications, primera edicion,1993.
8. PRESS, W.H. S.A. TEUKOLSKY, W.T. VETTERLING Y B.P. FLANNERY,
NUMERICAL. Recipes in FORTRAN The Art of Scietific Computing. New York:
Cambridge, segunda edición, 1992.
9. RAÑADA, ANTONIO. Dinámica
Clásica. Alianza. Madrid: Alianza Editorial,
primera edición, 1990.
10. RAÑADA, ANTONIO, Phenomenology of chaotic motion. Singapur: Editor
Saénz A., primera edición, 1982.
44
ANEXO. PROGRAMA COMPUTACIONAL
!
11
PROGRAM xrkdumb
driver for routine rkdumb
INTEGER NSTEP,NVAR
PARAMETER(NVAR=3)
INTEGER i,j
!REAL bessj,bessj0,bessj1
REAL x(10000),x1,x2,y(50,10000),vstart(NVAR)
COMMON /path/ x,y
EXTERNAL derivs
open(1,file='archiv.dat')
open(2,file='archivX.dat')
open(3,file='archivY.dat')
open(4,file='archivZ.dat')
open(5,file='archivt.dat')
write(*,*)'ingrese el valor inicial para x'
read(*,*)vstart(1)
write(*,*)'ingrese el valor inicial para y'
read(*,*)vstart(2)
write(*,*)'ingrese el valor inicial para z'
read(*,*)vstart(3)
write(*,*)'ingrese los valores inicial y final del tiempo en segundos '
read(*,*)x1,x2
h=0.01
NSTEP=(x2-x1)/h
call rkdumb(vstart,NVAR,x1,x2,NSTEP,derivs)
!write(1,'(/1x,t9,a,t17,a,t31,a/)') 'tiempo','x','y','z'
do 11 i=1,NSTEP
j=i
write(1,'(1x,f10.4,2x,3f12.6)') x(j),y(1,j),y(2,j),y(3,j)
write(2,'(1x,f12.6)') y(1,j)
write(3,'(1x,f12.6)') y(2,j)
write(4,'(1x,f12.6)') y(3,j)
write(5,'(1x,f10.4,2x,3f12.6)') x(j)
continue
END
SUBROUTINE derivs(x,y,dydx)
REAL x,y(*),dydx(*),r,b,sigma
x=x
sigma=10.
r=28.
b=8./3.
dydx(1)=sigma*(y(2)-y(1))
dydx(2)=r*y(1)-y(2)-y(1)*y(3)
45
dydx(3)=y(1)*y(2)-b*y(3)
return
END
SUBROUTINE rk4(y,dydx,n,x,h,yout,derivs)
INTEGER n,NMAX
REAL h,x,dydx(n),y(n),yout(n)
EXTERNAL derivs
PARAMETER (NMAX=50)
INTEGER i
REAL h6,hh,xh,dym(NMAX),dyt(NMAX),yt(NMAX)
hh=h*0.5
h6=h/6.
xh=x+hh
do 11 i=1,n
yt(i)=y(i)+hh*dydx(i)
11 continue
call derivs(xh,yt,dyt)
do 12 i=1,n
yt(i)=y(i)+hh*dyt(i)
12 continue
call derivs(xh,yt,dym)
do 13 i=1,n
yt(i)=y(i)+h*dym(i)
dym(i)=dyt(i)+dym(i)
13 continue
call derivs(x+h,yt,dyt)
do 14 i=1,n
yout(i)=y(i)+h6*(dydx(i)+dyt(i)+2.*dym(i))
14
continue
return
END
SUBROUTINE rkdumb(vstart,nvar,x1,x2,nstep,derivs)
INTEGER nstep,nvar,NMAX,NSTPMX
PARAMETER (NMAX=50,NSTPMX=10000)
REAL x1,x2,vstart(nvar),xx(NSTPMX),y(NMAX,NSTPMX)
EXTERNAL derivs
COMMON /path/ xx,y
! USES rk4
INTEGER i,k
REAL h,x,dv(NMAX),v(NMAX)
do 11 i=1,nvar
v(i)=vstart(i)
y(i,1)=v(i)
11 continue
xx(1)=x1
46
x=x1
h=(x2-x1)/nstep
do 13 k=1,nstep
call derivs(x,v,dv)
call rk4(v,dv,nvar,x,h,v,derivs)
if(x+h.eq.x)pause 'stepsize not significant in rkdumb'
x=x+h
xx(k+1)=x
do 12 i=1,nvar
y(i,k+1)=v(i)
12
continue
13 continue
return
END
47
Descargar