Sei sulla pagina 1di 23

Splines Cúbicos Métodos Numéricos

Aproximación mediante splines cúbicos


El origen del concepto spline proviene del uso de una lámina de plástico delgada
llamada curvígrafo ("spline") en el trazado de curvas suaves a través de un
conjunto de puntos (Sheid 1991).Las funciones "spline" son ecuaciones cúbicas
que modelan el comportamiento de las curvas realizadas por dicho instrumento,
permitiendo unir en forma suave y continua una serie de puntos.

Esta interpolación se llama interpolación segmentaria o interpolación por splines.


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
nuestra interpolación , esta interpolación posee una gran finura, y que inclusive
es usado para el diseño por computadora, por ejemplo, de tipos de letra.

La más populares son los polinomios cúbicos por tramos y en especial los splines
cúbicos (naturales), por las siguientes razones:

 Son fáciles de calcular y evaluar.


 Son fáciles de derivar y sus derivadas aproximan a las derivadas de fx.
 Son fáciles de integrar y se usan para aproximar la integral de fx.
 Modelan con suavidad la tendencia de un conjunto de datos.

1, Breve historia
Tomado de NA. Digest.v.98,#s6. 19 de julio de 1998.Mait to na.digest@na-
net.oml.gov Information about NA-NET:Mail to nahelp@na-net.ornl.gov URL :
http://www.netlib.org/na-net/na_home.html

Hace dos semanas puse aquí una pregunta acerca de las conexiones entre el
desarrollo de aproximaciones de splines y el diseño de cuerpos automotores, y
recibí cerca de 30 respuestas, todas ellas muy informativas. Dado que muchos de
ellos me pidieron que mostrara lo que había aprendido, decidí escribir un breve
resumen y subirlo al compendio. Esta es la razón de estas notas.

Se acepta comúnmente que la primera referencia matemática de los splines es el


trabajo de Schoenberg [s], donde probablemente fue el primer lugar donde el
término “spline” se usó en conexión con la aproximación polinomial tenue por
piezas. Sin embargo, estas ideas tienen sus raíces en las industrias de aviación y

Construcción de barcos. En el reenvio a [BBB], Robin Forrest describe el


“localizar”, una técnica en la industria británica de aviación usada durante la
Segunda Guerra Mundial, para construir plantillas para aviones, pasando tablones
de madera delgadas a través de puntos en el suelo de un local de diseño grande.

Página 1
Splines Cúbicos Métodos Numéricos

Las plantillas estarían puestas en puntos discretos (llamados “patos “por Forrest;
Schoenberg usa “perros” o “ratas”) y entre estos puntos asumiría formas de un
mínimo de energía de tensión. De acuerdo a Forrest, una motivación posible para
un modelo matemático de este proceso fue la pedida potencial de los
componentes del diseño críticos en toda una nave si el local fuera bombardeado
por el enemigo. Esto promovió el “localizamiento cónico”, el cual usaba secciones
cónicas para modelar la posición de la curva entre los “patos”. El “localizamiento
cónico” fue reemplazado por lo que llamaríamos splines a principios de los 60´s
basados en el trabajo de J.C.Ferguson de Boeing y (tiempo después) por
M.A.Sabin de British Aircraft. Lo que considero muy interesante es que Forrest
dice que la palabra “spline” viene de un dialecto Anglicano del Este.

El uso de splines para modelar cuerpos automotores parece tener un sinfín de


comienzos independientes. El crédito lo piden a nombre de De Castelau de
Citroen, Bezler de Renault, and Birkhoff, Garabedian, y de Boor de General Mortos
(GM), todos ellos por sus trabajos realizados a finales de la década de 1950´s o
principios de los años 1960´s. Al menos uno de los trabajos de De Casteljau fue
publicado, pero no ampliamente, en 1959. La obra de D Boor de GM resultó en un
conjunto de escritos siendo publicados a principios de los 60´s, incluyendo algo del
trabajo fundamental sobre los B-splines. El trabajo también fue hecho en Pratt
yThitney Aircfraft, donde dos de los autores de [ANw] (el primer libro en sí acerca
de splines) fueron contratados, y el Modelo Basin de David Taylor, hecho por
Feodor Theilheimer

Referencias

[anw] Ahlberg, Nielson and Wash, The Theory of splines and Theri applications,
1967

