taller computacion (1)

12
ECUACIONES DIFERENCIALES ORDINARIAS (EDO) COMPUTACION NUMERICA EN TEORIA ELECTROMAGNETICA DIRIGIDO POR: CODIGO GIOVANNY CASTILLO CASTILLO 2111144 JONATHAN ALEXANDER PEREZ MUNEVAR 2110931 DIRIGO A: NIDIA QUINTERO PEÑA UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERIAS FISICO-MECANICAS ESCUELA DE INGENIERIAS ELECTRICA, ELECTRONICA Y DE TELECOMUNICACIONES

Upload: kkkkkkkkkkkk

Post on 30-Nov-2015

30 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Taller Computacion (1)

ECUACIONES DIFERENCIALES ORDINARIAS (EDO)

COMPUTACION NUMERICA EN TEORIA ELECTROMAGNETICA

DIRIGIDO POR: CODIGO

GIOVANNY CASTILLO CASTILLO 2111144

JONATHAN ALEXANDER PEREZ MUNEVAR 2110931

DIRIGO A:

NIDIA QUINTERO PEÑA

UNIVERSIDAD INDUSTRIAL DE SANTANDER

FACULTAD DE INGENIERIAS FISICO-MECANICAS

ESCUELA DE INGENIERIAS ELECTRICA, ELECTRONICA Y DE TELECOMUNICACIONES

BUCARAMANGA, 27 DE SEPTIEMBRE DE 2013

Page 2: Taller Computacion (1)

EJERCICIOS

1. Resolver la EDO utilizando el método de diferencias finitas de orden O(h2) con h=1. Las condiciones frontera son: y(0)=5 y y(20)=8.

8 y ' '−2 y '− y+x=0

Page 3: Taller Computacion (1)

2. Un balance de calor en estado estable para una barra se puede representar como:

d2Td x2 −0,1T=0

Utilice FD con Δx=1m para obtener una solución en una barra de 10m, con condiciones T(0)=200°C y T(10)=100°C.

x y1 4.45822 4.25573 4.31754 4.58525 5.01306 5.56497 6.21248 6.93239 7.705410 8.514411 9.342312 10.170013 10.972614 11.715015 12.343116 12.771117 12.860218 12.383219 10.9676

Page 4: Taller Computacion (1)

3. Aplique el método RK de orden tres para resolver el siguiente problema desde t=0 hasta 2, con un tamaño paso de 0.5. La condición inicial es y(0)=1.

dydt

=− y+t

x=t

CODIGO:

x y1 188.35002 176.80003 165.45004 154.40005 143.75006 133.60007 124.05008 115.20009 107.1500

Page 5: Taller Computacion (1)

function ffprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO METODO DEL RUNJEKUTA TERCER ORDEN\n')f=input('\nIngrese la ecuacion diferencial de la forma: dy/dx=f(x,y)\n','s');x0=input('\nIngrese el valor inferior de la frontera x0:\n');x1=input('\nIngrese el valor superior de la frontera x1:\n');y0=input('\nIngrese la condicion inicial y(x0):\n');n=input('\nIngrese el numero de pasos n:\n');h=(x1-x0)/n;xs=x0:h:x1;y1=y0;fprintf('\n''it x0 x1 y1');for i=1:ny=y0;it=i-1;x0=xs(i);x=x0;x1=xs(i+1);k1=eval(f);x= x0 + h/2;y=y0 + k1*h/2;k2=eval(f);x= x0 + h;y= y0 - k1*h + 2*k2*h;k3=eval(f);y1=y0 + ((k1/6) + (2*k2/3) + (k3/6))*h;fprintf('\n%2.0f%10.6f%10.6f%10.6f\n',it,x0,x1,y1);y0=y1;endfprintf('\n El punto aproximado y(x1) es = %10.6f\n',y1);

RESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO METODO DEL RUNJEKUTA TERCER ORDEN

Ingrese la ecuacion diferencial de la forma: dy/dx=f(x,y)

-y + x

Ingrese el valor inferior de la frontera x0:

0

Ingrese el valor superior de la frontera x1:

2

