Professional Documents
Culture Documents
(05 puntos)
2. Problema
a. Sabiendo que y dada la siguiente tabla (05 puntos)
sea exacta para todos los polinomios de grado menor o igual que dos.
c. Use la frmula anterior encontrada para calcular una aproximacin de la integral
Clcule el error relativo de la aproximacin de la integral.
Cdigo en MATLAB:
Interpolacin de Lagrange
% INTERPOLACION "POLINOMIO DE LAGRAGE"
fprintf('INTERPOLACION "POLINIMIO DE LAGRAGE"\n\n\n');
%fprintf me permite ingresar comentarios de manera textual que pueden
%orientar al usuario en el uso del programa
xi=input('Ingrese los puntos pertenecientes a las x: ');
yi=input('Ingrese los puntos pertenecientes a las y: ');
%input es un comando de solicitud de entrada de datos del usuario.
n=length(xi);
x=sym('x'); %esta funcion nos permite dejar la variable 'x' como
simblica
% y asi poder trabajar con ella, sin tener que asignarle un valor.
for j=1:n
producto=1;
for i=1:j-1
producto=producto*(x-xi(i));
end
producto2=1;
for i=j+1:n
producto2=producto2*(x-xi(i));
end
producto3=1;
for i=1:j-1
producto3=producto3*(xi(j)-xi(i));
end
producto4=1;
for i=j+1:n
producto4=producto4*(xi(j)-xi(i));
end
L(j)=(producto*producto2)/(producto3*producto4);
fprintf('\n L%d:\n',j-1) %poder hallar el polinomio
disp(L(j))
pn=0;
for j=1:n
pn=pn+L(j)*yi(j); %calculo del polinomio interpolante
end
fprintf('\n POLINOMIO INTERPOLANTE: \n')
pn = simple(pn);
disp(pn)
opc=input('\nDesea aproximar un valor (si/no): ','s');
if opc=='si'
x=input('\nIngrese el punto a aproximar: ');y=eval(pn);
disp('\nLa aproximacion a f(x) es:')
disp(y)
end
Usando Lagrange:
Cdigo en MATLAB:
PREGUNTA 3:
f(3)=0.1550361745
f(2.9)=0.2547313296
f f -f(2.9))/2(0.1)
f -1.038434402
f -1.04057792
e%=(-1.04057792-(-1.038434402))*100/ -1.04057792
e%=0.20599%
Para h=0.5 ( Como nos piden para h=0.5 el nmero de pasos M ser 4)
Cdigo en MATLAB:
Mtodo de Runge Kutta:
function R=rk4(f,a,b,ya,M)
h=(b-a)/M;
T=zeros(1,M+1);
Y=zeros(1,M+1);
T=a:h:b;
Y(1)=ya;
for j=1:M
k1=h*feval(f,T(j),Y(j));
k2=h*feval(f,T(j)+h/2,Y(j)+k1/2);
k3=h*feval(f,T(j)+h/2,Y(j)+k2/2);
k4=h*feval(f,T(j)+h,Y(j)+k3);
Y(j+1)=Y(j)+(k1+2*k2+2*k3+k4)/6;
end
R=[T' Y'];