Vous êtes sur la page 1sur 23

MÉTODOS NUMÉRICOS

Profesor:

PhD. MSc. EDWIN LENIN CHICA ARRIETA


Ingeniero Mecánico
OF: 20-444

DEPARTAMENTO DE INGENIERÍA MECÁNICA


FACULTAD DE INGENIERÍA
UNIVERSIDAD DE ANTIOQUIA

6 de marzo de 2015

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 1 / 28


Regresión lineal múltiple

Una extensión útil de la regresión lineal es el caso en el que y es una función lineal de dos
o más variables independientes. Por ejemplo, y podrı́a ser una función lineal de x1 y x2 ,
como en y = a0 + a1 x1 + a2 x2 + e
En particular tal ecuación es útil cuando se ajusta datos experimentales donde la variable
sujeta a estudio es una función de otras dos variables. En este caso bidimensional, la lı́nea
de regresión se convierte en un plano.
Como en el caso de la regresión lineal, los mejores valores
para los coeficientes se determinan al realizar la suma de
los cuadrados de los residuos,
n
Sr = (yi − a0 − a1 x1i − a2 x2i )2
P
i=1
y derivando con respecto a cada uno de los coeficientes
desconocidos,
n
∂Sr X
= −2 (yi − a0 − a1 x1i − a2 x2i )
∂a0 i=1
n
∂Sr X
= −2 x1i (yi − a0 − a1 x1i − a2 x2i )
∂a1 i=1
n
∂Sr X
= −2 x2i (yi − a0 − a1 x1i − a2 x2i )
∂a2 i=1
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 2 / 28
Regresión lineal múltiple

Los coeficientes que dan la suma mı́nima de los cuadrados de los residuos se obtiene al
igualar a cero las derivadas parciales y expresando el resultado en forma matricial.

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 3 / 28


Ecuaciones diferenciales de primer orden

Una ecuación diferencial ordinaria de primer orden es una expresión que relaciona una
variable independiente x con una variable dependiente y (x) y su primera derivada y 0 (x)

F (x, y (x), y 0 (x)) = 0, x[a, b]

El orden de una ecuación diferencial es el de la derivada de mayor orden de la ecuación.


Ası́, y 00 + 3y 0 = 3 + 2 es de orden 2. El grado de una ecuación diferencial es el grado de
la derivada de mayor orden que aparece. Ası́, (y 00 )3 + 4(y 0 )4 = x + 2 tiene grado 3.

Una ecuación diferencial ordinaria general de orden n se suele escribir en la forma

F (x, y , y 0 , · · · , y n ) = 0

Una solución de una ecuación diferencial de primer orden es una función

y : [a, b] → R

que verifica la ecuación en cada punto x[a, b]. Para que esta función tenga sentido, es
preciso que la función y (x) sea derivable en el intervalo [a, b] y que dicha derivada sea
una función continúa.
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 4 / 28
Ecuaciones diferenciales de primer orden

Resolver una ecuación diferencial significa obtener todas sus soluciones, esto es, hay
que determinar su solución general y = f (x, c1 , c2 , · · · ) dependiente de una o varias
constantes tal que cualquier solución de la ecuación diferencial se obtiene dando valores
especı́ficos a una o más de las contantes. Cuando damos valores concretos a todas las
contantes de la solución general, surge una solución particular. Geométricamente, la
solución general de una ecuación diferencial de primer orden representa una familia de
curvas, denominadas curvas solución, una para cada valor concreto asignado a la constante
arbitraria.

En la práctica, la determinación de las contantes que aparecen en la solución general


se realiza a partir de las condiciones iniciales del problema. Las condiciones iniciales del
problema son los valores que adquiere la función solución o sus derivadas en determinados
puntos. Por ejemplo, para una ecuación diferencial de primer orden

y 0 = f (x, y ), y (x0 ) = y0

donde y (x0 ) = y0 es una condición inicial.


La inmensa mayorı́a de ecuaciones diferenciales no puede reolverse mediante métodos
analı́ticos, es decir, no es posible obtener una expresión exacta de la solución, por lo tanto
se recurre a los métodos númericos para darle solución.
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 5 / 28
Ecuaciones diferenciales de primer orden

Método de Euler
El método de Euler o de las Tangentes constiutye el primer y más sencillo ejemplo de
método numérico para la resolución de un problema de valor inicial.
y 0 = f (x, y ), y (x0 ) = y0
El método se basa en el hecho que la derivada de una función f (x), evaluada en un punto
x0 , es la pendiente de la tangente a la grafica de y (x) en este punto. Como el problema
de valor incial establece el valor de la derivada de la solución en (x0 , y0 ), la pendiente de
la tangente a la curva de solución en este punto es f (x0 , y0 ). Si recorremos una distancia
corta por la lı́nea tangente obtenemos una aproximación a un punto cercano de la curva
solución. Por lo tanto es posible aproximar la función y (x) por medio de la recta tangente
a la misma que pasa por ese punto.
y (x) ∼= y0 + f (x0 , y0 )(x − x0 )

