modulo 6 metodos

22
UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA DE SISTEMAS E INDUSTRIAL MÉTODOS NUMÉRICOS MÓDULO 6 ECUACIONES DIFERENCIALES ORDINARIAS

Upload: alejahndra-morales-herrera

Post on 16-Jan-2016

34 views

Category:

Documents


1 download

DESCRIPTION

Métodos Numéricos-Ecuaciones diferenciales ordinarias

TRANSCRIPT

Page 1: Modulo 6 Metodos

UNIVERSIDAD NACIONAL DE COLOMBIA

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA DE SISTEMAS E INDUSTRIAL

MÉTODOS NUMÉRICOS

MÓDULO 6

ECUACIONES DIFERENCIALES ORDINARIAS

Page 2: Modulo 6 Metodos

1. INTRODUCCIÓN

Las ecuaciones diferenciales las cuales se usan para construir modelos matemáticos de

problemas de la ciencia y la energía a menudo se da el caso de que no hay una solución

analítica conocida, por lo que se necesitan aproximaciones numéricas. Lo que normalmente

se puede medir es como los cambios de una variable afectan a otra variable; cuando se

traduce esto a un modelo matemático, el resultado es una ecuación diferencial que

involucra la velocidad de cambio de la función desconocida, la variable dependiente e

independiente.

Las ecuaciones diferenciales ordinarias que modelan una realidad específica, aumentan su

complejidad en la medida que se aproximen cada vez mas al comportamiento del objeto o

fenomeno de estudio, razon por la cual en la mayoria de los casos hallar su solucion por

metodos analiticos es imposible lo que nos lleva a utilizar los métodos numéricos.

Mediante el siguiente laboratorio se pretende desarrollar por medio del uso de la

herramienta de programación Scilab diferentes problemas los cuales incluyen la resolución

de ecuaciones diferenciales ordinarias las cuales se dividen en dos tipos de problema

principalmente, con condiciones iniciales y problemas de contorno.

Page 3: Modulo 6 Metodos

2. OBJETIVOS

Conocer y entender los diferentes métodos existentes para el desarrollo de

problemas de valor inicial y problemas de contorno de las ecuaciones diferenciales,

y aplicarlos usando su implementación en Scilab.

Lograr que el estudiante desarrolle cierta capacidad para analizar y escoger, de

entre los métodos disponibles para resolver problemas, cual es el más eficiente.

Ofrecer al estudiante ejemplos de aplicación que ilustren de una manera simple la

forma como funcionan los algoritmos que se estudian en el curso.

Comprender como se desarrolla el programa Scilab a través de los códigos creados

para obtener una respuesta óptima.

Vincular la actividad teórica con la práctica para generar un conocimiento integral

que pueda ser implementado como una herramienta en la solución de problemas

que estén vinculados a la ingeniería.

Page 4: Modulo 6 Metodos

3. MARCO TEÓRICO

Una ecuacion diferencial ordinaria es aquella que involucra una variable independiente, una

variable dependiente y la derivada de esta ultima. En una ecuacion diferencial, la incognita

es la variable dependiente y se espera encontrarla como funcion de la variable

independiente, de tal forma que si se sustituye dich variable dependiente, asi como las

derivadas que aparecen en la ecuacion diferencial, la igualada es verdadera.

Usualmente estas ecuaciones estan acompañadas de una condicion adicional que

especifica el estado del sistema en un tiempo o posicion incial. Esto se conoce como

condicion inicial y junto con la ecuacion diferencial forman lo que se conoce como el

problema de valor incial.

Problemas de Valor Inicial

- Método de Euler:

El Método de Euler o de las Tangentes constituye el primer y más sencillo ejemplo de

método numérico para la resolución de un problema de valor inicial:

Donde suponemos además que se verifican las hipótesis del Teorema de Picard, y en

consecuencia existe solución única para el problema.

Interpretando la e.d.o. y’=f(x, y) como un campo de direcciones en el plano x – y, y la

condición inicial y(x0) = y0 como un punto (x0, y0) de dicho plano, podemos aproximar

la función solució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)

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 − x1)

Y así sucesivamente. Es habitual en este método tomar abscisas equiespaciadas, es

decir, calcular la solución aproximada en puntos de la forma: xn = xn−1 + h = x0 + nh,

siendo h el paso del método. De esta forma se obtienen las fórmulas que nos determinan

la solución aproximada en la forma:

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

Page 5: Modulo 6 Metodos

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 será

