Documentos de Académico
Documentos de Profesional
Documentos de Cultura
POLINOMIOS DE INTERPOLACIÓN
Polinomios oscilantes: Polinomio de Lagrange
• Polinomio de interpolación de grado n
>>polyfit(x,y,n)
n −1
Corresponde al polinomio p ( x)= p1 x + p2 x + .... + pn x + pn +1
n
Ejemplo:
xi 0 1 2 3 4 5 6 7
yi 0 25 34 72 115 92 71 65
100
80
60
40
20
-20
0 1 2 3 4 5 6 7
U. D. de Matemáticas de la ETSITGC 15
ETSI de Topografía, Geodesia y Cartografía
Una vez guardado el archivo con el nombre de la función, escribimos los datos:
Ejemplo:
x 0 1 3
f (x) 1 5 -17
f ’(x) 3 5 -15
U. D. de Matemáticas de la ETSITGC 16
ETSI de Topografía, Geodesia y Cartografía
>> x=[0 1 3]; y=[1 5 -17]; yp=[3 5 -15];
hp=hermite(x,y,yp)
hp =
1 -6 9 -3 3 1
En este caso p ( x) = x − 6 9x
x + − 3x +3 x + 1
5 4 3 2
10
-5
-10
-15
-20
0 0.5 1 1.5 2 2.5 3
U. D. de Matemáticas de la ETSITGC 17
ETSI de Topografía, Geodesia y Cartografía
U. D. de Matemáticas de la ETSITGC 18
ETSI de Topografía, Geodesia y Cartografía
120
100
80
60
40
20
0
0 1 2 3 4 5 6 7
• Spline “completo”:
Se calcula con la misma función que se utiliza para el spline “no nodo”, añadiendo al vector
“y” dos valores, uno al principio y otro al final, que son los valores de la derivada primera
del spline en los puntos inicial y final, a=S’(x0) y b=S’(xn), respectivamente. Sintaxis:
spline (x, [a y b]).
Ejemplo:
Se consideran los valores de la función y = arc tg x en los nodos x = -3, -2, …, 2, 3.
Interpolar estos puntos mediante un spline cúbico cuya derivada primera en los extremos
coincida con la derivada primera de la función.
1
y' ( x ) = ⇒ y' (−3) = 0.1, y' (3) = 0.1
1+ x2
x0 x1 x2 x3 x4 x5 x6
-3 -2 -1 0 1 2 3
>> x=-3:3;
>> y=atan(x);
>> ps=spline(x,[0.1 y 0.1]);
Los coeficientes de cada pieza del spline están dados en la siguiente matriz:
>> ps.coefs
ans =
-0.0011 0.0430 0.1000 -1.2490
0.0994 0.0397 0.1827 -1.1071
-0.1126 0.3378 0.5602 -0.7854
-0.1126 -0.0000 0.8980 0
0.0994 -0.3378 0.5602 0.7854
-0.0011 -0.0397 0.1827 1.1071
U. D. de Matemáticas de la ETSITGC 19
ETSI de Topografía, Geodesia y Cartografía
Dibujamos la función (trazo continuo rojo) y el polinomio segmentario (trazo discontinuo
verde):
1.5
>> yy=ppval(ps,xx);
0
>> plot(x,y,'*',xx,atan(xx))
-0.5
>> hold on
>> plot(x,y,'*',xx,yy,'--') -1
-1.5
-3 -2 -1 0 1 2 3
U. D. de Matemáticas de la ETSITGC 20
ETSI de Topografía, Geodesia y Cartografía
for i=1: n
d(i)=(c(i+1)-c(i))/(3*h(i));
end
X=sym('X');
for i=1:n
s(i)=a(i)+b(i)*(X-x(i))+c(i)*(X-x(i))^2+d(i)*(X-x(i))^3;
end
% gráfica
figure(1)
grid on
plot(x,y,'o','MarkerSize',10,'MarkerEdgeColor','b','MarkerFaceColor','b')
for i=1:n
figure(2)
grid on
xx=x(i):1/100:x(i+1);
ezplot(s(i),xx)
hold on
end
axis([min(x) max(x) min(y) max(y)])
% diff(int(s(1)))
% Mostrar datos
x,y,A,h,l,m,a,b,c,d
% Para mostrar las ecuaciones interpoladoras
for i=1:n
disp('-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-')
disp('entre xi y xf:'),
x(i),x(i+1)
pretty((expand((vpa(s(i),5)))))
% decimales significativos
end
Ejemplo:
>> x=[2 2.7 3.8 6 8 10 13 16 18 21 25 30 36];
y=[5 7.8 9 10 10.2 10.3 10.4 14.5 15 15.4 15.5 14 5];
x=
2.0000 2.7000 3.8000 6.0000 8.0000 10.0000 13.0000 16.0000
18.0000 21.0000 25.0000 30.0000 36.0000
y=
5.0000 7.8000 9.0000 10.0000 10.2000 10.3000 10.4000 14.5000
15.0000 15.4000 15.5000 14.0000 5.0000
A=
1.0000 0 0 0 0 0 0 0 0 0 0 0 0
0.7000 3.6000 1.1000 0 0 0 0 0 0 0 0 0 0
0 1.1000 6.6000 2.2000 0 0 0 0 0 0 0 0 0
0 0 2.2000 8.4000 2.0000 0 0 0 0 0 0 0 0
0 0 0 2.0000 8.0000 2.0000 0 0 0 0 0 0 0
0 0 0 0 2.0000 10.0000 3.0000 0 0 0 0 0 0
0 0 0 0 0 3.0000 12.0000 3.0000 0 0 0 0 0
U. D. de Matemáticas de la ETSITGC 21
ETSI de Topografía, Geodesia y Cartografía
0 0 0 0 0 0 3.0000 10.0000 2.0000 0 0 0 0
0 0 0 0 0 0 0 2.0000 10.0000 3.0000 0 0 0
0 0 0 0 0 0 0 0 3.0000 14.0000 4.0000 0 0
0 0 0 0 0 0 0 0 0 4.0000 18.0000 5.0000 0
0 0 0 0 0 0 0 0 0 0 5.0000 22.0000 6.0000
0 0 0 0 0 0 0 0 0 0 0 0 1.0000
h=
0.7000 1.1000 2.2000 2.0000 2.0000 3.0000 3.0000 2.0000
3.0000 4.0000 5.0000 6.0000
l=
4.0000 1.0909 0.4545 0.1000 0.0500 0.0333 1.3667 0.2500
0.1333 0.0250 -0.3000 -1.5000 0
m=
0 -8.7273 -1.9091 -1.0636 -0.1500 -0.0500 4.0000 -3.3500
-0.3500 -0.3250 -0.9750 -3.6000 0
a=
5.0000 7.8000 9.0000 10.0000 10.2000 10.3000 10.4000
14.5000 15.0000 15.4000 15.5000 14.0000 5.0000
b=
4.5791 2.8418 0.3193 0.3096 0.0672 -0.1282 0.8655 0.8662
0.0190 0.1309 -0.0277 -0.8453
c=
0 -2.4819 0.1888 -0.1932 0.0720 -0.1697 0.5009 -0.5007
0.0771 -0.0398 0.0001 -0.1637 0
d=
-1.1819 0.8093 -0.0579 0.0442 -0.0403 0.0745 -0.1113 0.0963
-0.0130 0.0033 -0.0109 0.0091
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
2
ans =
2.7000
5.2970 - 9.6037 X - 1.1819 X3 + 7.0914 X2
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
2.7000
ans =
3.8000
-33.895469730000000 + 33.94366970000 X2 - 9.0373110 X3 + 0.80931 X
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
3.8000
ans =
6
U. D. de Matemáticas de la ETSITGC 22
ETSI de Topografía, Geodesia y Cartografía
13.688863360000000000 - 3.62292160000000 X2 + 0.8486320000 X3 -
0.057880 X
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
6
ans =
8
-8.359696 + 7.401318 X - 0.988738 X2 + 0.044196 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
8
ans =
10
34.888592 - 8.816765 X + 1.038521 X2 - 0.040273 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
10
ans =
13
-79.896000 + 25.618450 X - 2.405000 X2 + 0.074511 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
13
ans =
16
328.30798 - 68.58244 X + 4.84123 X2 - 0.11129 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
16
ans =
18
-521.952108 + 90.841314 X - 5.122754 X2 + 0.096293 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
18
ans =
21
115.340056 - 15.373988 X + 0.778096 X2 - 0.012982 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
U. D. de Matemáticas de la ETSITGC 23
ETSI de Topografía, Geodesia y Cartografía
21
ans =
25
-35.6780720 + 6.2000590 X - 0.2492420 X2 + 0.0033250 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
25
ans =
30
186.90038750 - 20.50933800 X + 0.81913342 X2 - 0.010920 X3
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_¬_-_-_-_-_-_-
entre xi y xf:
ans =
30
ans =
36
-353.4432000 + 33.5248900 X - 0.9820040 X2 + 0.0090926 X3
16
14
12
10
4
0 5 10 15 20 25 30 35 40
88630835302628377/2251799813685248-...+5241523402050519/576460752303423488 (X-30)3
15
14
13
12
11
10
5
5 10 15 20 25 30 35
X
U. D. de Matemáticas de la ETSITGC 24
ETSI de Topografía, Geodesia y Cartografía
Polinomio de Newton
clear;clc;
disp('métodos numéricos');
disp('interpolación');
n=input('ingrese el grado del polinomio, n=');
fprintf('Se necesitan %.0f puntos\n',n+1);
disp('ingrese los puntos');
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
disp('La matriz de diferencias divididas es:');
disp(DD);
disp('El polinomio de Newton es');
syms x;
polnew=DD(1,1);
P=1;
for i=1:n
P=P*(x-X(i));
polnew=polnew+P*DD(i+1,i+1);
end
polnew=expand(polnew);
pretty(polnew);
x=input('ingrese el valor de x a interpolar,x=');
vi=eval(polnew);
fprintf('el valor interpolado es %.2f\n',vi);
hold on;
ezplot(polnew,[X(1) X(n+1)]);
plot(x,vi,'r+');
Ejemplo:
xi 0 1 2 3 4 5 6 7
yi 0 25 34 72 115 92 71 65
métodos numéricos
interpolación
ingrese el grado del polinomio, n=7
U. D. de Matemáticas de la ETSITGC 25
ETSI de Topografía, Geodesia y Cartografía
Se necesitan 8 puntos
ingrese los puntos
x0= 0
y0= 0
x1= 1
y1= 25
x2= 2
y2= 34
x3= 3
y3= 72
x4= 4
y4= 115
x5= 5
y5= 92
x6= 6
y6= 71
x7= 7
y7= 65
La matriz de diferencias divididas es:
0 0 0 0 0 0 0 0
25.0000 25.0000 0 0 0 0 0 0
34.0000 9.0000 -8.0000 0 0 0 0 0
72.0000 38.0000 14.5000 7.5000 0 0 0 0
115.0000 43.0000 2.5000 -4.0000 -2.8750 0 0 0
92.0000 -23.0000 -33.0000 -11.8333 -1.9583 0.1833 0 0
71.0000 -21.0000 1.0000 11.3333 5.7917 1.5500 0.2278 0
65.0000 - 6.0000 7.5000 2.1667 -2.2917 -1.6167 -0.5278 -0.1079
El polinomio de Newton es
14867 35167 65347 6767 1991 449 34
- -------- x - -------- x + -------- x + ------ x - ------ x + ----- x6
3 2 4 5
- ---- x7
420 180 360 72 90 180 315
ingrese el valor de x a interpolar, x=2.5
el valor interpolado es 47.39
-14867/420 x-35167/180 x 3+65347/360 x 2+...-34/315 x 7
120
100
80
60
40
20
0 1 2 3 4 5 6 7
x
U. D. de Matemáticas de la ETSITGC 26