Calculamos ası́ de manera aproximada el


valor de la solución y en el punto de abscisa
x1 como
y (x1 ) ∼
== y1 = y0 + f (x0 , y0 )(x1 − x0 )

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 6 / 28


Ecuaciones diferenciales de primer orden

Método de Euler
y con este punto (aproximado) ya calculado, podemos repetir el método para obtener otro
punto aproximado (x2 , y2 ) de la forma:

y (x2 ) ∼
= y2 = y1 + f (x1 , y1 )(x2 − x0 )

y ası́ sucesivamente. Es habitual en este método tomar abscisas equiespaciadas, es decir,


calcular la solución aproximada en puntos d ela forma: xn = xn−1 + h = x0 + nh, siendo h
el paso del método. De esta forma se obtienne las formulas que nos determinan la solución
aproximada en la forma:

xn = xn−1 + h, yn = yn−1 + f (xn−1 , yn−1 )h

Desde el punto de vista geométrico, tenemos en definitiva que el método de Euler aproxima
a la función solución por medio de una lı́nea poligonal, la aproximación sera tnato peor
cuanto mayor sea en número de pasos, es decir cuanto mas lejos nos encontremos del
punto inicial (x0 , y0 ). Por otro lado, el error será evidentemente tanto mayor cuanto más
grande sea el paso del método, h.

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 7 / 28


Ecuaciones diferenciales de primer orden
Método de Euler

clear all
clc
close all
n=input(’numero de iteraciones = ’);
xi=input(’abscisa inicial = ’);
xf=input(’abscisa final = ’);
yi=input(’ordenada inicial = ’);
f=input(’entrar la funcion f(x,y) = ’);
% El tamano de paso se calcula como
h=(xf-xi)/n;
%El vector de abscisas se calcula como
for k=1:n+1
xe(k)=xi+(k-1)*h;
end
%El vector de ordenadas se calcula como
ye(1)=yi;
for k=1:n
x=xe(k);
y=ye(k);
ye(k+1)=ye(k)+h*eval(f);
end
[xe’ ye’]
plot(xe,ye,’o’)
grid on

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 8 / 28


Ecuaciones diferenciales de primer orden

Método de Taylor
El método de Euler que acabamos de describir no es más que un caso particular de los
métodos de Taylor, que consisten de manera general en aproximar la solución por su
polinomio de Taylor de un orden determinado. Partiendo del problema de valor inicial

y 0 = f (x, y ), y (x0 ) = y0

tal que presenta solución unica y (x) en el entorno de x0 solución que suponemos además
derivable n veces en dicho entorno, aproximaremos dicha función por un polinomio de
Taylor de orden N.
1 1
y (x) ' y (x0 ) + y 0 (x0 )(x − x0 ) + y 00 (x0 )(x − x0 )2 + y 000 (x0 )(x − x0 )3 + · · ·
2! 3!
de manera general tenemos
1 1
yn+1 ' yn ) + y 0 (xn )h + y 00 (xn )h2 + y 000 (xn )h3 + · · ·
2! 3!
Para poder aplicara el método necesitamos conocer las derivadas de la solución. y 0 =
f (x, y ) mientras que y 00 (xn ) puede ser calculada derivando
d ∂f ∂f dy ∂f ∂f
y 00 = f (x, y ) = + = + f (x, y )
dx ∂x ∂y dx ∂x ∂y
y ası́ sucesivamente. Es evidente que el metodo de Taylor de orden uno no es más que el
método de Euler antes descrito.
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 9 / 28
Ecuaciones diferenciales de primer orden
Método de Taylor
A continuación se transcribe un programa en Matlab para resolver el problema de valor inicial.
clear all
clc
close all
n=input(’numero de iteraciones = ’);
xi=input(’abscisa inicial = ’);
xf=input(’abscisa final = ’);
yi=input(’ordenada inicial = ’);
f=input(’entrar la funcion f(x,y) = ’);
g= input(’entrar la funcion g(x,y) = ’);
% El tamano de paso se calcula como
h=(xf-xi)/n;
%El vector de abscisas se calcula como
for k=1:n+1
xe(k)=xi+(k-1)*h;
end
%El vector de ordenadas se calcula como
ye(1)=yi;
for k=1:n
x=xe(k);
y=ye(k);
ye(k+1)=ye(k)+h*eval(f)+h*h*eval(g)/2;
end
[xe’ ye’]
plot(xe,ye,’o’)
grid on

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 10 / 28