[B] Birkhoff. “Fluid dynamics, reactor computations and surface representation”. In


a History of Scientific Computation (Steve Nash, editor), 1990

[BBB] Bartelsm Beatty and Barsky, an introduction to Splines for use in Computer
Graphics and Geometric Modeling 1987

[BdB] Birkhof and de Boor, “Piecewise polynomial interpolation and approximation”


Proc. General Motors Symposium of 1964

[D] Davis . “B-splines and Geometric design “. SIAM news vol.29 no, 5

[S] Schoenberg. “contributions to the problem of approximation of equidistant data


by analytic functions” Quart appl math. Vol. 4

[Y] Young. “Garrtett Dirkhoff and applled mathematics”. Notices of the AMS, vol.44

Página 2
Splines Cúbicos Métodos Numéricos

2. Teoría Matemática
Los polinomios de grado mayor tienen naturaleza oscilatoria y fluctuaciones sobre
una porción pequeña del intervalo estudiado puede inducir cambios muy grandes
sobre un rango considerable, restringen el uso cuando se aproximan muchas
delas funciones en situaciones físicas reales.

La técnica llamada aproximación polinómica segmentaria busca resolver este


problema dividiendo el intervalo de la función f

en una colección de subintervalos y construir polinomios aproximadamente


diferentes en cada uno.

La aproximación de este tipo más empleada es la interpolación cúbica de spline


Esta técnica requiere que en el intervalo el polinomio sea diferenciable
continuamente y que además tenga segunda derivada. Pero a pesar de esta
condición, el trazador cúbico no supone que las derivadas del interpolante
coinciden con las de la función.

A esta forma de aproximar se le conoce como aproximación polinomial


fragmentaria.

Aproximación polinomial fragmentaria.

La Aproximación polinomial fragmentaria es la interpolación lineal fragmentaria


que consiste en unir una serie de puntos.

Mediante una serie de segmentos de recta, como se aprecia en la figura 3.7

La aproximación por funciones lineales muestra una desventaja; no se tiene la


seguridad de que haya derivabilidad en los extremos de los subintervalos, lo cual
dentro de un contexto geométrico significa que la función de interpolación o
interpolante no es “suave” en dichos puntos. A menudo las condiciones físicas
indican claramente que se requiere la suavidad y que la función aproximante debe
ser continuamente derivable.

Otro procedimiento consiste en emplear un polinomio fragmentario del tipo


Hermite. Por ejemplo, si los valores de y de se conocen en los puntos
podemos emplear un polinomio de Hermite de grado tres en
cada uno de los subintervalos [ ][ ] [ ] para obtener una
función continuamente derivable con el intervalo [ ].

Página 3
Splines Cúbicos Métodos Numéricos

Si queremos determinar el polinomio cúbico de Hermite apropiado en determinado


intervalo, hasta calcular ( ) para ese intervalo. Puesto que los polinomios
interpolantes de Lagrange necesarios para calcular son de primer grado,
podemos hacer el cálculo sin gran dificultad, Sin embargo, para utilizar los
polinomios fragmentarios de Hermite en la interpolación general, necesitamos
conocer la derivada de la función que va ser aproximada, lo cual muchas veces no
es posible.

El tipo más simple de función de polinomio fragmentario diferenciable en un


intervalo entre [ ] es la función obtenida al ajustar un polinomio cuadrático
entre cada par consecutivo de nodos. Esto se hace construyendo una cuadrática
en [ ] que concuerde con la función en y en ; y así sucesivamente. Un
polinomio cuadrático general tiene tres constantes arbitrarias: el término
constante, el coeficiente de x y el coeficiente de y únicamente se requieren dos
condiciones para ajustar los datos en los extremos de cada intervalo, por ellos,
existe flexibilidad que permite seleccionar la cuadrática de modo que la
interpolante tenga una derivada continua en [ ]. El problema de este
procedimiento se presenta cuando hay que especificar las condiciones referentes
a la derivada de la interpolante en los extremos y .No hay constantes
suficientes para cerciorarse de que se satisfagan las condiciones.

Página 4
Splines Cúbicos Métodos Numéricos

Splines cúbicos

La aproximación polinómica fragmentaria más común utiliza polinomios entre cada