Ingrese la condicion inicial y(x0):

1

Ingrese el numero de pasos n:

4

Page 6: Taller Computacion (1)

'it x0 x1 y1

0 0.000000 0.500000 0.708333

1 0.500000 1.000000 0.730035

2 1.000000 1.500000 0.941063

3 1.500000 2.000000 1.266475

El punto aproximado y(x1) es = 1.266475

4. Resuelva la EDO con el método RK de orden cuatro, en el intervalo t ɛ (0,1) con h=0.1. Las condiciones iniciales son: y(0)= - 0.4 y y’(0)= - 0.6.

y ' '−2 y '+2 y=e2t sen( t)

Partiendo de:

y '1= y2 y '2=2 y2−2 y+ex sen (x) y01=−0,4 y02=¿−0,6¿

CODIGO:

fprintf('\n \tRESOLUCION DE SISTEMA ECUACIONES DIFERENCIALES POR MEDIO METODO DEL RUNJEKUTA CUARTO ORDEN PARA DOS ECUACIONES\n')% y1'=df/dx, y2'=dg/dy, x=x, y=y1,z=y2 f= input('\nIngrese la ecuacion diferencial de la forma: df/dx=f(x,y,z)\n','s'); g= input('\nIngrese la ecuacion diferencial de la forma: dg/dx=f(x,y,z)\n','s'); linferior= input('\nIngrese el valor inferior de la frontera :\n'); lsuperior= input('\nIngrese el valor superior de la frontera :\n'); y10=input('\nIngrese la condicion inicial y10:\n'); y20=input('\nIngrese la condicion inicial y20:\n'); h=input('\nIngrese el valor del paso h:\n'); b=(lsuperior-linferior)/h; for i=1:bx=linferior;t=linferior + h;fprintf('para x= % g \n',t);y=y10;z=y20;k1=eval(f);x= x + h/2;y= y + k1*h/2;z= z + k1*h/2;k2=eval(f);x= linferior + h/2;y= y10 + k2*h/2;z= y20 + k2*h/2;k3=eval(f);x= linferior + h;y=y10 + k3*h;z=y20 + k3*h;k4=eval(f);f1= y10 + ((k1/6) + (k2/3) + (k3/3)+ (k4/6))*h; fprintf('el valor de y1 es : %f\n',f1); x=linferior;

Page 7: Taller Computacion (1)

y=y10;z=y20;k1=eval(g);x= x + h/2;y= y + k1*h/2;z= z + k1*h/2;k2=eval(g);x= linferior + h/2;y= y10 + k2*h/2;z= y20 + k2*h/2;k3=eval(g);x= linferior + h;y=y10 + k3*h;z=y20 + k3*h;k4=eval(g);f2= y20 + ((k1/6) + (k2/3) + (k3/3)+ (k4/6))*h;fprintf('el valor de y2 es : %f\n\n',f2) y10=f1;;y20=f2;linferior=linferior+h;i=i+1; end

RESOLUCION DE SISTEMA ECUACIONES DIFERENCIALES POR MEDIO METODO DEL RUNJEKUTA CUARTO ORDEN PARA DOS ECUACIONES

Ingrese la ecuacion diferencial de la forma: df/dx=f(x,y,z)

z

Ingrese la ecuacion diferencial de la forma: dg/dx=f(x,y,z)

2*z - 2*y + (exp(x))*sin(x)

Ingrese el valor inferior de la frontera :

0

Ingrese el valor superior de la frontera :

1

Ingrese la condicion inicial y10:

-0.4

Ingrese la condicion inicial y20:

-0.6

Ingrese el valor del paso h:

0.1

para x= 0.1

el valor de y1 es : -0.463103

Page 8: Taller Computacion (1)

el valor de y2 es : -0.634658

para x= 0.2

el valor de y1 es : -0.529850

el valor de y2 es : -0.651512

para x= 0.3

el valor de y1 es : -0.598370

el valor de y2 es : -0.643973

para x= 0.4

el valor de y1 es : -0.666097

el valor de y2 es : -0.604323

para x= 0.5

el valor de y1 es : -0.729654

