Académique Documents
Professionnel Documents
Culture Documents
Profesor:
6 de marzo de 2015
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.
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 , y 0 , · · · , y n ) = 0
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.
y 0 = f (x, y ), y (x0 ) = y0
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 )
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 )
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.
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
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
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 )
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.
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
φ(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.
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.
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
Método de Runge-Kutta
Método de Runge-Kutta
Método de Runge-Kutta
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);
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;