Você está na página 1de 10

Métodos Numéricos-Exámen

Ing. Patricio Pugarı́n

NCR:1055 G204

Jonathan Patricio Corella

Sangolquı́ - 11 de noviembre de 2013


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

Índice

1. INTRODUCCIÓN 3

2. FUNCIONES SPLIN DE GRADO 3 4

3. EJEMPLO A MANO 5

4. CODIGO DEL PROGRAMA 7

5. EJECUCION DEL PROGRAMA 9

6. BIBLIOGRAFÍA 10

SPLIN DE GRADO 3 2 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

SPLIN DE GRADO 3

1. INTRODUCCIÓN
La construcción de polinomios de interpolación de grado alto aunque justificable teórica-
mente plantea muchos problemas. Por un lado, la forma de la función polinómica de grado alto
a menudo no responde al fenómeno debido al gran número de extremos e inflexiones.

Por otro lado, su cálculo es muy complicado, lo que limita su utilidad en análisis numérico.
Es a menudo más conveniente dividir el intervalo de interés en sub-intervalos más pequeños y
usar en cada sub-ivalo polinomios de grado relativamente bajo, tratando de que la función a tro-
zos definida a este modo tenga un aspecto final adecuado al fenómeno que estamos representando

La idea central es que en vez de usar un solo polinomio para interpolar los datos,
podemos usar segmentos de polinomios y unirlos adecuadamente para formar nues-
tra interpolación. Podemos decir, que una función ssplin esta formada por varios polinomios,
cada uno definido en un intervalo y que se unen entre si bajo ciertas condiciones de continuidad.
Cabe mencionar que entre todas, los splines cúbicos o de tercer grado han resultado ser los más
adecuados.

Definición:
Splines de grado K.
Dada la tabla de datos.

Tabla 1: Datos
X Y
x0 y 0
x1 y 1
x2 y 2
... ...
xn y n

donde suponemos que x0 < x2 < ... < xn y dado que k es un número entero positivo, una
función de interpolacón spline k, para la tabla de datos, es una función S( x) tal que:

1.-S(xi ) = yi , para toda i = 0, 1, ..., n

2.-S( x) es un polinomio de grado <= K en cada subintervalo [x( i − 1), xi ]

3.-S( x) tiene derivada continua hasta de orden k − 1 en [x0 , xn ]

SPLIN DE GRADO 3 3 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

2. FUNCIONES SPLIN DE GRADO 3


Dados n + 1 datos:

Una spline cúbica que interpola estos datos, es una función S( x) definida como sigue:


 S1 (x) si x ∈ [x0 , x1 ]




S2 (x) si x ∈ [x1 , x2 ]








S3 (x) si x ∈ [x2 , x3 ]

S(x) =


.




.








Sn (x) si x ∈ [x( n − 1), xn ]

Tabla 2: Datos
X Y
x0 y 0
x1 y 1
... ...
xn y n

donde Si (x) es un polinomio cúbico; Si (xi ) = yi , para toda i = 0, 1, ..., n y tal que S( x) tiene
primera y segunda derivadas continuas en [x0 , xn ]

SPLIN DE GRADO 3 4 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

3. EJEMPLO A MANO
Interpolar los siguientes datos mediante un spline cúbico:

Tabla 3: Datos
X Y
2 −1
3 2
5 −7
Definimos un polinomio cúbico en cada uno de los intervalos que se forman:

 a1 x3 + b1 x2 + c1 x + d1 si x ∈ [2; 3]
S(x) =
a2 x3 + b2 x2 + c2 x + d2 si x ∈ [3; 5]

A continuación, hacemos que se cumpla la condición de que la spline debe pasar por los puntos
dados en la tabla. Ası́, tenemos que:

S(2) = −1; entonces: 8a1 + 4b1 + 2c1 + d1 = −1


S(3) = 2; entonces: 27a1 + 9b1 + 3c1 + d1 = 2
S(5) = −7; entonces: 125a2 + 25b2 + 5c2 + d2 = 7
Ahora calculamos la primera derivada de S(x):

 3a1 x2 + 2b1 x + c1 si x ∈ [2; 3]
S , (x) =
3a2 x3 + 2b2 x + c2 si x ∈ [3; 5]

Al igual que en el caso de las splines cuadráticas, se presentan ecuaciones que pueden pre-
sentar discontinuidad en los cambios de intervalo; las posibles discontinuidades son los puntos
donde se cambia de intervalo, en este caso x = 3 .
Para evitar esta discontinuidad, evaluamos x = 3 en los dos polinomios e igualamos:

3a1 (3)2 + 2b1 (3) + c1 = 3a2 (3)2 + 2b2 (3) + c2 ; entonces 27a1 + 6b1 + c1 = 27a2 + 6b2 + c2

Análogamente procedemos con la segunda derivada:



 6a1 x + 2b1 si x ∈ [2; 3]