el valor de y2 es : -0.523634

para x= 0.6

el valor de y1 es : -0.784725

el valor de y2 es : -0.391712

para x= 0.7

el valor de y1 es : -0.825922

el valor de y2 es : -0.197056

para x= 0.8

el valor de y1 es : -0.846647

el valor de y2 es : 0.073149

Page 9: Taller Computacion (1)

para x= 0.9

el valor de y1 es : -0.838954

el valor de y2 es : 0.433009

para x= 1

el valor de y1 es : -0.793414

el valor de y2 es : 0.897853

5. Utilice un método de RK de segundo orden para resolver el siguiente sistema de EDO, sobre el rango x ɛ (0,2) utilizando un tamaño de paso de 0.25. Las condiciones iniciales del sistema son: y(0)=2 y z(0)=4.

dydx

=−2 y+5e−x

dzdx

=− y z2

2

CODIGO:

fprintf('\n \tRESOLUCION DE SISTEMA ECUACIONES DIFERENCIALES POR MEDIO METODO DEL RUNJEKUTA SEGUNDO ORDEN PARA DOS ECUACIONES\n')% y1'=df/dx, y2'=dg/dy, x=x, y=y1,z=y2 f= input('\nIngrese la ecuacion diferencial de la forma: df/dx=f(x,y,z)\n','s'); g= input('\nIngrese la ecuacion diferencial de la forma: dg/dx=f(x,y,z)\n','s'); linferior= input('\nIngrese el valor inferior de la frontera :\n'); lsuperior= input('\nIngrese el valor superior de la frontera :\n'); y10=input('\nIngrese la condicion inicial y10:\n'); y20=input('\nIngrese la condicion inicial y20:\n'); h=input('\nIngrese el valor del paso h:\n'); b=(lsuperior-linferior)/h; x=0;for i=1:bx=linferior;t=linferior + h;fprintf('para x= % g \n',t);y=y10;z=y20; k1=eval(f);x= x + 3*h/4;y= y + k1*3*h/4;z= z + k1*3*h/4;k2=eval(f);

Page 10: Taller Computacion (1)

f1= y10 + ((k1/3) + (2*k2/3))*h; fprintf('el valor de y1 es : %f\n',f1); x=linferior;y=y10;z=y20;k1=eval(g);x= x + 3*h/4;y= y + k1*3*h/4;z= z + k1*3*h/4;k2=eval(g);f2= y20 + ((k1/3) + (2*k2/3))*h;fprintf('el valor de y2 es : %f\n\n',f2) y10=f1;;y20=f2;linferior=linferior+h;i=i+1; end

RESOLUCION DE SISTEMA ECUACIONES DIFERENCIALES POR MEDIO METODO DEL RUNJEKUTA SEGUNDO ORDEN PARA DOS ECUACIONES

Ingrese la ecuacion diferencial de la forma: df/dx=f(x,y,z)

-2*y + 5*exp(-2*x)

Ingrese la ecuacion diferencial de la forma: dg/dx=f(x,y,z)

(-y*(z^2))/2

Ingrese el valor inferior de la frontera :

0

Ingrese el valor superior de la frontera :

2

Ingrese la condicion inicial y10:

2

Ingrese la condicion inicial y20:

4

Ingrese el valor del paso h:

0.25

para x= 0.25

Page 11: Taller Computacion (1)

el valor de y1 es : 1.926908

el valor de y2 es : 2.750000

para x= 0.5

el valor de y1 es : 1.614883

el valor de y2 es : 2.053333

para x= 0.75

el valor de y1 es : 1.258322

el valor de y2 es : 1.606691

para x= 1

el valor de y1 es : 0.937490

el valor de y2 es : 1.336572

para x= 1.25

el valor de y1 es : 0.677541

el valor de y2 es : 1.176296

para x= 1.5

el valor de y1 es : 0.479027

el valor de y2 es : 1.079024

para x= 1.75

el valor de y1 es : 0.333093

el valor de y2 es : 1.018296

para x= 2

el valor de y1 es : 0.228624

Page 12: Taller Computacion (1)

el valor de y2 es : 0.979547