tanto peor cuanto mayor sea en número de pasos, es decir, cuanto más “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.

- Métodos de Runge-Kutta (RK):

La idea general de los Métodos de Runge-Kutta es sustituir el Problema de Valor Inicial:

por la ecuación integral equivalente:

Para proceder a aproximar esta ´ultima integral mediante un método numérico adecuado

(recordemos que y(x) es desconocida). Si nuevamente planteamos el problema “paso a

paso” tendremos:

Método de Runge-Kutta de orden superior:

Page 6: Modulo 6 Metodos

- Sistemas de Ecuaciones Diferenciales:

Los métodos de Euler y de Runge-Kutta que se han planteado se aplican de manera

sencilla a sistemas de ecuaciones de primer orden, y, en consecuencia, a ecuaciones

de orden superior al primero.

Método de Euler aplicado a un sistema de dos ecuaciones de primer orden:

La extensión natural del método ya expuesto nos conduce a las expresiones:

Problemas de Contorno

- Método del Disparo Lineal:

Sea la ecuación diferencial de segundo orden con condiciones de frontera:

Consiste en transformar el problema de valor frontera en un problema de valor inicial,

suponiendo una pendiente s, luego se desarrolla un método numérico para encontrar

uN(s), se compara con B, si estos valores no son aproximados se sigue suponiendo

pendientes hasta dar en el blanco B.

El problema de valor inicial resultante:

Bbu

utu

uutgu

00

',,"

stu

utu

uutgu

0

00

'

',,"

Page 7: Modulo 6 Metodos

- Método de las Diferencias Finitas:

Sea la ecuación diferencial ordinaria de segundo orden:

Dividiendo el intervalo en (n+1) partes iguales

Sean las fórmulas de diferenciación numérica para la primera y segunda derivada

byay

bax

xryxqyxpy

,

'''

111100

1210 2

1

nnnn

n

yxyyxyyxyyxy

bxhaxhaxax

n

abh

2

11

11

2''

2'

h

yyyy

h

yyy

iiii

iii

Page 8: Modulo 6 Metodos

Reemplazando en la ecuación diferencial para cada nodo i=1, 2,…, n:

Se tendrá un sistema de n ecuaciones con n incógnitas:

Agrupando:

iiiiii xryxqyxpy '''

1

0

11

2

11

2

2

:1

n

iiiii

iiii

y

y

xryxqh

yyxp

h

yyy

niPara

1

0

2

1

2

12

122

1

:1

n

iiiiiii

y

y

xrhyxph

yxqhyxph

niPara

1

0

2

1

2

1

2

2

3222

2

12

1

2

2111

2

01

212

21

212

21

212

21

n

nnnnnnn

y

y

xrhyxph

yxqhyxph

xrhyxph

yxqhyxph

xrhyxph

yxqhyxph

Page 9: Modulo 6 Metodos

4. RESULTADOS

Punto 1:

-Código:

clc disp(' UNIVERSIDAD NACIONAL DE COLOMBIA ') disp(' Asignatura: Métodos Numéricos Grupo: 4') disp('Presentado por: Jefferson Fabian Cano Benitez ') disp(' Karol Johanna Fernandez Carreño') disp(' Daniela Alejandra Morales Herrera')

disp(" ** Laboratorio Seis - Grupo 04 ** ") // Según sea el caso disp("Codigos: 2879824 215559 215548") // En concordancia con los participantes ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d a las HH:%d ,MM:%d ,SS:%d ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); disp('');

Page 10: Modulo 6 Metodos

function [yt]=devy(t, y, z); yt=z;

endfunction function [zt]=devz(t, y, z); zt=-200*y-20*z; endfunction function [A]=ffun(t, y, z, h); A=zeros(2,4);

X=zeros(4,3); X(1,1)=t; X(1,2)=y; X(1,3)=z; A(1,1)=devy(X(1,1),X(1,2),X(1,3)); A(2,1)=devz(X(1,1),X(1,2),X(1,3));

X(2,1)=X(1,1)+h/2; X(2,2)=X(1,2)+h/2*A(1,1); X(2,3)=X(1,3)+h/2*A(2,1); A(1,2)=devy(X(2,1),X(2,2),X(2,3)); A(2,2)=devz(X(2,1),X(2,2),X(2,3)); X(3,1)=X(1,1)+h/2;