3a2 x3 + 2b2 si x ∈ [3; 5]


SPLIN DE GRADO 3 5 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

Para lograr que la segunda derivada sea continua:

6a1 (3)2 + 2b1 = 6a2 (3)2 + 2b2 ; entonces 18a1 + 2b1 = 18a2 + 2b2

En este punto contamos con 6 ecuaciones y 8 incógnitas, por lo tanto tenemos 2 grados de
libertad; en general, se agregan las siguientes 2 condiciones:

S 00 (x0 ) = 0 y S 00 (xn ) = 0

De lo cual vamos a obtener:

S 00 (2) = 0; entonces 6a1 (2) + 2b1 = 0; 12a1 + 2b1 = 0

S 00 (5) = 0; entonces 6a2 (5) + 2b2 = 0; 30a2 + 2b2 = 0

Con lo cual, hemos completado un juego de 8 ecuaciones vs. 8 incógnitas, el cual es el


siguiente:

8a1 + 4b1 + 2c1 + d1 = −1


27a1 + 9b1 + 3c1 + d1 = 2
27a2 + 9b2 + 3c2 + d2 = 2
125a2 + 25b2 + 5c2 + d2 = −7
27a1 + 6b1 + c1 = 27a2 + 6b2 + c2
18a1 + 2b1 = 18a2 + 2b2
12a1 + 2b1 = 0
30a2 + 2b2 = 0

Resolviendo el sistema de ecuaciones tenemos:




 a1 = −1,25
 b1 = 0



c1 = 4,25




d1 = −1


 a2 = 0,625
b2 = −3,75




c = 0,5

 2



d2 = −5

SPLIN DE GRADO 3 6 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

Respuesta:
Sustituyendo estos valores en nuestra función inicial, vemos que la spline cúbica para la tabla
de datos dada, queda definida como sigue:

 −1,25x3 + 4,25x + 1 si x ∈ [2; 3]
S(x) =
0,625x3 − 3,75x2 + 0,5x + −5 si x ∈ [3; 5]

4. CODIGO DEL PROGRAMA


function [a,b,c,d]=spline3(X)

n=length(X(1,:));

if X(1,1)>0
for i=1:n-1;
a(i)=X(2,i)+X(2,i+1);
end
else
for i=1:n-1;
a(i)=X(2,i);
end
end
for i=1:n;
a1(i)=X(2,i);
end

for i=1:n-1;
h(i)=X(1,i+1)-X(1,i);
end

for i=2:n-1;
alfa(i)=3/h(i)*(a1(i+1)-a1(i))-3/h(i-1)*(a1(i)-a1(i-1));
end

l(1)=1;
mu(1)=0;
z(1)=0;

SPLIN DE GRADO 3 7 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

for i=2:n-1;
l(i)=2*(X(1,i+1)-X(1,i-1))-h(i-1)*mu(i-1);
mu(i)=h(i)/l(i);
z(i)=(alfa(i)-h(i-1)*z(i-1))/l(i);
end

l(n)=1;
z(n)=0;
c1(n)=0;
for i=n-1:-1:2;
c(i)=z(i)-mu(i)*c1(i+1);
end
for i=n-1:-1:1;
c1(i)=z(i)-mu(i)*c1(i+1);
b(i)=(a1(i+1)-a1(i))/h(i)-h(i)*(c1(i+1)+2*c1(i))/3;
d(i)=(c1(i+1)-c1(i))/(3*h(i));
end

for i=1:n-1;
x=X(1,i):0.1:X(1,i+1);
y=a1(i)+b(i)*(x-X(1,i))+c1(i)*(x-X(1,i)).^2+d(i)*(x-X(1,i)).^3;
hold on;
plot(x,y,’b’);
end

for i=1:n;
hold on;
plot (X(1,i),X(2,i),’*’,’MarkerEdgeColor’,’r’,’LineWidth’,1);
title(’Interpolacion por "spline cubico".’);
end

SPLIN DE GRADO 3 8 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

5. EJECUCION DEL PROGRAMA


Compilando el programa:

Gráfico del ejercicio:

SPLIN DE GRADO 3 9 Jonathan Corella


UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE MÉTODOS NUMÉRICOS

6. BIBLIOGRAFÍA
[1] D. Hearn, M. P. Baker, Gráficas por Computadora, 2o edición. Prentice Hall,Hispanoaméri-
ca S.A., 1994.
[2] C. Delrieux, Introduccón a la Computación Gráfica. Dep de Ingenierı́a Eléctrica, Univer-
sidad Nacional del Sur, 2000.

[3] T. Sederberg, BYU Bézier curves, Chapter 2

[4]J.D. Foley et al, Computer Graphics: Principles and Practice in C, 2nd ed.,Addison Wes-
ley,1992.

SPLIN DE GRADO 3 10 Jonathan Corella

Você também pode gostar