par consecutivo de nodos y recibe el nombre de interpolación de trazadores
cúbicos. Un polinomio cúbico general contiene cuatro constantes; así pues, el
procedimiento del trazador cúbico ofrece suficiente flexibilidad para garantizar que
el interpolante no sólo sea continuamente diferenciable en el intervalo, sino que
además tenga una segunda derivada continua en el intervalo. Sin embargo, en la
construcción del trazador cúbico no se supone que las derivadas del interpolante
concuerdan con las de la función, ni siquiera en los nodos.

Definición.

Dada una función definida en [ ] y un conjunto de nodos


un interpolante de spline cúbico S para es una función que cumple con
las condiciones siguientes:

a. ( )es un polinomio cúbico, denotado ( ),el subintervalo [ ] para


cada ;
b. ( ) ( ) para cada ;
c. ( ) ( ) para cada ;
d. ( ) ( ) para cada
e. ( ) ( ) para cada
f. Una de las siguientes condiciones de frontera se satisface:
(i) ( ) ( ) (frontera libre o natural);
(ii) ( ) ( ) y ( ) ( ) (frontera sujeta).

Página 5
Splines Cúbicos Métodos Numéricos

Aunque los splines cúbicos se definen con otras condiciones de frontera, las
condiciones dadas en ( ) son suficientes en este caso. Cuando se presentan las
condiciones de frontera libre, el trazador recibe el nombre de spline natural y su
gráfica se aproxima a la forma que adoptaría una varilla larga y flexible si la
hiciéramos pasar por los puntos {( ( )) ( ( )) ( ( ))}

En términos generales, en las condiciones de frontera sujeta se logran


aproximaciones más exactas, ya que abarcan más información acerca de la
función. Pero para que se cumpla este tipo de condición de frontera, se requiere
tener los valores de la derivada en los extremos o bien una aproximación precisa
de ellos.

Construcción de un spline cúbico

Para construir la interpolante de spline cúbico de determinada función ,


aplicamos las condiciones de la definición a los polinomios cúbicos:

( ) ( ) ( ) ( ) ,

Para cada . Como ( ) ( ) puede aplicarse la


condición (c) para obtener

Para cada

Los términos se utilizaran varias veces en este desarrollo, por eso


conviene introducir la notación más simple

Para cada . Si también definimos ( ) entonces la


ecuación

(I)

Será válida para cada

De manera análoga, defina ( ) y observe que

Página 6
Splines Cúbicos Métodos Numéricos

Significa que ( ) para cada . Al aplicar la condición (d)


obtenemos

(II)

Para cada

Al definir ( ) y aplicar la condición (e) se obtiene otra relación entre los


coeficientes de , En este caso para

(III)

Al despejar en la ecuación (III) y sustituir este valor en las ecuaciones (I) y (II)
para cada se obtienen las ecuaciones.

(IV)

(V)

La relación final que incluye los coeficientes se obtiene resolviendo la ecuación


correspondiente en la forma de la ecuación (IV) , primero para

(VI)

Y luego, con una reducción del índice, para . Esto da como resultado

Cuando sustituimos estos valores en la ecuación obtenida de la ecuación (V) con


el índice reducido en 1, obtenemos el sistema de ecuaciones lineales

(VII)

Para cada .

Página 7
Splines Cúbicos Métodos Numéricos

Splines naturales

Si está definida en , entonces tendrá una


interpolante única de spline natural S en los nodos es decir, una
interpolante de spline que cumple con las condiciones de frontera ( ) y
( )

Demostración. En este caso las condiciones de frontera significan que


( ) y que

( ) ( ),

así que . Las dos ecuaciones y junto a las ecuaciones de (VII)

Producen un sistema lineal descrito por la ecuación vectorial , donde A es


la matriz de ( ) ( )

La matriz A es estrictamente dominante en sentido diagonal.

Y donde b y x son los vectores

Página 8
Splines Cúbicos Métodos Numéricos

Spline cúbicos sujetos

SI f está definida en a = < <... < = b , y es diferenciable en a y b, entonces f


tiene un único trazador sujeto que interpola los nodos , ,..., , es decir, un
interpolante de trazador que cumple las condiciones de frontera S´(a) = f´(a) y
S´(b) = f´(b)

