Trabajo de computacion runge kutta francis francisco rafael luis

25
Universidad Centroccidental Lisandro Alvarado Decanato de Agronomía Programa de Ingeniería Agroindustrial Computación aplicada BACHILLERES: Mendoza Francis C.I 18.546.207 Álvarez Francisco C.I. 18.690.005 Alvarado Rafael C.I. 17.354.316 Flores Luis C.I. 18.923.287

Transcript of Trabajo de computacion runge kutta francis francisco rafael luis

Page 1: Trabajo de computacion runge kutta francis francisco rafael luis

Universidad Centroccidental

Lisandro Alvarado

Decanato de Agronomía

Programa de Ingeniería Agroindustrial

Computación aplicada

BACHILLERES:

Mendoza Francis C.I 18.546.207

Álvarez Francisco C.I. 18.690.005

Alvarado Rafael C.I. 17.354.316

Flores Luis C.I. 18.923.287

Page 2: Trabajo de computacion runge kutta francis francisco rafael luis

INTRODUCION

Es importante conocer que el método de runge kutta es un método genérico de resolución

numérica de ecuaciones diferenciales, Este conjunto de métodos fue inicialmente desarrollado

alrededor del año 1900 por los matemáticos C. Runge y M. W. Kutta. Este método surgió como

mejora del método de euler. El método de euler se puede considerar un método de runge

kutta de primer orden.

Page 3: Trabajo de computacion runge kutta francis francisco rafael luis

Método de Runge Kutta

Runge Kutta es un método numérico de resolución de ecuaciones diferenciales que

surge como una mejora del método de Euler. El método de Euler se puede considerar como

un método de Runge Kutta de primer orden, el de Heun, es un método de Runge Kutta de

orden dos.

La ventaja de los métodos de Runge-Kutta con respecto al uso de la serie de Taylor,

que es también un método de un paso, es decir, los métodos de Runge-Kutta requieren sólo

de la función f(x, y) y de ninguna derivada, mientras que la serie de Taylor sí requiere de la

evaluación de derivadas. Esto hace que, en la práctica, la aplicación de los métodos de

Runge-Kutta sean más simples que el uso de la serie de Taylor.

El método de Runge-Kutta se utiliza para resolver ecuaciones diferenciales de la

forma

Y es sumamente útil para casos en los que la solución no puede hallarse por los

métodos convencionales (como separación de variables).

El Propósito de los Métodos Numéricos para Ec. Diferenciales es obtener una

solución aproximada a la solución real del Problema de Valor Inicial planteado, como se

puede observar en la siguiente gráfica:

Page 4: Trabajo de computacion runge kutta francis francisco rafael luis

Ecuaciones:

Para resolver un sistema de ecuaciones diferenciales el esquema del método de

Runge Kutta de 2do orden es:

Por otra parte, para la resolución de ec. Diferenciales ordinarias a través del método

de Runge Kutta de 3er orden, las ecuaciones a emplear son:

Page 5: Trabajo de computacion runge kutta francis francisco rafael luis

Aplicaciones:

El método de Runge Kutta se emplea para resolver ecuaciones diferenciales

ordinarias. Dichas ecuaciones son las que modelan la mayoría de situaciones que se pueden

presentar en un estudio, entre ellos tenemos los siguientes casos:

1. Crecimiento poblacional.

2. Estudio de fluidos.

3. Fuerzas elásticas.

4. Sistemas de masa variable.

5. Preparación de soluciones.

6. Cambios de temperatura.

En la Agroindustria:

Éstos son sólo ejemplos de la aplicación, no obstante en la industria y más

específicamente la agroindustria dichos casos son cotidianos, pues en el caso de

microbiología pudiese modelarse el crecimiento o decrecimiento de una población

bacteriana, los cambios de temperatura de una solución así como la cantidad de reactivo

necesario para la concentración de una solución, el estudio de las leyes de Newton, fluidos

Newtonianos y no-Newtonianos, estudios de velocidad de una máquina en un proceso,

entre otros.

hxx ii 1

Page 6: Trabajo de computacion runge kutta francis francisco rafael luis

De manera que los métodos de Runge-Kutta tanto de segundo como de tercer

orden tienen extenso uso en la agroindustria.

Algoritmos

