Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERA EN MECATRNICA
NRC: 1155
x0 = 1 x1 = 0 x2 = 1
.
x0 = 1 x1 = 0 x2 = 1 x3 = 2
.
CODIGO DE MATLAB
SOLUCION ANALITICA DE b)
los coecientes del polinomio son:
2. Modicar el cdigo dado para que realice el grco de los nodos (puntos) y el
polinomio interpolador.
3. Cree su propio cdigo.
4. En el cuadro siguiente se muestran las temperaturas que fueron medidas cada
hora, durante un lapso total de 5 horas
a) Construir el polinomio interpolador de Lagrange correspondiente a los datos del cuadro
anterior.
c) Dibuje los datos del cuadro y el polinomio interpolador encontrado, en el mismo graco.
Discuta el error que puede apreciar al usar dicho polinomio para estimar la temperatura media.
CODIGO DE MATLAB
end
l(i,:)= q;
end
fprintf('El Polinomio Interpolador es: ')
P=y*l
a=min(x);
b=max(x);
x1=a:0.1:b;
y1=polyval(P,x1);
n1=input('Ingrese el valor de X que desea evaluar en el polinomio: ');
m1=polyval(P,n1);
fprintf('El valor de Y obtenido es: %g\n',m1);
plot (x,y);
grid;
hold on;
plot (x,y,'O');
plot(x1,y1,'g');
plot(n1,m1,'k+');
xlabel ('Abscisas (X)');
ylabel ('Ordenadas (Y)');
legend ('Grafica Datos','Nodos','Polinomio Interpolador','Punto evaluado');
a)
SOLUCION ANALITICA )
los coecientes del polinomio son:
b)
la temperatura promedio es:
18 + 18 + 17 + 16 + 15 + 14
Tprom =
6
Tprom = 16.33
c)
GRFICA )
al resolver el polinomio:
x5 2 x4 511 x3 1018 x2 26977 x
P5 (X) = + + + 8536
120 3 24 3 10
con P5 (X) = 16.33 que es la temperatura promedio , tenemos las siguientes horas:
1 Problema 1
En base a las funciones y datos que se muestran en el cuadro tres realizar:
a) Calcular la tabla de diferencias divididas para las funciones y datos.
b)Escribir los Polinomios interpoladores de Newton P1,P2,P3 y P4
c)Calcular los valores de los polinomios hallados, en el apartado anterior, para los valores de x
dados.
d) Compare los valores obtenidos, con los valores exactos.
f (x) = x1/2 ; x = 4, 5, 6, 7, 8
f (x) = 3(sin(pi x/6)); x = 0, 1, 2, 3, 4
clear;
clc;
disp('Mtodo de Interpolacin de Newton');
n=input('Ingrese el grado del polinomio a determinar: ');
fprintf('\nSe necesita ingresar %.0f puntos\n',n+1);
fprintf('Ingrese las coordenadas de los puntos:\n');
for i=1:n+1
fprintf('x%.0f=',i-1);
X(i)=input(' ');
fprintf('y%.0f=',i-1);
Y(i)=input(' ');
end
DD=zeros(n+1);
DD(:,1)=Y;
for k=2:n+1
for J=k:n+1
DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)];
end
end
fprintf('\nLa matriz de diferencias divididas es:\n\n');
disp(DD);
disp('El polinomio de newton es:');
syms x;
poli=DD(1,1);
P=1;
for i=1:n
P=P*(x-X(i));
poli=poli+P*DD(i+1,i+1);
end
poli=expand(poli);
pretty(poli);
op=input('Ingrese (1) para f(x)=x^1/2 o (2) para f(x)=3(sin(pix/2))^2: ');
if(op==1)
f=inline('x^(1/2)');
else
f=inline('3*(sin(3.141617*x/6))^2');
end
fprintf('Valor Interpolado Valor Original es:\n');
for i=1:n+1
fx=feval(f,X(i));
x=X(i);
vi=eval(poli);
fprintf('%.2f %.2f\n ',fx,vi);
end
1.2 Capturas
Polinomio 1
Polinomio 2
Polinomio 3
Polinomio 4
La Grca es:
Solucin de la Segunda funcin
Polinomio 1
Polinomio 2
Polinomio 3
Polinomio 4
La Grca es:
2 Problema 2
EL polinomio p(x) = 2 (x + 1) + x(x + 1) 2x(x + 1)(x 1) interpola os primeros cuatro
nodos de la tabla
2.1 Cdigo
clear;
clc;
disp('Mtodo de Interpolacin de Newton');
n=input('Ingrese el grado del polinomio a determinar: ');
fprintf('\nSe necesita ingresar %.0f puntos\n',n+1);
fprintf('Ingrese las coordenadas de los puntos:\n');
for i=1:n+1
fprintf('x%.0f=',i-1);
X(i)=input(' ');
fprintf('y%.0f=',i-1);
Y(i)=input(' ');
end
DD=zeros(n+1);
DD(:,1)=Y;
for k=2:n+1
for J=k:n+1
DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)];
end
end
fprintf('\nLa matriz de diferencias divididas es:\n\n');
disp(DD);
disp('El polinomio de newton es:');
syms x;
poli=DD(1,1);
P=1;
for i=1:n
P=P*(x-X(i));
poli=poli+P*DD(i+1,i+1);
end
poli=expand(poli);
pretty(poli);
2.2 Capturas
3 Problema 3
La ecuacion x 9x = 0 tiene una solucin en el intervalo de 0 a 1. Utilice la teoria de interpo-
lacin polinomial en los nodos x0=0, x1=0.5 y x2=1, para encontrar una solucin aproximada
de x estime el error.
3.1 Cdigo
clear;
clc;
disp('Mtodo de Interpolacin de Newton');
n=input('Ingrese el grado del polinomio a determinar: ');
fprintf('\nSe necesita ingresar %.0f puntos\n',n+1);
fprintf('Ingrese las coordenadas de los puntos:\n');
f=inline('x-9^(-x)');
for i=1:n+1
fprintf('x%.0f=',i-1);
X(i)=input(' ');
Y(i)=feval(f,X(i));
fprintf('y%.0f= %.2f\n',i-1,Y(i));
end
DD=zeros(n+1);
DD(:,1)=Y;
for k=2:n+1
for J=k:n+1
DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)];
end
end
fprintf('\nLa matriz de diferencias divididas es:\n\n');
disp(DD);
disp('El polinomio de newton es:');
syms x;
poli=DD(1,1);
P=1;
for i=1:n
P=P*(x-X(i));
poli=poli+P*DD(i+1,i+1);
end
poli=expand(poli);
pretty(poli);
fprintf('Valor Interpolado Valor Original Error:\n');
for i=1:n+1
fx=feval(f,X(i));
x=X(i);
vi=eval(poli);
e=abs(fx-vi);
fprintf('%.2f %.2f %.2f\n ',fx,vi,e);
end
3.2 Capturas