Você está na página 1de 4

Método del trapecio.

clear all;

clc;

fprintf('Calculo de la integral por el metodo trapecial\n\n');

f=input('introduce la funcion:','s');

a=input('lime inferior:');

b=input('limite superior:');

c=input('numero de segmentos a dividir:');

h=(b-a)/c;

z=0;

for x=a:h:b

k=eval(f);

if x==a,d=k;

end

if x==b,e=k;

end

z=z+k;

end

z=z-d-e;

z=z*2;

z=z+d+e;

z=z/(2*c);

z=z*(b-a)

fprintf('Resultado ');
Metodo del runge-kutta
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);
syms x
format long
fprintf('Derivada Numerica para 3 puntos\n');
T=input('Ingrese "1" si va usar funciones o "2" si va usar puntos: ');
if T==1
fprintf('Funciones\n');
%Funciones
M=input('Ingrese "1" si va usar el metodo de Intermedios o "2" si va
usar el metodo de Extremos: ');
if M==1
%Intermedios
fprintf('Metodo de evaluacion por Intermedios \n');
f=input('Ingrese la función: ');
x0=input('Ingrese el valor de x0: ');
n=input('Ingrese la cantidad de intervalos: ');
for i=1:n
h=input('Ingrese el valor del intervalo "h": ');
i=i+1-1;
x=x0+h;
f1=eval(f);
x=x0-h;
f2=eval(f);
dev=(1/(2*h))*(f1-f2);
disp('La funcion evaluada en h: '),disp(h);
disp('Tiene un valor de: '),disp(dev);
disp('Iteracion numero: '),disp(i);
end
else
%Extremos
fprintf('Metodo de evaluacion por extremos \n');
f=input('Ingrese la función: ');
x0=input('Ingrese el valor de x0: ');
n=input('Ingrese la cantidad de intervalos: ');
for i=1:n
h=input('Ingrese el valor del intervalo "h": ');
i=i+1-1;
x=x0;
f1=eval(f);
x=x0+h;
f2=eval(f);
x=x0+2*h;
f3=eval(f);
x=x0;
devf=abs(eval(diff(f,3)));
dev=(1/(2*h))*((-3*f1)+(4*f2)-(f3))+((h^2)/3)*devf;
disp('La funcion evaluada en h: '),disp(h);
disp('El error es de: '),disp(devf);
disp('Tiene un valor de: '),disp(dev);
disp('Iteracion numero: '),disp(i);
end
end
else

M=input('Ingrese "1" si va usar el metodo de Intermedios o "2" si va


usar el metodo de Extremos: ');
Método derivación por 3 puntos
fprintf('Puntos \n');
%Puntos
if M==1
%Intermedios
fprintf('Metodo de evaluacion por Intermedios \n')
x=input('Ingrese el valor de X a evalular en
un punto: \n');
f1=input('Ingrese el valor del primer punto:
');
f2=input('Ingrese el valor del segundo punto:
');
f3=input('Ingrese el valor del tercer punto:
');
h=input('Ingrese el vaolor del intervalo "h":
');
dev=(1/(2*h))*(f1-f3);
disp('La funcion evaluada de manera puntual
en h tiene un valor de: '),disp(h);
disp('Tiene un valor de: '),disp(dev);
else
%Extremos
fprintf('Metodo de evaluacion por Extremos \n')
x=input('Ingrese el valor de X a evalular en
un punto: \n');
f1=input('Ingrese el valor del primer punto:
');
f2=input('Ingrese el valor del segundo punto:
');
f3=input('Ingrese el valor del tercer punto:
');
h=input('Ingrese el vaolor del intervalo "h":
');
dev=(1/(2*h))*((-3*f1)+(4*f2)-(f3));
error=((h^2)/3);
disp('El error es de: '),disp(error);
disp('La funcion evaluada de manera puntual
en h de: '),disp(h);
disp('Tiene un valor de: '),disp(dev);
end
end
Fin de la conversación
Escribe un mensaje...

Você também pode gostar