Demostración: puesto que f(a)= S´(a) = S´( ) = , podemos ver que la


ecuación

.............. (*)

Con j = 0implica que

En consecuencia:

De manera semejante:

De modo que la ecuación (*) con j = n – 1 implica que

Y que

Página 9
Splines Cúbicos Métodos Numéricos

Las ecuaciones

Determinan el sistema línea Ax = b, donde:

La matriz A es estrictamente dominante en sentido diagonal, en consecuencia el


sistema tiene una solución única para , ,. ..,

Página 10
Splines Cúbicos Métodos Numéricos

3. Solución de problemas
1) Construya un spline natural cúbico que pase por los puntos (1,2) ;(2,3) y
(3,5)

Solución.

Este spline consiste de dos cúbicas. La primera para el intervalo [ ], denotada


por:

Y la otra para [ ], denotada por:

Existen 8 constantes que deben determinarse, lo que requiere de 8 condiciones.


Cuatro de ellas proceden del hecho de que los splines deben coincidir con los
datos en los nodos. Por tanto.

Dos más provienen del hecho de que ( ) ( )y ( ) ( ) .Estas son:

( ) ( ) y ( ) ( )

Las últimas dos surgen de las condiciones de frontera natural:

( ) y ( )

Página 11
Splines Cúbicos Métodos Numéricos

Resolviendo este sistema de ecuaciones tenemos el spline.

2) Interpolar los siguientes datos mediante una spline cúbica:

X 2 9 5
Y -1 2 -7

Solución.

Definimos un polinomio cúbico en cada uno de los intervalos que se forman:

 a x3  b x 2  c x  d1 si x  2,3
s x    1 3 1 2 1
a2 x  b2 x  c2 x  d 2 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  8a1  4b1  2c1  d1  1

s3  2  27a1  9b1  3c1  d1  2

s5  7  125a2  25b2  5c2  d2  7

Página 12
Splines Cúbicos Métodos Numéricos

Ahora calculamos la primera derivada de s x  :

 3a x 2  2b1 x  c1 si x  2,3
s  x    1 2
3a 2 x  2b2 x  c2 si x  3,5

Al igual que en el caso de las splines cuadráticas, se presentan ecuaciones que


pueden presentar 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  2b1 3  c1  3a2 3  2b2 3  c2


2 2

o lo que es lo mismo:

27a1  6b1  c1  27a2  6b2  c2

Análogamente procedemos con la segunda derivada :

 6a x  2b1 si x  2,3
s  x    1
6a 2 x  2b2 si x  3,5

Para lograr que s  x  sea continua:

6a1 3  2b1  6a2 3  2b2

18a1  2b1  18a2  2b2

Página 13
Splines Cúbicos Métodos Numéricos

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  x0   0
s  x n   0

De lo cual vamos a obtener:

s2  0  6a1 2  2b1  0

12a1  2b1  0

s5  0  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


27 a1  9b1  3c1  d1  2
27 a 2  9b2  3c 2  d 2  2
125a 2  25b2  5c 2  d 2  7
27 a1  6b1  c1  27 a 2  6b2  c 2
18a1  2b1  18a 2  2b2
12a1  2b1  0
30a 2  2b2  0

Página 14
Splines Cúbicos Métodos Numéricos

Cuya forma matricial es la siguiente:

8 4 2 1 0 0 0 0  a1    1 
27
 9 3 1 0 0 0 0  b1   2 
0 0 0 0 27 9 3 1  c1   2 
    
0 0 0 0 125 25 5 1  d1   7 

27 6 1 0  27 6 1 0   a2   0 
    
18 2 0 0  18 2 0 0  b2   0 
12 2 0 0 0 0 0 0  c2   0 
    
 0 0 0 0 30 2 0 0 d 2   0 

Usando Mathematica, obtenemos la siguiente solución:

a1   1.25
b1  7.5
c1   10.75
d1  0.5
a2  0.625
b2   9.375
c2  39.875
d2   50.125

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.25 x3  7.5 x 2  10.75 x  0.5 si x  2,3


s x   
0.625 x  9.375 x  39.875 x  50.125 si x  3,5
3 2

Página 15
Splines Cúbicos Métodos Numéricos

Mostramos la gráfica correspondiente a este ejercicio, creada también en


Mathematica.