Ecuaciones diferenciales de primer orden

Método de Heun
Este método propone una mejora al método de Euler. El método para mejorar la estimación
de la pendiente emplea la determinación de dos derivadas en el intervalo (una en el punto
inicial y otra en el final). Las dos derivadas se promedian después con la finalidad de
obtener una mejor estimación de la pendiente en todo el intervalo.
Recuerde que el método de Euler, la pendiente al inicio de un intervalo

yi0 = f (xi , yi )

se utiliza para extrapolar linealmente a yi+1


0
yi+1 = yi + f (xi , yi )h
En el método estándar de Euler se deberı́a parar aquı́. Sin embargo, en el método
0
de Heun la yi+1 calculada no es la respuesta final, sino una predicción intermedia.
Por consiguiente, la distinguimos con un superı́ndice 0. La ecuación se llama ecuación
predictora o simplemente preditor. Da una estimación de yi+1 que permite el cálculo de
una estimación de la pendiente al final del intervalo:
0 0
yi+1 = f (xi+1 , yi+1 )
Ası́, se combinan las dos pendientes para obtener una pendiente promedio en el intervalo
y 0 + yi+1
0 0
f (xi , yi ) + f (xi+1 , yi+1 )
y0 = i =
2 2
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 11 / 28
Ecuaciones diferenciales de primer orden

Método de Heun
Esta pendiente promedio se utiliza después para extrapolar linealmente desde yi hasta yi+1
con el método de Euler.
0
f (xi , yi ) + f (xi+1 , yi+1 )
yi+1 = yi + h
2
que se conoce como ecuación correctora o simplemente corrector.

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 12 / 28


Ecuaciones diferenciales de primer orden

Método de Runge-Kutta
Los métodos de Runge-Kutta logran la exactitud del procedimiento de la serie de Taylor
sin necesitar el cálculo de derivadas de orden superior. Existen muchas variantes pero
todas tienen la forma generalizada de la ecuación

yi+1 = yi + φ(xi , yi , h)h

φ(xi , yi , h) Se conoce como función incremento, la cual puede interpretarse como una
pendiente representativa en el intervalo.
φ = a 1 k1 + a 2 k2 + · · · + a n kn
Donde las a son constantes y las k son:
k1 = f (xi , yi )
k2 = f (xi + p1 h, yi + q11 k1 h)
k3 = f (xi + p2 h, yi + q21 k1 h + q22 k2 h)
..
.
kn = f (xi + pn−1 h, yi + qn−1,1 k1 h + qn−1,2 k2 h + · · · + qn−1,n−1 kn−1 h)
Donde las p y q son constantes. Observe que las k son relaciones de recurrencia. Es decir
k1 aparece en la ecuación de k2 , la cual aparece en la ecuación de k3 , etc.

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 13 / 28


Ecuaciones diferenciales de primer orden

Método de Runge-Kutta
Es posible tener varios tipos de métodos de Runge-Kutta empleando diferentes números
de términos en la función incremento especificada por n. Una vez se elige n, se evalúan
las a, p, q igualando la ecuación anterior a los términos en la expansión de la serie de
Taylor.

Por ejemplo para el método de Rugen-kutta de segundo orden tenemos:


yi+1 = yi + (a1 k1 + a2 k2 )h
k1 = f (xi , yi )
k2 = f (xi + p1 h, yi + q11 k1 h)
Para usar la ecuación Yi+1 es necesario determinar los valores de las contantes a1 , a2 , p1 ,
q11 . Para ello recordamos que la serie de Taylor de segundo orden para yi+1 en términos
de yi y f (xi , yi ) se escribe como:
f 0 (xi , yi ) 2
yi+1 = yi + f (xi , yi )h + h
0
2!
Donde f (xi , yi ) debe determinarse por derivación usando la regla de la cadena.
∂f (x, y ) ∂f (x, y ) dy
f 0 (xi , yi ) = +
∂x  ∂y dx
∂f (x, y ) dy h2

∂f (x, y )
yi+1 = yi + f (xi , yi )h + +
∂x ∂y dx 2!
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 14 / 28
Ecuaciones diferenciales de primer orden

Método de Runge-Kutta
La estrategia básica de los métodos de Runge-Kutta es el uso de manipulaciones
algebraicas para obtener los valores de a1 , a2 , p1 y q11 , que hacen equivalentes a las
siguientes ecuaciones
∂f (x, y ) dy h2
 
