Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2an 21 - El Trazador Cubico PDF
2an 21 - El Trazador Cubico PDF
10
2 3 4 5 6 7 8 9 10
t
Se observa que en los intervalos (2, 4), y (8, 10) la forma del polinomio no es apropiada para
expresar la tendencia de los datos.
Una opción pudiera ser colocar polinomios de interpolación en tramos. Por ejemplo un
polinomio de segundo grado con los puntos (2, 5), (4,6), (5,9), y otro polinomio de segundo
grado con los puntos (5,9), (8,5), (10,4). Sin embargo, en el punto intermedio (5, 9) en el que
se unirían ambos polinomios de segundo grado se tendría un cambio de pendiente inaceptable.
Una mejor opción consiste en usar el Trazador Cúbico. Este dispositivo matemático equivale a
la regla flexible que usan algunos dibujantes y que permite acomodarla para seguir de una
manera suave la trayectoria de los puntos sobre un plano.
y = p(x) = ai (x − xi )3 + bi (x − xi )2 + ci (x − xi ) + di
(0)
x i ≤ x ≤ x i+ 1, =i 1,2,...,n − 1
Los puntos no necesariamente están espaciados en forma regular por lo que conviene asignar
un nombre a cada una de las distancias entre puntos consecutivos:
hi = xi+1 – xi , i = 1, 2, ..., n-1
El siguiente desarrollo basado en las condiciones requeridas para p(x) permite obtener los
coeficientes del polinomio.
Si + 1 − Si
De donde se obtiene ai = (6)
6hi
144
Si + 1 − Si
ai =
6hi
Si
bi = (8)
2
yi + 1 − yi 2hi Si + hi Si + 1
ci = −
hi 6
di = yi i = 1, 2, ..., n-1
En el punto intermedio entre dos intervalos adyacentes, la pendiente de los polinomios debe
ser igual:
yi + 1 − yi yi − yi −1
hi-1Si-1 + 2(hi-1 + hi)Si + hiSi+1 = 6 ( − ) , i = 2, 3, ..., n-1 (9)
hi hi −1
145
Esta ecuación debe evaluarse con los datos dados, con lo que se obtiene un sistema de n – 2
ecuaciones lineales con las n variables: S1, S2, ..., Sn
Para obtener dos datos adicionales se considera que en el Trazador Cúbico Natural los
puntos extremos inicial y final están sueltos por lo que no tienen curvatura. Con esta suposición
el valor de la segunda derivada tiene un valor nulo en los extremos, y se puede escribir:
S1 = 0, Sn = 0 (10)
yi + 1 − yi yi − yi −1
hi-1Si-1 + 2(hi-1 + hi)Si + hiSi+1 = 6 ( − ) , i = 2, 3, ..., n-1 (9)
hi hi −1
S1 = 0, Sn = 0 (10)
Si + 1 − Si
ai =
6hi
Si
bi = (8)
2
yi + 1 − yi 2hi Si + hi Si + 1
ci = −
hi 6
di = yi i = 1, 2, ..., n-1
y = p(x) = ai (x − xi )3 + bi (x − xi )2 + ci (x − xi ) + di (0)
x i ≤ x ≤ x i+ 1, =i 1,2,...,n − 1
146
Ejemplo. Encuentre el trazador cúbico natural para los datos (2, 5), (4,6), (5,9), (8,5), (10,4)
Solución:
Anotamos los datos en la terminología del trazador cúbico
n=5
i xi yi hi = xi+1 - xi
1 2 5 2
2 4 6 1
3 5 9 3
4 8 5 2
5 10 4
Los coeficientes corresponden a los cuatro polinomios segmentarios del trazador cúbico natural
según la definición inicial en la ecuación (0):
3 2
y = p(x) = ai(xI – xi) + bi(xI – xi) + ci(xI – xi) + di , i = 1, 2, 3, 4
3 2
i=1: y = p(x) = a1(xI – xi) + b1(xI – xi) + c1(xI – xi) + d1 ,
2≤x≤4
3 2
= 0.2684(x – 2) + 0(x – 2) – 0.5737(x – 2) + 5,
4≤x≤5
3 2
i=2: y = p(x) = -1.2580(x – 4) + 1.6106(x – 4) + 2.6474(x – 4) + 6,
5≤x≤8
3 2
i=3: y = p(x) = 0.3403(x – 5) – 2.1635(x – 5) + 2.0946(x – 5) + 9,
8 ≤ x ≤ 10
3 2
i=4: y = p(x) = -0.1498(x – 8) + 0.8990(x – 8) – 1.6987(x – 8) + 6,
147
Debido a que el sistema resultante es de tipo tridiagonal, se usa un método específico muy
eficiente para resolver estos sistemas. Debe haber por lo menos 4 puntos datos.
function [a,b,c,d]=trazador(x,y,z)
% Trazador Cúbico Natural: a(i)(x-x(i))^3+b(i)(x-x(i))^2+c(i)(x-x(i))+d(i), n>3
% z es opcional: es el vector de puntos para evaluar al trazador
% Entrega puntos del trazador o los coeficientes de los polinomios segmentarios
n=length(x);
clear A B C D;
if n<4
return
end
for i=1:n-1
h(i)=x(i+1)-x(i);
end
s(1)=0;
s(n)=0;
B(1)=2*(h(1)+h(2));
C(1)=h(2);
D(1)=6*((y(3)-y(2))/h(2)-(y(2)-y(1))/h(1))-h(1)*s(1);
for i=2:n-3 % Sistema tridiagonal para obtener S
A(i)=h(i);
B(i)=2*(h(i)+h(i+1));
C(i)=h(i+1);
D(i)=6*((y(i+2)-y(i+1))/h(i+1)-(y(i+1)-y(i))/h(i));
end
A(n-2)=h(n-2);
B(n-2)=2*(h(n-2)+h(n-1));
D(n-2)=6*((y(n)-y(n-1))/h(n-1)-(y(n-1)-y(n-2))/h(n-2))-h(n-1)*s(n);
u=tridiagonal(A,B,C,D);
for i=2:n-1
s(i)=u(i-1);
end
for i=1:n-1 % Coeficientes del trazador cúbico natural
a(i)=(s(i+1)-s(i))/(6*h(i));
b(i)=s(i)/2;
c(i)=(y(i+1)-y(i))/h(i)-(2*h(i)*s(i)+h(i)*s(i+1))/6;
d(i)=y(i);
end
if nargin==3 % Puntos del trazador cúbico natural
p=[ ];
m=length(z);
for k=1:m
t=z(k);
for i=1:n-1
if t>=x(i) & t<=x(i+1)
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
end
end
if m>1
k=m;i=n-1;
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
clear a b c d;
a=p;
end
148
Ejemplo. Encuentre el trazador cúbico natural usando la función anterior para los siguientes
puntos dados. (2, 5), (4,6), (5,9), (8,5), (10,4)
>> x = [2 4 5 8 10];
>> y = [5 6 9 5 4];
>> z = [2: 0.01: 10]; Puntos para evaluar el trazador
>> p = trazador(x, y, z); Puntos del trazador
>> plot(x, y, ’o’); Gráfico de los puntos
>> hold on
>> plot(z, p) Gráfico del trazador
Gráfico del trazador cúbico natural junto con los puntos dados y el polinomio de interpolación:
a=
0.2684 -1.2580 0.3403 -0.1498
b=
0 1.6106 -2.1635 0.8990
c=
-0.5737 2.6474 2.0946 -1.6987
d=
5 6 9 5
149
Sustituimos los datos dados para los polinomios en el primero y último intervalo:
En el primer intervalo:
2
x = x1: y’(x1) = u = 3a1(x1 – x1) + 2b1(x1 – x1) + c1 = c1
1 1 y − y1
− h1S1 − h1S2 =
u− 2 (11)
3 6 h1
En el último intervalo:
2
x = xn: y’(xn) = v = 3an-1(xn – xn-1) + 2bn-1(xn – xn-1) + cn-1
2
v = 3an-1 hn −1 + 2bn-1 hn-1 + cn-1
1 1 y − yn −1
hn −1Sn −1 + hn −1Sn =
v− n (12)
6 3 hn −1
Las ecuaciones (11) y (12) junto con las ecuaciones que se obtienen de (9) conforman un
sistema tridiagonal de n ecuaciones lineales con las n variables S1, S2, ..., Sn
1 1 y − y1
− h1S1 − h1S2 = u − 2 (11)
3 6 h1
yi + 1 − yi yi − yi −1
hi-1Si-1 + 2(hi-1 + hi)Si + hiSi+1 = 6 ( − ) , i = 2, 3, ..., n-1 (9)
hi hi −1
1 1 y − yn −1
hn −1Sn −1 + hn −1Sn = v − n (12)
6 3 hn −1
Si + 1 − Si
ai =
6hi
Si
bi = (8)
2
yi + 1 − yi 2hi Si + hi Si + 1
ci = −
hi 6
di = yi i = 1, 2, ..., n-1
y = p(x) = ai (x − xi )3 + bi (x − xi )2 + ci (x − xi ) + di
(0)
x i ≤ x ≤ x i+ 1, =i 1,2,...,n − 1
151
function [a,b,c,d]=trazadorsujeto(x,y,u,v,z)
% Trazador Cúbico Sujeto
% u,v son las pendientes en los extremos
% a(i)(z-x(i))^3+b(i)(z-x(i))^2+c(i)(z-x(i))+d(i), n>3
% z es opcional: es el vector de puntos para evaluar al trazador
% Entrega puntos del trazador o los coeficientes de los polinomios segmentarios
n=length(x);
clear A B C D;
if n<4
return
end
for i=1:n-1
h(i)=x(i+1)-x(i);
end
B(1)=-2*h(1)/6;
C(1)=-h(1)/6;
D(1)=u-(y(2)-y(1))/h(1);
for i=2:n-1
A(i)=h(i-1);
B(i)=2*(h(i-1)+h(i));
C(i)=h(i);
D(i)=6*((y(i+1)-y(i))/h(i)-(y(i)-y(i-1))/h(i-1));
end
A(n)=h(n-1)/6;
B(n)=h(n-1)/3;
D(n)=v-(y(n)-y(n-1))/h(n-1);
s=tridiagonal(A,B,C,D);
for i=1:n-1 % Coeficientes del trazador cúbico sujeto
a(i)=(s(i+1)-s(i))/(6*h(i));
b(i)=s(i)/2;
c(i)=(y(i+1)-y(i))/h(i)-(2*h(i)*s(i)+h(i)*s(i+1))/6;
d(i)=y(i);
end
if nargin==5 % Puntos del trazador cúbico sujeto
p=[ ];
m=length(z);
for k=1:m
t=z(k);
for i=1:n-1
if t>=x(i) & t<=x(i+1)
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
end
end
if m>1
k=m;i=n-1;
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
clear a b c d;
a=p;
end
152
Ejemplo. Encuentre el trazador cúbico sujeto usando la función anterior para los siguientes
0
puntos dados. (2, 5), (4,6), (5,9), (8,5), (10,4). En el extremo izquierdo debe inclinarse 45 y
debe terminar horizontal en el extremo derecho.
>> x = [2 4 5 8 10];
>> y = [5 6 9 5 4];
>> z = [2: 0.01: 10]; Puntos para evaluar el trazador
>> p = trazadorsujeto(x, y, 1, 0, z); Puntos del trazador
>> plot(x, y, ’o’); Gráfico de los puntos
>> hold on
>> plot(z, p) Gráfico del trazador
>> axis([0,10,0,10]);
Gráfico del trazador cúbico sujeto junto con los puntos dados:
10
0
0 1 2 3 4 5 6 7 8 9 10
a=
0.5870 -1.4461 0.3535 -0.1728
b=
-1.4240 2.0980 -2.2402 0.9412
c=
1.0000 2.3480 2.2059 -1.6912
d=
5 6 9 5
Ejemplo comparativo
Datos: (2, 7), (4, 8), (5, 9), (6, 8), (8,6)
>> v=trazador(x,y,z);
>> plot(z,v)
>> w=spline(x,y,z);
>> plot(z,w)
>> t=trazadorsujeto(x,y,0,0,z);
>> plot(z,t)
8.5
7.5
lagrange
trazador natural
6
5.5
2 3 4 5 6 7 8
t
1. Con los siguientes datos (x, y): (1.2, 4.6), (1.5, 5.3), (2.4, 6.0), (3.0, 4.8), (3.8, 3.1)
2. Con los siguientes datos (x, y): y’(1.2) = 1, (1.5, 5.3), (2.4, 6.0), (3.0, 4.8), y’(3.8) = -1