X(3,2)=X(1,2)+h/2*A(1,2); X(3,3)=X(1,3)+h/2*A(2,2); A(1,3)=devy(X(3,1),X(3,2),X(3,3)); A(2,3)=devz(X(3,1),X(3,2),X(3,3)); X(4,1)=X(1,1)+h; X(4,2)=X(1,2)+h*A(1,3);

X(4,3)=X(1,3)+h*A(2,3); A(1,4)=devy(X(4,1),X(4,2),X(4,3)); A(2,4)=devz(X(4,1),X(4,2),X(4,3)); endfunction function resorte()

y=1; z=0; t=0; h=0.01; F=zeros(5,4); G=zeros(5,4); T=zeros(6,1);

Y=zeros(6,1); Z=zeros(6,1); A=zeros(4,2); T(1,1)=t; Y(1,1)=y; Z(1,1)=z;

for (k=1:5)

Page 11: Modulo 6 Metodos

A=ffun(T(k,1),Y(k,1),Z(k,1),h); for (n=1:4) F(k,n)=A(1,n);

G(k,n)=A(2,n); end T(k+1,1)=T(k,1)+h; Y(k+1,1)=Y(k,1)+h/6*(F(k,1)+2*F(k,2)+2*F(k,3)+F(k,4)); Z(k+1,1)=Z(k,1)+h/6*(G(k,1)+2*G(k,2)+2*G(k,3)+G(k,4)); end disp(Y(1,1));

disp(Y(6,1)); disp(F); disp(G); endfunction

Page 12: Modulo 6 Metodos

Punto 2:

-Código:

clc disp(' UNIVERSIDAD NACIONAL DE COLOMBIA ') disp(' Asignatura: Métodos Numéricos Grupo: 4') disp('Presentado por: Jefferson Fabian Cano Benitez ') disp(' Karol Johanna Fernandez Carreño')

disp(' Daniela Alejandra Morales Herrera') disp(" ** Laboratorio Seis - Grupo 04 ** ") // Según sea el caso disp("Codigos: 2879824 215559 215548") // En concordancia con los participantes ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d a las HH:%d ,MM:%d ,SS:%d ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); disp(''); function [pt]=funp(t);

pt=2; endfunction function [qt]=funq(t); qt=-1; endfunction function [rt]=funr(t);

rt=t.^2-1; endfunction function [ut]=devu(t, u, y); ut=y; endfunction function [yt]=devy(t, u, y);

yt=funp(t)*y+funq(t)*u+funr(t); endfunction function [vt]=devv(t, v, z); vt=z; endfunction function [zt]=devz(t, v, z);

zt=funp(t)*z+funq(t)*v; endfunction function [A]=fiteu(t, u, y, h); A=zeros(2,4); X=zeros(4,3);

Page 13: Modulo 6 Metodos

X(1,1)=t; X(1,2)=u; X(1,3)=y;

A(1,1)=devu(X(1,1),X(1,2),X(1,3)); A(2,1)=devy(X(1,1),X(1,2),X(1,3)); X(2,1)=X(1,1)+h/2; X(2,2)=X(1,2)+h/2*A(1,1); X(2,3)=X(1,3)+h/2*A(2,1);

A(1,2)=devu(X(2,1),X(2,2),X(2,3)); A(2,2)=devy(X(2,1),X(2,2),X(2,3)); X(3,1)=X(1,1)+h/2; X(3,2)=X(1,2)+h/2*A(1,2); X(3,3)=X(1,3)+h/2*A(2,2); A(1,3)=devu(X(3,1),X(3,2),X(3,3));

A(2,3)=devy(X(3,1),X(3,2),X(3,3)); X(4,1)=X(1,1)+h; X(4,2)=X(1,2)+h*A(1,3); X(4,3)=X(1,3)+h*A(2,3); A(1,4)=devu(X(4,1),X(4,2),X(4,3)); A(2,4)=devy(X(4,1),X(4,2),X(4,3));

endfunction function [B]=fitev(t, v, z, h); B=zeros(2,4); X=zeros(4,3); X(1,1)=t; X(1,2)=v;

X(1,3)=z; B(1,1)=devv(X(1,1),X(1,2),X(1,3)); B(2,1)=devz(X(1,1),X(1,2),X(1,3)); X(2,1)=X(1,1)+h/2; X(2,2)=X(1,2)+h/2*B(1,1); X(2,3)=X(1,3)+h/2*B(2,1);

B(1,2)=devv(X(2,1),X(2,2),X(2,3)); B(2,2)=devz(X(2,1),X(2,2),X(2,3)); X(3,1)=X(1,1)+h/2; X(3,2)=X(1,2)+h/2*B(1,2); X(3,3)=X(1,3)+h/2*B(2,2);