Obsérvese la finura con la que se unen los polinomios cúbicos que conforman a
la spline. Prácticamente ni se nota que se trata de dos polinomios diferentes!. Esto
es debido a las condiciones que se impusieron sobre las derivadas de la función.
Esta finura casi artística, es la que permite aplicar las splines cúbicas, para
cuestiones como el diseño de letras por computadoras, o bien a problemas de
aplicación donde la interpolación que se necesita es de un carácter bastante
delicado, como podría tratarse de datos médicos sobre algún tipo de enfermedad.

Página 16
Splines Cúbicos Métodos Numéricos

3) Interpolar los siguientes datos utilizando splines cúbicas:

x -1 1 2 4
y -1 1 5 -2

Solución.

Nuevamente, definimos un polinomio cúbico en cada uno de los intervalos:

 a1 x3  b1 x 2  c1 x  d1 si x   1,1

s( x)  a2 x3  b2 x 2  c2 x  d 2 si x  1,2
 a x3  b x 2  c  d si x  2,4
 3 3 3 3

Después, hacemos que la spline pase por los puntos dados en la tabla. Así,
tenemos que:

s(1)  1 Implica que,

 a1  b1  c1  d1  1

s(1)  1 Implica que,

a1  b1  c1  d1  1

a2  b2  c2  d2  1

s(2)  5 Implica que,

8a2  4b2  2c2  d2  5

8a3  4b3  2c3  d3  5

Página 17
Splines Cúbicos Métodos Numéricos

Y finalmente s(4)  2 implica que,

64a3  16b3  4c3  d3  2

Enseguida, calculamos la primera derivada:

 3a1 x 2  2b1 x  c1 si1 x   1,1



s( x)  3a2 x 2  2b2 x  c2 si x  1,2
3a x 2  2b x  c si x  2,4
 3 3 3


Vemos entonces, que las posibles discontinuidades de s (x) son x  1 y x  2 .

Por lo tanto, para hacer que s (x) sea continua, igualamos las ecuaciones
correspondientes en ambos valores:

3a1  2b1  c1  3a2  2b2  c2

12a2  4b2  c2  12a3  4b3  c3

Ahora procedemos a calcular la segunda derivada:

 6a1 x  2b1 si x   1,1



s( x)  6a2 x  2b2 si x  1,2
6a x  2b
 3 3 si x  2,4

Página 18
Splines Cúbicos Métodos Numéricos

Nuevamente, las posibles discontinuidades son x  1 y x  2 . Por lo tanto, para



que s (x) sea continua, se igualan las ecuaciones en ambos valores:

6a1  2b1  6a2  2b2  3a1  b1  3a2  b2

12a2  2b2  12a3  2b3  6a2  b2  6a3  b3

Finalmente, se agregan las condiciones de que la doble derivada se anule en los


puntos inicial y final de la tabla.

En este caso,

s(1)  0  6a1  2b1  0  3a1  b1  0

s(4)  0  24a3  2b3  0  12a3  b3  0

Con esto tenemos un juego de doce ecuaciones vs. Doce incógnitas:

 a1  b1  c1  d1  1

a1  b1  c1  d1  1

a2  b2  c2  d2  1

8a2  4b2  2c2  d2  5

8a3  4b3  2c3  d3  5

64a3  16b3  4c3  d3  2

3a1  2b1  c1  3a2  2b2  c2

12a2  4b2  c2  12a3  4b3  c3

Página 19
Splines Cúbicos Métodos Numéricos

3a1  b1  3a2  b2

6a2  b2  6a3  b3

 3a1  b1  0

12a3  b3  0

Este sistema tiene la siguiente forma matricial:

1 1 1 1 0 0 0 0 0 0 0  a1    1
0
1
 1 1 1 0 0 0 0 0 0 0 0  b1   1 
0 0 0 0 1 1 1 1 0 0 0 0  c1   1 
    
0 0 0 0 8 4 2 1 0 0 0 0  d1   5 
0 0 0 0 0 0 0 0 8 4 2 1   a2   5 
    
0 0 0 0 0 0 0 0 64 16 4 1  b2   2

3 2 1 0  3  2 1 0 0 0 0 0  c2   0 
    
0 0 0 0 12 4 1 0  12  4  1 0 d 2   0 
3 1 0 0  3 1 0 0 0 0 0 0  a3   0 
    
