taller computacion (1)

Post on 30-Nov-2015

30 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

'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;

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

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

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);

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

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

el valor de y2 es : 0.979547

top related