B(1,3)=devv(X(3,1),X(3,2),X(3,3)); B(2,3)=devz(X(3,1),X(3,2),X(3,3)); X(4,1)=X(1,1)+h; X(4,2)=X(1,2)+h*B(1,3); X(4,3)=X(1,3)+h*B(2,3); B(1,4)=devv(X(4,1),X(4,2),X(4,3)); B(2,4)=devz(X(4,1),X(4,2),X(4,3));

Page 14: Modulo 6 Metodos

endfunction function probcontor()

a=0; b=1; H=[0.1 0.01] xa=5; xb=10; u=5;

y=0; v=0; z=1; t=0; F11=zeros((b-a)/H(1),4); G11=zeros((b-a)/H(1),4); F21=zeros((b-a)/H(1),4);

G21=zeros((b-a)/H(1),4); Var11=zeros((b-a)/H(1)+1,3); Var21=zeros((b-a)/H(1)+1,3); X1=zeros((b-a)/H(1)+1,1); F12=zeros((b-a)/H(2),4); G12=zeros((b-a)/H(2),4); F22=zeros((b-a)/H(2),4);

G22=zeros((b-a)/H(2),4); Var12=zeros((b-a)/H(2)+1,3); Var22=zeros((b-a)/H(2)+1,3); X2=zeros((b-a)/H(2)+1,1); A=zeros(4,2); B=zeros(4,2);

Var11(1,1)=t; Var11(1,2)=u; Var11(1,3)=y; Var21(1,1)=t; Var21(1,2)=v; Var21(1,3)=z;

Var12(1,1)=t; Var12(1,2)=u; Var12(1,3)=y; Var22(1,1)=t; Var22(1,2)=v; Var22(1,3)=z;

for (k=1:(b-a)/H(1)) A=fiteu(Var11(k,1),Var11(k,2),Var11(k,3),H(1)); B=fitev(Var21(k,1),Var21(k,2),Var21(k,3),H(1)); for (n=1:4) F11(k,n)=A(1,n); G11(k,n)=A(2,n); F21(k,n)=B(1,n);

G21(k,n)=B(2,n);

Page 15: Modulo 6 Metodos

end Var11(k+1,1)=Var11(k,1)+H(1); Var11(k+1,2)=Var11(k,2)+H(1)/6*(F11(k,1)+2*F11(k,2)+2*F11(k,3)+F11(k,4));

Var11(k+1,3)=Var11(k,3)+H(1)/6*(G11(k,1)+2*G11(k,2)+2*G11(k,3)+G11(k,4)); Var21(k+1,1)=Var21(k,1)+H(1); Var21(k+1,2)=Var21(k,2)+H(1)/6*(F21(k,1)+2*F21(k,2)+2*F21(k,3)+F21(k,4)); Var21(k+1,3)=Var21(k,3)+H(1)/6*(G21(k,1)+2*G21(k,2)+2*G21(k,3)+G21(k,4)); end c1=(xb-Var11((b-a)/H(1)+1,2))/Var21((b-a)/H(1)+1,2);

for (k=1:(b-a)/H(1)+1) X1(k,1)=Var11(k,2)+c1*Var21(k,2); end for (k=1:(b-a)/H(2)) A=fiteu(Var12(k,1),Var12(k,2),Var12(k,3),H(1)); B=fitev(Var22(k,1),Var22(k,2),Var22(k,3),H(1)); for (n=1:4)

F12(k,n)=A(1,n); G12(k,n)=A(2,n); F22(k,n)=B(1,n); G22(k,n)=B(2,n); end Var12(k+1,1)=Var12(k,1)+H(2); Var12(k+1,2)=Var12(k,2)+H(2)/6*(F12(k,1)+2*F12(k,2)+2*F12(k,3)+F12(k,4)); Var12(k+1,3)=Var12(k,3)+H(2)/6*(G12(k,1)+2*G12(k,2)+2*G12(k,3)+G12(k,4)); Var22(k+1,1)=Var22(k,1)+H(2);

Var22(k+1,2)=Var22(k,2)+H(2)/6*(F22(k,1)+2*F22(k,2)+2*F22(k,3)+F22(k,4)); Var22(k+1,3)=Var22(k,3)+H(2)/6*(G22(k,1)+2*G22(k,2)+2*G22(k,3)+G22(k,4)); end c2=(xb-Var12((b-a)/H(2)+1,2))/Var22((b-a)/H(2)+1,2); for (k=1:(b-a)/H(2)+1) X2(k,1)=Var12(k,2)+c2*Var22(k,2);