Empleando como ejemplo el siguiente sistema de ecuaciones:

x(0)=2

y(0)=1

0≤t≤3

h=0,2

Para Runge Kutta de 2do orden, un ejemplo del algoritmo es:

%Metodo Runge-Kutta de 2doOrden

x=2;

y=1;

t=0;

tmax=3;

h=0.2;

iter=round((tmax-t)/h);

vectorx=x;

vectory=y;

vectort=t;

for i=1:iter

%calculo de las constantes de Runge-Kutta

K1x=(t^2+x)*h;

K1y=(-t^3)*h

F1=((t+h/2)^2+(x+K1x/2))*h;

F2=(-(t+h/2)^3)*h;

x=x+F1;

y=y+F2;

t=t+h;

vectorx=[vectorx x];

vectory=[vectory y];

vectort=[vectort t];

end

Page 7: Trabajo de computacion runge kutta francis francisco rafael luis

vectorx

vectory

vectort

subplot (1,2,1);

plot(vectort,vectorx,'y-o');

title('Metodo Runge-Kutta 2doOrden. t vs x');

xlabel('valores t');

ylabel('valores x');

subplot (1,2,2);

plot(vectort,vectory,'b-p');

title('Metodo Runge-Kutta 2doOrden. y vs t');

xlabel('valores t');

ylabel('valores y');

Para Runge Kutta de 3er orden, un ejemplo de algoritmo sería el siguiente:

Metodo Runge-Kutta de 3erOrden

x=2;

y=1;

t=0;

tmax=3;

h=0.2;

iter=round((tmax-t)/h);

vectorx=x;

vectory=y;

vectort=t;

for i=1:iteraciones

%calculo de las constantes de Runge-Kutta

K1x=(t^2+x)*h;

K1y=(-t^3)*h;

K2x=((t+h/2)^2+(x+K1x/2))*h;

K2y=(-(t+h/2)^3)*h;

K3x=((t+h)^2+(x+2*K2x-K1x))*h;

K3y=(-(t+h)^3)*h;

x=x+(K1x+4*K2x+K3x)/6;

y=y+(K1y+4*K2y+K3y)/6;

t=t+h;

vectorx=[vectorx x];

vectory=[vectory y];

vectort=[vectort t];

end

vectorx

vectory

vectort

subplot (1,2,1);

Page 8: Trabajo de computacion runge kutta francis francisco rafael luis

plot(vectort,vectorx,'y-o');

title('Metodo Runge-Kutta 3erOrden. x vs t');

xlabel('valores t');

ylabel('valores x');

subplot (1,2,2);

plot(vectort,vectory,'b-p');

title('Metodo Runge-Kutta 3erOrden. y vs t');

xlabel('valores t');

ylabel('valores y');

Ejercicios

Runge Kutta de 2do orden:

1. En un medio de cultivo a base de lactosa se comprobó que el crecimiento bacteriano

se modela en base al siguiente sistema de ecuaciones diferenciales:

y(0)=2

Page 9: Trabajo de computacion runge kutta francis francisco rafael luis

z(0)=4

0≤x≤2

h= 0,01

Realice el estudio del crecimiento bacteriano en el cultivo empleando un h de 0,01.

Solución:

En las ecuaciones se observa que la variable x es independiente y que las variables y

y z son dependientes, por tanto, a la variable x se le aplicará la siguiente ecuación:

x1 = xo + h = 0 + 0,01 = 0,01

Para poder conocer el valor de y,z es necesario hallar las respectivas k1 para

cada variable:

k1y= h*F (x(o), y(o) , z(o))

k1z= h*G (x(o), y(o) , z(o))

-0,32

Entonces:

Page 10: Trabajo de computacion runge kutta francis francisco rafael luis

Empleando el mismo procedimiento se hallan la otra variable independiente:

Entonces, la tabla de resultados para éste caso es:

Iter. X Y z

0 0 2 4

1 0,01 2.049548124 3.8507008

El algoritmo para éste caso es:

%Metodo Runge-Kutta de 2doOrden

x=0;

y=2;

z=4;

xmax=2;

h=0.01;

iter=round((xmax-x)/h);

vectorx=x;

vectory=y;

vectorz=z;

for i=1:iter