∂f (x, y )
yi+1 = yi + (a1 k1 + a2 k2 )h ⇐⇒ yi+1 = yi + f (xi , yi )h + +
∂x ∂y dx 2!
yi+1 = yi + (a1 f (xi , yi ) + a2 f (xi + p1 h, yi + q11 k1 h)h)
∂f (x, y ) dy h2
 
∂f (x, y )
⇐⇒ yi+1 = yi + f (xi , yi )h + +
∂x ∂y dx 2!
Para ello, primero usando una serie de Taylor para una función de dos variable
∂g ∂g
g (x + r , y + s) = g (x, y ) + r +s + ···
∂x ∂y
∂f ∂f
f (xi + p1 h, yi + q11 k1 h) = f (xi , yi ) + p1 h + q11 k1 h + ···
∂x ∂y
∂f ∂f
yi+1 = yi + a1 hf (xi , yi ) + a2 hf (xi , yi ) + a2 p1 h2 + a2 q11 h2 f (xi , yi ) + ···
 ∂x ∂y
∂f ∂f
yi+1 = yi + [a1 f (xi , yi ) + a2 f (xi , yi )]h + a2 p1 p1 + a2 q11 f (xi , yi ) h2 + · · ·
∂x ∂y
∂f (x, y ) dy h2
 
∂f (x, y )
⇐⇒ yi+1 = yi + f (xi , yi )h + +
∂x ∂y dx 2!
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 15 / 28
Ecuaciones diferenciales de primer orden

Método de Runge-Kutta
Para que las dos ecuaciones sean equivalentes se debe satisfacer un conjunto de tres
ecuaciones simultáneas que contienen las cuatro constantes desconocidas. Como hay una
incógnita más que el número de ecuaciones, no existe un conjunto único de constantes que
satisfaga las ecuaciones. Sin embargo considerando un valor para una de las contantes
es posible determinar el valor de las otras tres. En consecuencia existe una familia de
métodos de segundo orden y no una sola versión.
a1 + a2 = 1
1
a2 p1 =
2
1
a2 q11 =
2
A continuación se presentan tres versiones más comúnmente usadas del método de Runge-
kutta de segundo orden
Método de Heun con un solo corrector
Si suponemos que a2 es igual a 0.5 entonces el método de Runge-Kutta se segundo orden
seria igual a: 
1 1
yi+1 = yi + k1 + k2 h
2 2
k1 = f (xi , yi )
k2 = f (xi + h, yi + k1 h)
Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 16 / 28
Ecuaciones diferenciales de primer orden

Método de Runge-Kutta
El método de punto medio
Si suponemos que a2 es igual a 1 entonces el método de Runge-Kutta se segundo orden
seria igual a:
yi+1 = yi + k2 h
k1 = f (xi , yi )
1 1
k2 = f (xi + h, yi + k1 h)
2 2
El método de Ralston
Si suponemos que a2 es igual a 2/3 entonces el método de Runge-Kutta se segundo orden
seria igual a: 
1 2
yi+1 = yi + k1 + k2 h
3 3
k1 = f (xi , yi )
3 3
k2 = f (xi + h, yi + k1 h)
4 4

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 17 / 28


Ecuaciones diferenciales de primer orden

Método de Runge-Kutta

Método de Runge-kutta de tercer orden


Para n = 3, es posible efectuar un desarrollo similar al del método de segundo orden.
El resultado de tal desarrollo genera seis ecuaciones con ocho incógnitas. Por lo tanto se
deben dar a priori los valores de dos de las incógnitas con la finalidad de establecer los
parámetros restantes. Una versión común que se obtiene es:
1
yi+1 = yi + (k1 + 4k2 + k3 ) h
6
k1 = f (xi , yi )
1 1
k2 = f (xi + h, yi + k1 h)
2 2
k3 = f (xi + h, yi − k1 h + 2k2 h)

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 18 / 28


Ecuaciones diferenciales de primer orden

Método de Runge-Kutta

Método de Runge-Kutta de cuarto orden


El más popular de los métodos de Runge-Kutta es el de cuarto orden. Como en el caso de
los procedimientos de segundo orden, hay un número infinito de versiones. La siguiente es
la forma comúnmente usada y por lo tanto le llamaremos método clásico de Runge-Kutta
de cuarto orden.
1
yi+1 = yi + (k1 + 2k2 + 2k3 + k4 ) h
6
k1 = f (xi , yi )
1 1
k2 = f (xi + h, yi + k1 h)
2 2
1 1
k3 = f (xi + h, yi + k2 h)
2 2
k4 = f (xi + h, yi + k3 h)

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 19 / 28