end disp(X1(1,1)); disp(X1((b-a)/H(1)+1,1)); disp(X2(1,1)); disp(X2((b-a)/H(2)+1,1)); for (k=1:(b-a)/H(1)+1)

x1(k)=Var11(k,1); y1(k)=X1(k,1); end for (k=1:(b-a)/H(2)+1) x2(k)=Var12(k,1); y2(k)=X2(k,1); end

x=[0:0.01:1]'; plot(x2, y2, 'ro'); plot(x1, y1, 'ko'); plot(x, x.^2+4*x+5); endfunction

Page 16: Modulo 6 Metodos
Page 17: Modulo 6 Metodos

Punto 3:

-Código:

clc

disp(' UNIVERSIDAD NACIONAL DE COLOMBIA ') disp(' Asignatura: Métodos Numéricos Grupo: 4') disp('Presentado por: Jefferson Fabian Cano Benitez ') disp(' Karol Johanna Fernandez Carreño') disp(' Daniela Alejandra Morales Herrera') disp(" ** Laboratorio Seis - Grupo 04 ** ") // Según sea el caso disp("Codigos: 2879824 215559 215548") // En concordancia con los participantes

ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d a las HH:%d ,MM:%d ,SS:%d ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); disp(''); function [pt]=funp(t); pt=2; endfunction

function [qt]=funq(t); qt=-1; endfunction function [rt]=funr(t); rt=t.^2-1; endfunction function probdiffin()

a=0; b=1; H=[0.1 0.01] N=[(b-a)/H(1) (b-a)/H(2)]

Page 18: Modulo 6 Metodos

xa=5; xb=10;

A1=zeros(N(1)-1, N(1)-1); X1=zeros(N(1)-1, 1); B1=zeros(N(1)-1, 1); A2=zeros(N(2)-1, N(2)-1); X2=zeros(N(2)-1, 1); B2=zeros(N(2)-1, 1);

for (k=2:N(1)-1) A1(k,k-1)=-H(1)*funp(a+H(1)*k)/2-1; end for (k=1:N(1)-1) A1(k,k)=2+H(1).^2*funq(a+H(1)*k);

end for (k=1:N(1)-2) A1(k,k+1)=H(1)*funp(a+H(1)*k)/2-1; end for (k=1:N(1)-1) B1(k,1)=-H(1).^2*funr(a+H(1)*k) end

B1(1,1)=-H(1).^2*funr(a+H(1))+(H(1)*funp(a+H(1))/2+1)*xa; B1(N(1)-1,1)=-H(1).^2*funr(a+H(1)*(N(1)-1))+(-H(1)*funp(a+H(1))/2+1)*xb; X1=inv(A1)*B1; for (k=2:N(2)-1) A2(k,k-1)=-H(2)*funp(a+H(2)*k)/2-1;

end for (k=1:N(2)-1) A2(k,k)=2+H(2).^2*funq(a+H(2)*k); end for (k=1:N(2)-2) A2(k,k+1)=H(2)*funp(a+H(2)*k)/2-1;

end for (k=1:N(2)-1) B2(k,1)=-H(2).^2*funr(a+H(2)*k) end B2(1,1)=-H(2).^2*funr(a+H(2))+(H(2)*funp(a+H(2))/2+1)*xa; B2(N(2)-1,1)=-H(2).^2*funr(a+H(2)*(N(2)-1))+(-H(2)*funp(a+H(2))/2+1)*xb;

X2=inv(A2)*B2; for (k=1:N(1)-1) x1(k)=a+H(1)*k; y1(k)=X1(k,1); end for (k=1:N(2)-1)

x2(k)=a+H(2)*k;

Page 19: Modulo 6 Metodos

y2(k)=X2(k,1); end

x=[0:0.01:1]'; plot(x2, y2, 'ro'); plot(x1, y1, 'ko'); plot(x, x.^2+4*x+5); endfunction

Page 20: Modulo 6 Metodos

4. ANALISIS DE RESULTADOS

Punto 1:

Para desarrollar el siguiente programa se realiza el siguiente procedimiento, donde

nombraremos como

𝑑𝑦

𝑑𝑡= 𝑧

Y

𝑑𝑧

𝑑𝑡= −200𝑦 − 20𝑧

Manteniendo los valores de

𝑦(0) = 1

