Documente Academic
Documente Profesional
Documente Cultură
clc
clear all
n=input('Ingrese el grado del polinomio de Lagrange a
evaluar(1=Lineal,2=Cuadratica,3=Cubica,4=Cuarto Grado)=');
if n==1
vec0=input('Ingrese el valor del primer punto y su valor en la funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
syms x
L0=((x-vec1(1,1)))/(((vec0(1,1)-vec1(1,1))));
L1=((x-vec0(1,1)))/(((vec1(1,1)-vec0(1,1))));
px=L0*vec0(1,2)+L1*vec1(1,2);
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
b=a*1;
disp('El valor que se desea estimar es=')
disp(b)
else
if n==2
vec0=input('Ingrese el valor del primer punto y su valor en la
funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
vec2=input('Ingrese el valor del tercer punto y su valor en la funcin=');
syms x
L0=((x-vec1(1,1))*(x-vec2(1,1)))/((vec0(1,1)-vec1(1,1))*(vec0(1,1)-vec2(1,1)));
L1=((x-vec0(1,1))*(x-vec2(1,1)))/((vec1(1,1)-vec0(1,1))*(vec1(1,1)-vec2(1,1)));
L2=((x-vec0(1,1))*(x-vec1(1,1)))/((vec2(1,1)-vec0(1,1))*(vec2(1,1)-vec1(1,1)));
px=L0*vec0(1,2)+L1*vec1(1,2)+L2*vec2(1,2);
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
b=a*1;
disp('El valor que se desea estimar es=')
disp(b)
else if n==3
vec0=input('Ingrese el valor del primer punto y su valor en la
funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
vec2=input('Ingrese el valor del tercer punto y su valor en la funcin=');
vec3=input('Ingrese el valor del cuarto punto y su valor en la funcin=');
syms x
L0=((x-vec1(1,1))*(x-vec2(1,1))*(x-vec3(1,1)))/((vec0(1,1)-vec1(1,1))*(vec0(1,1)-
vec2(1,1))*(vec0(1,1)-vec3(1,1)));
L1=((x-vec0(1,1))*(x-vec2(1,1))*(x-vec3(1,1)))/((vec1(1,1)-vec0(1,1))*(vec1(1,1)-
vec2(1,1))*(vec1(1,1)-vec3(1,1)));
L2=((x-vec0(1,1))*(x-vec1(1,1))*(x-vec3(1,1)))/((vec2(1,1)-vec0(1,1))*(vec2(1,1)-
vec1(1,1))*(vec2(1,1)-vec3(1,1)));
L3=((x-vec0(1,1))*(x-vec1(1,1))*(x-vec2(1,1)))/((vec3(1,1)-vec0(1,1))*(vec3(1,1)-
vec1(1,1))*(vec3(1,1)-vec2(1,1)));
px=L0*vec0(1,2)+L1*vec1(1,2)+L2*vec2(1,2)+L3*vec3(1,2);
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
b=a*1;
disp('El valor que se desea estimar es=')
disp(b)
else
if n==4
vec0=input('Ingrese el valor del primer punto y su valor en la funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
vec2=input('Ingrese el valor del tercer punto y su valor en la funcin=');
vec3=input('Ingrese el valor del cuarto punto y su valor en la funcin=');
vec4=input('Ingrese el valor del quinto punto y su valor en la funcin=');
syms x
L0=((x-vec1(1,1))*(x-vec2(1,1))*(x-vec3(1,1))*(x-vec4(1,1)))/((vec0(1,1)-
vec1(1,1))*(vec0(1,1)-vec2(1,1))*(vec0(1,1)-vec3(1,1))*(vec0(1,1)-vec4(1,1)));
L1=((x-vec0(1,1))*(x-vec2(1,1))*(x-vec3(1,1))*(x-vec4(1,1)))/((vec1(1,1)-
vec0(1,1))*(vec1(1,1)-vec2(1,1))*(vec1(1,1)-vec3(1,1))*(vec1(1,1)-vec4(1,1)));
L2=((x-vec0(1,1))*(x-vec1(1,1))*(x-vec3(1,1))*(x-vec4(1,1)))/((vec2(1,1)-
vec0(1,1))*(vec2(1,1)-vec1(1,1))*(vec2(1,1)-vec3(1,1))*(vec2(1,1)-vec4(1,1)));
L3=((x-vec0(1,1))*(x-vec1(1,1))*(x-vec2(1,1))*(x-vec4(1,1)))/((vec3(1,1)-
vec0(1,1))*(vec3(1,1)-vec1(1,1))*(vec3(1,1)-vec2(1,1))*(vec3(1,1)-vec4(1,1)));
L4=((x-vec0(1,1))*(x-vec1(1,1))*(x-vec2(1,1))*(x-vec3(1,1)))/((vec4(1,1)-
vec0(1,1))*(vec4(1,1)-vec1(1,1))*(vec4(1,1)-vec2(1,1))*(vec4(1,1)-vec3(1,1)));
px=L0*vec0(1,2)+L1*vec1(1,2)+L2*vec2(1,2)+L3*vec3(1,2)+L4*vec4(1,2);
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
b=a*1;
disp('El valor que se desea estimar es=')
disp(b)
end
end
end
end
>> 565/8
ans =
70.6250
>> 2197/30
ans =
73.2333
ans =
74.1084
>> 51369421/688750
ans =
74.5836
PROGRAMA PARA LA INTERPOLACIN DE NEWTON HASTA UN POLINOMIO DE GRADO 5
clc
clear all
n=input('Ingrese el grado del polinomio de Newton a
evualuar(1=lineal,2=cuadratica,3=Cubica,4=Cuarto Grado,5=Quinto Grado)=');
if n==1
vec0=input('Ingrese el valor del primer punto y su valor en la funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
a0=vec0(1,2);
a1=(vec1(1,2)-vec0(1,2))/(vec1(1,1)-vec0(1,1));
syms x
px=a0+a1*(x-vec0(1,1));
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
disp('El valor a estimar es=');
disp(a)
else
if n==2
vec0=input('Ingrese el valor del primer punto y su valor en la
funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
vec2=input('Ingrese el valor del tercer punto y su valor en la funcin=');
a0=vec0(1,2);
a1=(vec1(1,2)-vec0(1,2))/(vec1(1,1)-vec0(1,1));
a2=(((vec2(1,2)-vec1(1,2))/(vec2(1,1)-vec1(1,1)))-a1)/(vec2(1,1)-vec0(1,1));
syms x
px=a0+a1*(x-vec0(1,1))+a2*(x-vec0(1,1))*(x-vec1(1,1));
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
disp('El valor a estimar es=');
disp(a)
else
if n==3
vec0=input('Ingrese el valor del primer punto y su valor en la
funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
vec2=input('Ingrese el valor del tercer punto y su valor en la funcin=');
vec3=input('Ingrese el valor del cuarto punto y su valor en la funcin=');
a0=vec0(1,2);
a1=(vec1(1,2)-vec0(1,2))/(vec1(1,1)-vec0(1,1));
a2=(((vec2(1,2)-vec1(1,2))/(vec2(1,1)-vec1(1,1)))-a1)/(vec2(1,1)-vec0(1,1));
a3=(((vec3(1,2)-vec2(1,2))/(vec3(1,1)-vec2(1,1))-((vec2(1,2)-
vec1(1,2))/(vec2(1,1)-vec1(1,1))))/(vec3(1,1)-vec1(1,1))-a2)/(vec3(1,1)-
vec0(1,1));
syms x
px=a0+a1*(x-vec0(1,1))+a2*(x-vec0(1,1))*(x-vec1(1,1))+a3*(x-vec0(1,1))*(x-
vec1(1,1))*(x-vec2(1,1));
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
disp('El valor a estimar es=');
disp(a)
else
if n==4
vec0=input('Ingrese el valor del primer punto y su valor en la
funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
vec2=input('Ingrese el valor del tercer punto y su valor en la funcin=');
vec3=input('Ingrese el valor del cuarto punto y su valor en la funcin=');
vec4=input('Ingrese el valor del quinto punto y su valor en la funcin=');
a0=vec0(1,2);
a1=(vec1(1,2)-vec0(1,2))/(vec1(1,1)-vec0(1,1));
a2=(((vec2(1,2)-vec1(1,2))/(vec2(1,1)-vec1(1,1)))-a1)/(vec2(1,1)-vec0(1,1));
a3=(((vec3(1,2)-vec2(1,2))/(vec3(1,1)-vec2(1,1))-((vec2(1,2)-
vec1(1,2))/(vec2(1,1)-vec1(1,1))))/(vec3(1,1)-vec1(1,1))-a2)/(vec3(1,1)-
vec0(1,1));
a4=((((vec4(1,2)-vec3(1,2))*(vec3(1,1)-vec2(1,1))-(vec3(1,2)-
vec2(1,2))*(vec4(1,1)-vec3(1,1)))/((vec4(1,1)-vec3(1,1))*(vec3(1,1)-
vec2(1,1))*(vec4(1,1)-vec2(1,1)))-((vec3(1,2)-vec2(1,2))*(vec2(1,1)-vec1(1,1))-
(vec2(1,2)-vec1(1,2))*(vec3(1,1)-vec2(1,1)))/((vec3(1,1)-vec2(1,1))*(vec2(1,1)-
vec1(1,1))*(vec3(1,1)-vec1(1,1))))/(vec4(1,1)-vec1(1,1))-a3)/(vec4(1,1)-
vec0(1,1));
syms x
px=a0+a1*(x-vec0(1,1))+a2*(x-vec0(1,1))*(x-vec1(1,1))+a3*(x-vec0(1,1))*(x-
vec1(1,1))*(x-vec2(1,1))+a4*(x-vec0(1,1))*(x-vec1(1,1))*(x-vec2(1,1))*(x-
vec3(1,1));
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
disp('El valor a estimar es=');
disp(a)
else
if n==5
vec0=input('Ingrese el valor del primer punto y su valor en la funcin=');
vec1=input('Ingrese el valor del segundo punto y su valor en la funcin=');
vec2=input('Ingrese el valor del tercer punto y su valor en la funcin=');
vec3=input('Ingrese el valor del cuarto punto y su valor en la funcin=');
vec4=input('Ingrese el valor del quinto punto y su valor en la funcin=');
vec5=input('Ingrese el valor del sexto punto y su valor en la funcin=');
a0=vec0(1,2);
a1=(vec1(1,2)-vec0(1,2))/(vec1(1,1)-vec0(1,1));
a2=(((vec2(1,2)-vec1(1,2))/(vec2(1,1)-vec1(1,1)))-a1)/(vec2(1,1)-vec0(1,1));
a3=(((vec3(1,2)-vec2(1,2))/(vec3(1,1)-vec2(1,1))-((vec2(1,2)-
vec1(1,2))/(vec2(1,1)-vec1(1,1))))/(vec3(1,1)-vec1(1,1))-a2)/(vec3(1,1)-
vec0(1,1));
a4=((((vec4(1,2)-vec3(1,2))*(vec3(1,1)-vec2(1,1))-(vec3(1,2)-
vec2(1,2))*(vec4(1,1)-vec3(1,1)))/((vec4(1,1)-vec3(1,1))*(vec3(1,1)-
vec2(1,1))*(vec4(1,1)-vec2(1,1)))-((vec3(1,2)-vec2(1,2))*(vec2(1,1)-vec1(1,1))-
(vec2(1,2)-vec1(1,2))*(vec3(1,1)-vec2(1,1)))/((vec3(1,1)-vec2(1,1))*(vec2(1,1)-
vec1(1,1))*(vec3(1,1)-vec1(1,1))))/(vec4(1,1)-vec1(1,1))-a3)/(vec4(1,1)-
vec0(1,1));
a5=(((((vec5(1,2)-vec4(1,2))*(vec4(1,1)-vec3(1,1))-(vec4(1,2)-
vec3(1,2))*(vec5(1,1)-vec4(1,1)))/((vec5(1,1)-vec4(1,1))*(vec5(1,1)-
vec3(1,1))*(vec4(1,1)-vec3(1,1)))-((vec4(1,2)-vec3(1,2))*(vec3(1,1)-vec2(1,1))-
(vec3(1,2)-vec2(1,2))*(vec4(1,1)-vec3(1,1)))/((vec4(1,1)-vec3(1,1))*(vec4(1,1)-
vec2(1,1))*(vec3(1,1)-vec2(1,1))))/(vec5(1,1)-vec2(1,1))-(((vec4(1,2)-
vec3(1,2))*(vec3(1,1)-vec2(1,1))-(vec3(1,2)-vec2(1,2))*(vec4(1,1)-
vec3(1,1)))/((vec4(1,1)-vec3(1,1))*(vec3(1,1)-vec2(1,1))*(vec4(1,1)-vec2(1,1)))-
((vec3(1,2)-vec2(1,2))*(vec2(1,1)-vec1(1,1))-(vec2(1,2)-vec1(1,2))*(vec3(1,1)-
vec2(1,1)))/((vec3(1,1)-vec2(1,1))*(vec2(1,1)-vec1(1,1))*(vec3(1,1)-
vec1(1,1))))/(vec4(1,1)-vec1(1,1)))/(vec5(1,1)-vec1(1,1))-a4)/(vec5(1,1)-
vec0(1,1));
syms x
px=a0+a1*(x-vec0(1,1))+a2*(x-vec0(1,1))*(x-vec1(1,1))+a3*(x-vec0(1,1))*(x-
vec1(1,1))*(x-vec2(1,1))+a4*(x-vec0(1,1))*(x-vec1(1,1))*(x-vec2(1,1))*(x-
vec3(1,1))+a5*(x-vec0(1,1))*(x-vec1(1,1))*(x-vec2(1,1))*(x-vec3(1,1))*(x-
vec4(1,1));
x=input('Ingrese el valor a estimar=');
a=subs(px,x);
disp('El valor a estimar es=');
disp(a)
end
end
end
end
end
565/8
>> 565/8
ans =
70.6250
2197/30
>> 2197/30
ans =
73.2333
70403/950
>> 70403/950
ans =
74.1084
10211191405190096875591/136909428672063078400
>> 10211191405190096875591/136909428672063078400
ans =
74.5836
164031184342121274079381/2190550858753009254400
>> 164031184342121274079381/2190550858753009254400
ans = 74.8812