Ecuaciones diferenciales de primer orden

Método de Runge-Kutta

Método de Runge-Kutta de orden superior


Cuando se requiere resultados más exactos, se recomienda el método de Runge-kutta de
quinto orden de Butcher
1
yi+1 = yi + (7k1 + 32k3 + 12k4 + 32k5 + 7k6 ) h
90
k1 = f (xi , yi )
1 1
k2 = f (xi + h, yi + k1 h)
4 4
1 1 1
k3 = f (xi + h, yi + k1 h + k2 h)
4 8 8
1 1
k4 = f (xi + h, yi − k2 h + k3 h)
2 2
3 3 9
k5 = f (xi + h, yi + k1 h + k4 h)
4 16 16
3 2 12 12 8
k6 = f (xi + h, yi − k1 h + k2 h + k3 h − k4 h + k5 h)
7 7 7 7 7

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 20 / 28


Ecuaciones diferenciales de primer orden
Método de Runge-Kutta orden 2

clear all
clc
format short
n=input(’Digite el número de particiones = ’);
xi=input(’Digite el valor de la abscisa inicial = ’);
xf=input(’Digite el valor de la abscisa final = ’);
yi=input(’Digite el valor de la ordenada inicial = ’); M1(k)=eval(f);
a1=input(’Digite el factor de peso 1 = ’); x=x+(alfa*h);
a2=input(’Digite el factor de peso 2 = ’); y=y+(alfa*h*M1(k));
alfa=input(’Digite el alfa = ’); M2(k)=eval(f);
f=input(’Digite la función f(x,y) = ’); M(k)=(a1*M1(k))+(a2*M2(k));
% Se calcula el tamaño de paso ye(k+1)=ye(k)+h*M(k);
h=(xf-xi)/n; end
%Se calcula el vector de abscisas [xe’ ye’]
for k=1:n+1 plot(xe,ye)
xe(k)=xi+(k-1)*h; grid on
end
%Se calcula el vector de ordenadas
ye(1)=yi;
for k=1:n
x=xe(k);
y=ye(k);

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 21 / 28


Ecuaciones diferenciales de primer orden
Método de Runge-Kutta orden 3

clear all
clc
format short
n=input(’Digite el número de particiones = ’);
xi=input(’Digite el valor de la abscisa inicial = ’);
xf=input(’Digite el valor de la abscisa final = ’); y=y+h*M1(k)/2;
yi=input(’Digite el valor de la ordenada inicial = ’); M2(k)=eval(f);
f=input(’Digite la función f(x,y) = ’); x=x+h/2;
% Se calcula el tamaño de paso y=y+h*M1(k)/2-3*h*M1(k)/2+2*h*M2(k);
h=(xf-xi)/n; M3(k)=eval(f);
%Se calcula el vector de abscisas M(k)=(M1(k)+4*M2(k)+M3(k))/6;
for k=1:n+1 Y(k+1)=Y(k)+h*M(k);
X(k)=xi+(k-1)*h; end
end [X’ Y’]
%Se calcula el vector de ordenadas plot(X,Y)
Y(1)=yi; grid on
for k=1:n
x=X(k);
y=Y(k);
M1(k)=eval(f);
x=x+h/2;

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 22 / 28


Ecuaciones diferenciales de primer orden
Método de Runge-Kutta orden 4
clear all
clc
format short
n=input(’Digite el número de particiones = ’);
xi=input(’Digite el valor de la abscisa inicial = ’);
xf=input(’Digite el valor de la abscisa final = ’);
yi=input(’Digite el valor de la ordenada inicial = ’);
f=input(’Digite la función f(x,y) = ’);
%Se calcula el tamaño de paso
h=(xf-xi)/n;
%Se calcula el vector de abscisas
M4(k)=eval(f);
for k=1:n+1
M(k)=(M1(k)+2*M2(k)+2*M3(k)+M4(k))/6;
X(k)=xi+(k-1)*h;
Y(k+1)=Y(k)+h*M(k);
end
end
%Se calcula el vector de ordenadas
[X’ Y’]
Y(1)=yi;
plot(X,Y,’k’)
for k=1:n
grid on
x=X(k);
y=Y(k);
M1(k)=eval(f);
x=x+h/2;
y=y+h*M1(k)/2;
M2(k)=eval(f);
x=x;
y=y-h*M1(k)/2+h*M2(k)/2;
M3(k)=eval(f);
x=x+h/2;
y=y+h*M3(k)-h*M2(k)/2;

Email: echica@udea.edu.co (UdeA) Métodos Numéricos 6 de marzo de 2015 23 / 28

Vous aimerez peut-être aussi