𝑧(0) = 0

Para poder desarrollarlas el procedimiento realizado es encontrar la información del modulo

y del grupo que le corresponde, luego se definen funciones de Y y de Z que corresponden

a ecuaciones diferenciales.

La función se desarrolla en Scilab que permite ejecutar el método de Runge Kutta de orden

4 con los parámetros dispuestos de (t,y,z,h) generando una matriz para cada respectiva

iteración .

Cuando se calculan los Y y Z consecutivos es donde la función encuentra la mayor parte

del trabajo.

Finalmente, se mostrados en la pantalla los Y1=y(0.01), y(0.05) y las matrices de las

funciones F y G. Con estos valores se puede obtener lo siguiente:

𝑦(0.05) = 0.8230661 𝑦(0.01) = 1

𝑓1 = −1.8066667

𝑓2 = −2.6166500

𝑓3 = −2.5266183

𝑓4 = −3.2564765

𝑔1 = −161.99667

𝑔2 = −143.99033

𝑔3 = −144.98098

Page 21: Modulo 6 Metodos

𝑔4 = −127.94723

Punto 2:

Igual que el punto anterior se encuentra la información del módulo y del grupo

correspondiente, luego son definidas las funciones p, q y r y además, dentro de funciones,

las derivadas de u, y y de v, z, que corresponden a las ecuaciones de los sistemas de

ecuaciones diferenciales.

Luego, las funciones de Scilab realizan la iteración por el método de Runge-Kutta y son

idénticas a la función del primer punto; con parámetros de entrada (t, y, z, h) y devuelve

una matriz con los respectivos valores de la iteración.

En la función resorte, son definidos los parámetros iniciales del problema, creando matrices

para almacenar la información y posteriormente se ingresan los parámetros iniciales en las

matrices e inicia un ciclo que llena las matrices .Finalmente, se hallan los x(t) por medio de

la fórmula, previamente se han hallado las constantes c1 y c2, y se grafican los datos. Se

imprimen el x(0) y el x(1) para cada h como modo de verificación.

En la gráfica presentada corresponde a la solución analítica, los círculos negros a los x(t)

hallados con h=0.1 y los rojos con h=0.01.

Punto 3:

En el punto 3 se utiliza un método diferente al del punto 2 para hallar los x(t).Lo que realiza

este método es que no requiere transformar la ecuación diferencial en uno o varios sistemas

de ecuaciones, sino que resuelve el problema encontrando unos coeficientes que incluye

en una matriz.

Se definen las funciones p, q y r y luego la función en dinde se intoducen los parámetros

iniciales (datos del contorno y los valores de h). Posteriormente se calcula un n para cada

h con el fin de obtener las dimensiones de las matrices del sistema a resolver.

Se generan las matrices y se procede a llenar las matrices tridiagonales diagonal por

diagonal y luego las matrices de resultado, luego se resuelve cada sistema para encontrar

los x(t) correspondientes, que luego son introducidos en vectores, junto con sus abscisas

para poder graficarlos.

Se grafica la función analítica junto con los x(t) para cada h. En este caso, la consola no

muestra ningún resultado, en donde la línea corresponde a la solución analítica, los círculos

negros a los x(t) hallados con h=0.1 y los rojos con h=0.01.

Page 22: Modulo 6 Metodos

5. CONCLUSIONES

Los programas desarrollados no pide que las funciones que describen las

ecuaciones diferencias ni los parámetros iniciales o de contorno, ya que se

encuentran dentro de cada programa.

El uso de Scilab es de gran utilidad para resolver ecuaciones diferenciales de

segundo orden por medio de diversos métodos debido a que resulta de gran ayuda

y se hace con una buena precisión.

El Método de Disparo Lineal y el Método de las Diferencias Finitas se analiza que

son bastantes acertados al momento de resolver una ecuación diferencial de orden

superior.

Desarrollando el Método de Disparo Lineal se puede evidenciar que su desarrollo

resulta algo más complicado de programar, ejecutar y entender, debido a que

involucra iteraciones consecutivas del Método de Runge-Kutta de cuarto orden y

luego se deben resolver unas ecuaciones. Adicionalmente, consume más recursos

informáticos.

BIBLIOGRAFÍA

MATHEWS, Jhon, H. – FINK, Kurtis D., “Numerical Methods Using Matlab”, Prentice

Hall, 1999.

http://campus.usal.es/~mpg/Personales/PersonalMAGL/Docencia/MetNumTema4T

eo(09-10).pdf