You are on page 1of 4

TRABAJO PRESENTADO POR MERY ESMERALDA TAIPE BENITO

ALGORITMO DEL METODO RE RUNGE KUTTA


function f
fprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO RUNGE-
KUTTA DE ORDEN 4\n')
f=input('\n Ingrese la ecuacion diferencial dy/dx=\n','s');
x0=input('\n Ingrese el primer punto x0:\n');
x1=input('\n Ingrese el segundo punto x1:\n');
y0=input('\n Ingrese la condicion inicial y(x0):\n');
n=input('\n Ingrese el numero de pasos n:\n');
h=(x1-x0)/n;
xs=x0:h:x1;
fprintf('\n''it x0 y(x1)');
for i=1:n
it=i-1;
x0=xs(i);
x=x0;
y=y0;
k1=h*eval(f);
x=xs(i+1);
y=y0+k1;
k2=h*eval(f);
y0=y0+(k1+k2)/2;
fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0);
end
fprintf('\n El punto aproximado y(x1) es = %8.6f\n',y0);
EJERCICIO N01
f=RESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO RUNGE-KUTTA DE ORDEN 4

Ingrese la ecuacion diferencial dy/dx=

4*exp(0.8*x)-0.5*y

Ingrese el primer punto x0:0

Ingrese el segundo punto x1:4

Ingrese la condicion inicial y(x0):2

Ingrese el numero de pasos n:4

'it x0 y(x1)

0 0.000000 6.701082

1 1.000000 16.319782

2 2.000000 37.199249

3 3.000000 83.337767

El punto aproximado y(x1) es = 83.337767


function f
fprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO RUNGE-
KUTTA DE ORDEN 4\n')
f=input('\n Ingrese la ecuacion diferencial\n','s');
x0=input('\n Ingrese el primer punto x0:\n');
x1=input('\n Ingrese el segundo punto x1:\n');
y0=input('\n Ingrese la condicion inicial y(x0):\n');
n=input('\n Ingrese el numero de pasos n:\n');
h=(x1-x0)/n;
xs=x0:h:x1;
fprintf('\n''it x0 y(x1)');
for i=1:n
it=i-1;
x0=xs(i);
x=x0;
y=y0;
k1=h*eval(f);
x=x0+h/2;
y=y0+k1/2;
k2=h*eval(f);
x=x0+h/2;
y=y0+k2/2;
k3=h*eval(f);
x=x0+h;
y=y0+k3;
k4=h*eval(f);
y0=y0+(k1+2*k2+2*k3+k4)/6;
fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0);
end
fprintf('\n El punto aproximado y(x1) es = %8.6f\n',y0);

EJERCICIO N02

F=RESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO RUNGE-KUTTA DE ORDEN 4

Ingrese la ecuacion diferencial

-2*x^3+12*x^2-20*x+8.5

Ingrese el primer punto x0:0

Ingrese el segundo punto x1:0.5

Ingrese la condicion inicial y(x0):1

Ingrese el numero de pasos n:5

'it x0 y(x1)

0 0.000000 1.753950

1 0.100000 2.331200

2 0.200000 2.753950

3 0.300000 3.043200
4 0.400000 3.218750

El punto aproximado y(x1) es = 3.218750

ALGORITMO DE LA SERIE DE TAYLOR


clear all
clc
syms x
fun=input('f(x): ');
f = inline(fun);
x1 = input('X(i): ');
x2 = input('X(i+1): ');
n = input('Nmero de Orden: ');
h = abs(x2 - x1);
v1 = f(x1);
v2 = f(x2);
et = abs((v2 - v1)/v2 * 100);
X(1,:) = [0 v1 0 et];
for i=1:n
X(i+1,1) = i;
D = diff(fun,i);
d1=inline(D);
d=d1(x1);
v1= v1+(d*((h^i)/factorial(i)));
X(i+1,2) = v1;

et=abs(((v2-v1)/v2)*100);
X(i+1,4) = et;

ea = abs((X(i+1,2)-X(i,2))/X(i,2)*100);
X(i+1,3) = ea;

if ea <=10^(-1)
break
end
end
X
EJERCICIO N01

f(x): -2*x^3+12*x^2-20*x+8.5

X(i): 5

X(i+1): 6

Nmero de Orden: 10

X =0 -41.5000 0 62.7803

1.0000 -91.5000 120.4819 17.9372

2.0000 -109.5000 19.6721 1.7937

3.0000 -111.5000 1.8265 0


4.0000 -111.5000 0 0

EJERCICIO N02

f(x): exp(x+5)*sqrt(25)^3

7 X = privBinaryOp(A, B, 'symobj::zip', '_plus');

X(i): 2

X(i+1): 3

Nmero de Orden: 5

X =1.0e+05 *

0 1.3708 0 0.0006

0.0000 2.7416 0.0010 0.0003

0.0000 3.4270 0.0003 0.0001

0.0000 3.6554 0.0001 0.0000

0.0000 3.7126 0.0000 0.0000

0.0001 3.7240 0.0000 0.0000

f(x): 1/x+1

X(i): 3

X(i+1): -2

Nmero de Orden: 6

X=

1.0e+03 *

0 0.0013 0 0.1667

0.0010 0.0008 0.0417 0.0556

0.0020 0.0017 0.1190 0.2407

0.0030 0.0002 0.0906 0.0679

0.0040 0.0027 1.6026 0.4465

0.0050 -0.0016 0.1569 0.4108

0.0060 0.0056 0.4597 1.0181

You might also like