%calculo de las constantes de Runge-Kutta

K1y=(-2*y+5*exp(-x))*h;

K1z=((-y*z^2)/2)*h;

F1=(-2*(y+K1y/2)+5*exp(-(x+h/2)))*h;

F2=((-(y+K1y/2)*(z+K1z/2)^2)/2)*h;

x=x+h;

y=y+F1;

z=z+F2;

vectorx=[vectorx x];

vectory=[vectory y];

vectorz=[vectorz z];

end

vectorx

vectory

vectorz

Page 11: Trabajo de computacion runge kutta francis francisco rafael luis

figure

subplot (1,2,1);

plot(vectorx,vectory,'y-o');

title('Metodo Runge-Kutta 2doOrden. x vs y');

xlabel('valores x');

ylabel('valores y');

subplot (1,2,2);

plot(vectorx,vectory,'b-p');

title('Metodo Runge-Kutta 2doOrden. x vs z');

xlabel('valores x');

ylabel('valores z');

figure

plot(vectorx,vectory,'y-o');

hold on

plot(vectorx,vectorz,'b-p');

xlabel('valores x');

ylabel('valores y,z');

title('Metodo Runge-Kutta 2doOrden.soluciones del sistema de

ecuaciones');

Y las soluciones del programa son:

vectorx =

Columns 1 through 7

0 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600

Columns 8 through 14

0.0700 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300

Columns 15 through 21

0.1400 0.1500 0.1600 0.1700 0.1800 0.1900 0.2000

Columns 22 through 28

0.2100 0.2200 0.2300 0.2400 0.2500 0.2600 0.2700

Columns 29 through 35

0.2800 0.2900 0.3000 0.3100 0.3200 0.3300 0.3400

Columns 36 through 42

0.3500 0.3600 0.3700 0.3800 0.3900 0.4000 0.4100

Columns 43 through 49

0.4200 0.4300 0.4400 0.4500 0.4600 0.4700 0.4800

Columns 50 through 56

0.4900 0.5000 0.5100 0.5200 0.5300 0.5400 0.5500

Columns 57 through 63

0.5600 0.5700 0.5800 0.5900 0.6000 0.6100 0.6200

Columns 64 through 70

Page 12: Trabajo de computacion runge kutta francis francisco rafael luis

0.6300 0.6400 0.6500 0.6600 0.6700 0.6800 0.6900

Columns 71 through 77

0.7000 0.7100 0.7200 0.7300 0.7400 0.7500 0.7600

Columns 78 through 84

0.7700 0.7800 0.7900 0.8000 0.8100 0.8200 0.8300

Columns 85 through 91

0.8400 0.8500 0.8600 0.8700 0.8800 0.8900 0.9000

Columns 92 through 98

0.9100 0.9200 0.9300 0.9400 0.9500 0.9600 0.9700

Columns 99 through 105

0.9800 0.9900 1.0000 1.0100 1.0200 1.0300 1.0400

Columns 106 through 112

1.0500 1.0600 1.0700 1.0800 1.0900 1.1000 1.1100

Columns 113 through 119

1.1200 1.1300 1.1400 1.1500 1.1600 1.1700 1.1800

Columns 120 through 126

1.1900 1.2000 1.2100 1.2200 1.2300 1.2400 1.2500

Columns 127 through 133

1.2600 1.2700 1.2800 1.2900 1.3000 1.3100 1.3200

Columns 134 through 140

1.3300 1.3400 1.3500 1.3600 1.3700 1.3800 1.3900

Columns 141 through 147

1.4000 1.4100 1.4200 1.4300 1.4400 1.4500 1.4600

Columns 148 through 154

1.4700 1.4800 1.4900 1.5000 1.5100 1.5200 1.5300

Columns 155 through 161

1.5400 1.5500 1.5600 1.5700 1.5800 1.5900 1.6000

Columns 162 through 168

1.6100 1.6200 1.6300 1.6400 1.6500 1.6600 1.6700

Columns 169 through 175

1.6800 1.6900 1.7000 1.7100 1.7200 1.7300 1.7400

Columns 176 through 182

1.7500 1.7600 1.7700 1.7800 1.7900 1.8000 1.8100

Columns 183 through 189

Page 13: Trabajo de computacion runge kutta francis francisco rafael luis

1.8200 1.8300 1.8400 1.8500 1.8600 1.8700 1.8800

Columns 190 through 196

1.8900 1.9000 1.9100 1.9200 1.9300 1.9400 1.9500

Columns 197 through 201

1.9600 1.9700 1.9800 1.9900 2.0000

vectory =

Columns 1 through 7

2.0000 2.0097 2.0186 2.0269 2.0346 2.0416 2.0480

Columns 8 through 14

2.0539 2.0591 2.0638 2.0680 2.0716 2.0747 2.0773

Columns 15 through 21

2.0794 2.0811 2.0822 2.0830 2.0833 2.0832 2.0827

Columns 22 through 28

2.0817 2.0805 2.0788 2.0768 2.0744 2.0717 2.0686

Columns 29 through 35

2.0653 2.0616 2.0576 2.0534 2.0488 2.0440 2.0390

Columns 36 through 42

2.0336 2.0281 2.0223 2.0163 2.0100 2.0036 1.9969

Columns 43 through 49

1.9901 1.9830 1.9758 1.9684 1.9608 1.9531 1.9452

Columns 50 through 56

1.9372 1.9290 1.9207 1.9122 1.9036 1.8949 1.8861

Columns 57 through 63

1.8772 1.8681 1.8590 1.8498 1.8404 1.8310 1.8215

Columns 64 through 70

1.8120 1.8023 1.7926 1.7828 1.7730 1.7631 1.7531

Columns 71 through 77

1.7431 1.7330 1.7229 1.7128 1.7026 1.6924 1.6822

Columns 78 through 84

1.6719 1.6616 1.6513 1.6409 1.6306 1.6202 1.6098

Columns 85 through 91

1.5994 1.5890 1.5786 1.5682 1.5578 1.5473 1.5369

Columns 92 through 98

1.5265 1.5161 1.5057 1.4953 1.4850 1.4746 1.4643

Page 14: Trabajo de computacion runge kutta francis francisco rafael luis

Columns 99 through 105

1.4540 1.4437 1.4334 1.4231 1.4129 1.4027 1.3925

Columns 106 through 112

1.3823 1.3722 1.3621 1.3520 1.3419 1.3319 1.3220

Columns 113 through 119

1.3120 1.3021 1.2922 1.2824 1.2726 1.2628 1.2531

Columns 120 through 126

1.2434 1.2338 1.2242 1.2147 1.2051 1.1957 1.1863

Columns 127 through 133

1.1769 1.1675 1.1583 1.1490 1.1398 1.1307 1.1216

Columns 134 through 140

1.1125 1.1035 1.0946 1.0857 1.0768 1.0680 1.0593

Columns 141 through 147

1.0505 1.0419 1.0333 1.0247 1.0162 1.0078 0.9994

Columns 148 through 154

0.9910 0.9827 0.9745 0.9663 0.9581 0.9501 0.9420

Columns 155 through 161

0.9340 0.9261 0.9182 0.9104 0.9026 0.8949 0.8872

Columns 162 through 168

0.8796 0.8720 0.8645 0.8570 0.8496 0.8422 0.8349

Columns 169 through 175

0.8277 0.8205 0.8133 0.8062 0.7991 0.7921 0.7852

Columns 176 through 182

0.7783 0.7714 0.7646 0.7579 0.7512 0.7445 0.7379

Columns 183 through 189

0.7314 0.7249 0.7184 0.7120 0.7057 0.6994 0.6931

Columns 190 through 196

0.6869 0.6807 0.6746 0.6686 0.6625 0.6566 0.6506

Columns 197 through 201

0.6448 0.6389 0.6332 0.6274 0.6217

Page 15: Trabajo de computacion runge kutta francis francisco rafael luis

vectorz =

Columns 1 through 7

4.0000 3.8460 3.7027 3.5691 3.4444 3.3277 3.2183

Columns 8 through 14

3.1155 3.0189 2.9279 2.8420 2.7608 2.6840 2.6113

Columns 15 through 21

2.5424 2.4769 2.4147 2.3555 2.2991 2.2453 2.1941

Columns 22 through 28

2.1451 2.0983 2.0535 2.0106 1.9695 1.9301 1.8923

Columns 29 through 35

1.8560 1.8212 1.7876 1.7554 1.7244 1.6945 1.6657

Columns 36 through 42

1.6379 1.6111 1.5853 1.5603 1.5362 1.5129 1.4903

Columns 43 through 49

1.4685 1.4474 1.4270 1.4072 1.3880 1.3694 1.3513

Columns 50 through 56

1.3339 1.3169 1.3004 1.2844 1.2689 1.2537 1.2391

Columns 57 through 63

1.2248 1.2109 1.1974 1.1842 1.1715 1.1590 1.1469

Columns 64 through 70

1.1350 1.1235 1.1123 1.1013 1.0907 1.0802 1.0701

Columns 71 through 77

1.0602 1.0505 1.0410 1.0318 1.0228 1.0140 1.0054

Columns 78 through 84

0.9970 0.9888 0.9808 0.9729 0.9652 0.9577 0.9504

Columns 85 through 91

0.9432 0.9361 0.9292 0.9225 0.9159 0.9094 0.9031

Columns 92 through 98

0.8969 0.8908 0.8849 0.8790 0.8733 0.8677 0.8622

Columns 99 through 105

0.8568 0.8515 0.8463 0.8413 0.8363 0.8314 0.8266

Columns 106 through 112

0.8219 0.8172 0.8127 0.8082 0.8039 0.7996 0.7954

Columns 113 through 119

Page 16: Trabajo de computacion runge kutta francis francisco rafael luis

0.7912 0.7871 0.7831 0.7792 0.7754 0.7716 0.7678

Columns 120 through 126

0.7642 0.7606 0.7570 0.7536 0.7501 0.7468 0.7435

Columns 127 through 133

0.7402 0.7370 0.7339 0.7308 0.7277 0.7248 0.7218

Columns 134 through 140

0.7189 0.7161 0.7132 0.7105 0.7078 0.7051 0.7025

Columns 141 through 147

0.6999 0.6973 0.6948 0.6923 0.6899 0.6875 0.6851

Columns 148 through 154

0.6828 0.6805 0.6782 0.6760 0.6738 0.6717 0.6695

Columns 155 through 161

0.6674 0.6654 0.6633 0.6613 0.6594 0.6574 0.6555

Columns 162 through 168

0.6536 0.6517 0.6499 0.6481 0.6463 0.6445 0.6428

Columns 169 through 175

0.6411 0.6394 0.6377 0.6361 0.6345 0.6329 0.6313

Columns 176 through 182

0.6297 0.6282 0.6267 0.6252 0.6237 0.6223 0.6209

Columns 183 through 189

0.6194 0.6181 0.6167 0.6153 0.6140 0.6127 0.6114

Columns 190 through 196

0.6101 0.6088 0.6075 0.6063 0.6051 0.6039 0.6027

Columns 197 through 201

0.6015 0.6004 0.5992 0.5981 0.5970

Gráficamente las soluciones son:

Page 17: Trabajo de computacion runge kutta francis francisco rafael luis
Page 18: Trabajo de computacion runge kutta francis francisco rafael luis
Page 19: Trabajo de computacion runge kutta francis francisco rafael luis

Runge Kutta de 3er orden:

2. El caudal de una tubería de descarga de aguas residuales sufre modificaciones en el

tiempo, lo cual está basado en las siguientes ecuaciones:

w(0)=0

V(0)=2

0≤t≤3

h=0,3

Realice un estudio en el cual se observe gráficamente cómo es la modificación he

dicho caudal si se emplea un intervalo de 0,3 horas.

Solución:

Para este caso, la variable independiente es t, por tanto:

t1 = to + h = 0 + 0,3 = 0,3

Para hallar el valor de V y W es necesario buscar los K1, K2 y K3 de cada

variable con las siguientes ecuaciones:

k1w=hF*(ti,Vi,Wi)

k1w= 0,2*

k1w = -0,6

k1V=hG*(ti,Vi,Wi)

k1V= 0,2*

k1V = 0

k2W=hF

Page 20: Trabajo de computacion runge kutta francis francisco rafael luis

k2w = 0,3*(

k2w =-0,927

k2V= hG

k2V = 0,3*

k2V = 0,03375

k3w=h*F(t0+h, w0 + 2k2w-k1w, V0 +2k2V –k1V)

(0+0.3, 0+2*(-0,927)- (-0,6), 2+2*0,03375-0)

(0.3, -1.254, 2.0675)

k3w= 0,3 * (

k3w= -1,463916

k3V=h*G(t0+h, w0 + 2k2w-k1w, V0 +2k2V –k1V)

(0+0.3, 0+2*(-0,927)- (-0,6), 2+2*0,03375-0)

(0.3, -1.254, 2.0675)

k3V= 0,3 * (

k3V= -2,624294

Una vez halladas las respectivas k1, k2 y k3 por variable, se procederá a calcular

las variables independientes:

w1 = w0 + (k1w+4*k2w+k3w)/6

w1 = 0 + (-0,6+ 4*(-0,927)+ (-1,463916)/6

w1=-0,961986

Page 21: Trabajo de computacion runge kutta francis francisco rafael luis

V1 = V0 + (k1V+4*k2V+k3V)/6

V1 = 2+ (0+ 4*0,03375+ (-2,624294))/6

V1=1,585118

Construyendo una tabla de resultados:

Iter. T W V

0 0 0 2

1 0,3 -0,961986 1,585118

El algoritmo en Matlab es:

%Metodo Runge-Kutta de 3erOrden

t=0;

w=0;

v=2;

tmax=3;

h=0.3;

iteraciones=round((tmax-t)/h);

vectorw=w;

vectorv=v;

vectort=t;

for i=1:iteraciones

%calculo de las constantes de Runge-Kutta

K1w=(w^2+2/v-v^2)*h;

K1v=(-w^3+t^2)*h;

K2w=((w+K1w/2)^2+(2/(v+K1v/2))-(v+K1v/2)^2)*h;

K2v=(-(w+K1w/2)^3+(t+h/2)^2)*h;

K3w=((w+2*K2w-K1w)^2+(2/(v+2*K2v-K1v))-(v+2*K2v-K1v)^2)*h;

K3v=(-(w+2*K2w-K1w)^3+(t+h)^2)*h;

w=w+(K1w+4*K2w+K3w)/6;

v=v+(K1v+4*K2v+K3v)/6;

t=t+h;

vectorw=[vectorw w];

vectorv=[vectorv v];

vectort=[vectort t];

end

vectorw

vectorv

vectort

subplot (1,2,1);

plot(vectort,vectorw,'y-o');

title('Metodo Runge-Kutta 3erOrden. t vs w');

xlabel('valores t');

Page 22: Trabajo de computacion runge kutta francis francisco rafael luis

ylabel('valores w');

subplot (1,2,2);

plot(vectort,vectorv,'b-p');

title('Metodo Runge-Kutta 3erOrden. t vs v');

xlabel('valores t');

ylabel('valores v');

Las soluciones Gráficas son:

Page 23: Trabajo de computacion runge kutta francis francisco rafael luis
Page 24: Trabajo de computacion runge kutta francis francisco rafael luis

CONCLUCION

La ventaja de los métodos de Runge-Kutta con respecto al uso de la serie de Taylor, que es

también un método de un paso, es que el métodos de Runge-Kutta requieren sólo de la

función f(X, Y) y de ninguna derivada, mientras que la serie de Taylor sí requiere de la

evaluación de derivadas. Esto hace que, en la práctica, la aplicación de los métodos de

Runge-Kutta sea más simple que el uso de la serie de Taylor.

Este método es útil para casos en los que la solución no puede hallarse por los métodos

convencionales (como separación de variables).

El algoritmo de Runge-Kutta es bastante simple, pero para describir con precisión.

Método de Runge-Kutta es un método más general e improvisada en

comparación con la del método de Euler.

Page 25: Trabajo de computacion runge kutta francis francisco rafael luis

BIBLOGRAFIA

http://es.wikipedia.org/wiki/M%C3%A9todo_de_Runge-Kutta

http://www.scribd.com/doc/23245062/Metodo-de-Runge-Kutta

www.itescam.edu.mx/principal/sylabus/fpdb/.../r45643.DOC

John C. Butcher (2003). Métodos numéricos para ecuaciones diferenciales

ordinarias.

http://mathworld.wolfram.com/Runge-KuttaMethod.html