0 0 0 0 6 1 0 0  6  1 0 0  b3   0 
    
 3 1 0 0 0 0 0 0 0 0 0 0  c3   0 
 0 0 0 0 0 0 0 0 12 1 0 0  d3   0 

Usando Mathematica, obtenemos la solución:

51 21 24
a1  a2   a3 
140 , 10 , 35

153 297 288


b1  b2  b3  
140 , 35 , 35

Página 20
Splines Cúbicos Métodos Numéricos

89 473 1867
c1  c2   c3 
140 , 70 , 70

153 48 732
d1   d2  d3  
40 , 35 , 35

Por lo tanto, la spline cúbica es:

 140 x  140
51 3
x  140
153 2 89
x  153
40 si x   1,1
 21 3 297 2 473
s( x)   10 x  35 x  70 x  35 48
si x  1,2
 24 x 3  288 x 2  1867 x  732 si x  2,4
 35 35 70 35

Finalmente, mostramos la gráfica correspondiente (creada en Mathematica):

-1 1 2 4

-2

Página 21
Splines Cúbicos Métodos Numéricos

4. Algoritmos
El spline cubico natural. Matlab, por defecto, calcula splines cúbicos con la
condición not-a-knot, que es cierta relación entre derivadas en los puntos
extremos y los inmediatos. Solo se pueden calcular splines naturales con un
toolbox. El código que sigue implementa el cálculo del spline cubico natural de una
colección de puntos.
La entrada
es:
x: la lista de las coordenadas x de los puntos
y: la lista de las coordenadas y de los puntos

Devuelve un “objeto" de Matlab que se denomina polinomio a trozos, que describe


exactamente un objeto polinomial definido a trozos: los intervalos en los que está
definido vienen dados por el vector x y su valor en un t (que hay que computar
utilizando la función ppval)

% spline cubico 'natural ': en ambos extremos , la


% derivada segunda es 0.
% la entrada es una nube de puntos con al menos
% dos puntos
function [f] = spline_cubico (x, y)
n = length (x) -1;
if(n <=1 | length (x) ~= length (y))
8 warning ('Wrong data ')
f= [];
return
end
breaks = x;
a = y (1:n);
h = diff (x);
F = zeros (n);
alpha = zeros (n, 1);
for i=1:n
18 if(i> 1& i < n)
F(i ,[i -1 i i +1]) = [h(i -1) , 2*( h(i -1) + h(i)), h(i)] ;
alpha (i) = 3*( y(i+1) -y(i))/h(i) - 3*( y(i) - y(i -1) )/h(i -1) ;
else
F(i,i) = 1;
alpha (i) = 0;
end
i=i +1;
end
c = (F\ alpha ) ';
28 b = zeros (1,n);
d = zeros (1,n);
i = 1;
while (i<n)

Página 22
Splines Cúbicos Métodos Numéricos

while (i<n)
b(i) = (y(i +1) -y(i))/h(i) - h(i) *(c(i +1) +2* c(i)) /3;
i=i +1;
end
d (1:n -1) = diff (c) ./(3* h(1:n -1) );
b(n) = b(n -1) + h(n -1) *(c(n)+c(n -1) );
d(n) = (y(n +1) -y(n)-b(n)*h(n)-c(n)*h(n) ^2) /h(n) ^3;
38 f = mkpp (x ,[d; c; b ;a ]');
end

Un ejemplo de uso podría ser el siguiente, para comparar el spline cúbico con la
gráfica de la función seno:

> x = linspace (-pi , pi , 10) ;

> y = sin (x);

> f = spline_cubico (x, y);

> u = linspace (-pi , pi , 400) ;

% Lagrange interpolation polynomial

% A single base polynomial is computed at

% each step and then added ( multiplied by

4 % its coefficient ) to the final result .

% input is a vector of x coordinates and

% a vector (of equal length ) of y coordinates

% output is a polynomial in vector form ( help poly ).

function [l] = lagrange (x,y)

n = length (x);

l = 0;

for m=1:n

b = poly (x ([1:m -1 m +1: n]));

c = prod (x(m)-x ([1:m -1 m +1: n]));

14 l = l + y(m) * b/c;

end

Página 23

Potrebbero piacerti anche