INTERPOLACIÓN DE SPLINES

Anuncio
Cálculo Numérico – Programación Aplicada
INTERPOLACIÓN SEGMENTARIA O SPLINES
La construcción de polinomios de interpolación de grado alto aunque justificable teóricamente 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 subintervalos más pequeños y usar en cada subintervalo polinomios de grado
relativamente bajo, tratando de que la función a trozos definida de 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 nuestra interpolación.
Podemos decir, que una función spline está 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, las splines cúbicas han resultado ser las más adecuadas.
Definición. (Splines de grado k)
Dada nuestra tabla de datos,
donde suponemos que
x0 < x1 < L < x n , y dado
k
un número entero positivo, una función de
interpolación spline de grado k, para la tabla de datos, es una función S (x ) tal que :
i)
S ( xi ) = y i , para toda i = 0, 1, ..., n .
ii)
S (x ) es un polinomio de grado ≤ k en cada subintervalo [xi −1 , xi ] .
iii)
S (x ) tiene derivada continua hasta de orden k − 1 en [x0 , x n ] .
FUNCIONES SPLINES DE GRADO 1
Dados los n + 1 puntos
Una función spline de grado 1 que interpole los datos es simplemente unir cada uno de los puntos
mediante segmentos de recta, como sigue:
1
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
Claramente esta función cumple con las condiciones de la spline de grado 1. Así, tenemos que para este
caso:
 s1 ( x ) si
s ( x ) s

s( x) =  2
 M
sn ( x ) si
x ∈ [x0 , x1 ]
x ∈ [x1 , x2 ]
x ∈ [xn −1 , xn ]
donde:
i)
S j (x) es un polinomio de grado menor o igual que 1
ii)
S (x )
tiene derivada continua de orden k-1=0.
iii) S ( x j ) = y j , para j = 0,1,K , n .
Por lo tanto, la spline de grado 1 queda definida como:
si
 y0 + f [x1 , x0 ]( x − x0 )
 y + f [x , x ]( x − x )
si

1
2 1
1
s( x ) = 
M

 yn −1 + f [xn , xn −1 ]( x − xn −1 ) si
x ∈ [x0 , x1 ]
x ∈ [x1 , x2 ]
x ∈ [xn −1 , xn ]
donde f [ xi , x j ] es la diferencia dividida de Newton.
FUNCIONES SPLINES DE GRADO 2
Veamos un ejemplo concreto, consideremos los siguientes datos:
procedamos a calcular la interpolación por splines de grado 2.
Primero que nada, vemos que se forman tres intervalos:
[3, 4.5], [4.5, 7], [7, 9]
En cada uno de estos intervalos, debemos definir una función polinomial de grado 2, como sigue:
 a1 x 2 + b1 x + c1

s( x ) = a2 x 2 + b2 x + c2
a x2 + b x + c
3
3
 3
si
si
si
x ∈ [3,4.5]
x ∈ [4.5,7 ]
x ∈ [7,9]
Hacemos que la spline pase por los puntos de la tabla de datos, es decir, se debe cumplir que:
2
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
s(3) = 2.5,
s (4.5) =1,
s(7) = 2.5,
s(9) = 0.5
Así, se forman las siguientes ecuaciones:
s(3) = 2.5 ⇒ 9a1 + 3b1 + c1 = 2.5
 ( 4.5) 2 a1 + 4.5b1 + c1 = 1
s ( 4.5) = 1 ⇒ 
2
( 4.5) a2 + 4.5b2 + c2 = 1
49 a2 + 7b2 + c2 = 2.5
s ( 7 ) = 2.5 ⇒ 
 49a3 + 7b3 + c3 = 2.5
s (9) = 0.5 ⇒ 81a3 + 9b3 + c3 = 0.5
Hasta aquí, tenemos un total de 6 ecuaciones con 9 incógnitas.
El siguiente paso es manejar la existencia de las derivadas continuas. En el caso de las splines de grado
2, necesitamos que la spline tenga derivada continua de orden k-1=1, es decir, primera derivada
continua.
Calculamos primero la primera derivada:
 2a1 x + b1

s′( x ) = 2a2 x + b2
 2a x + b
3
 3
si
si
si
x ∈ [3,4.5]
x ∈ [4.5,7]
x ∈ [7,9]
Vemos que esta derivada está formada por segmentos de rectas, que pudieran presentar discontinuidad
en los cambios de intervalo. Es decir, las posibles discontinuidades son x = 4.5 y x = 7 . Por lo tanto
para que s ′(x) sea continua, se debe cumplir que:
2a1 (4.5) + b1 = 2a 2 (4.5) + b2 ⇒ 9a1 + b1 = 9a 2 + b2
También debe cumplirse que:
2a 2 (7) + b2 = 2a 3 (7) + b3 ⇒ 14a 2 + b2 = 14a 3 + b3
Así, tenemos un total de 8 ecuaciones vs. 9 incógnitas; esto nos da un grado de libertad para elegir
alguna de las incógnitas. Elegimos por simple conveniencia
a1 = 0 .
De esta forma, tenemos un total de 8 ecuaciones con 8 incógnitas. Estas son las siguientes:
3b1 + c1 = 2.5
49a3 + 7b3 + c3 = 2.5
4.5b1 + c1 = 1
81a 3 + 9b3 + c3 = 0.5
20.25a 2 + 4.5b2 + c 2 = 1
b1 = 9a 2 + b2
49a 2 + 7b2 + c 2 = 2.5
14a 2 + b2 = 14a 3 + b3
Este sistema de ecuaciones tiene la siguiente forma matricial:
3
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
3
 4 .5

0

0
0

0
1

 0
1
0
0 0
0
0
1
0
0 0
0
0
0 20.25 4.5 1
0
0
0
49
7 1
0
0
0
0
0 0 49
7
0
0
0 0 81
9
0 −9
−1 0
0
0
0
14
1 0 − 14 − 1
0  b1  2.5
0  c1   1 
0   a2   1 
   
0  b2  2.5
=
1   c2  2.5
   
1   a3  0.5
0  b3   0 
   
0  c3   0 
Se obtiene la siguiente solución:
b1 = −1
c1 = 5.5
a 2 = 0.64
a 3 = −1.6
b2 = −6.76
b3 = 24.6
c 2 = 18.46
c3 = −91.3
Sustituyendo estos valores (junto con
a1 = 0 ), obtenemos la función spline cuadrática que interpola la
tabla de datos dada:
− x + 5.5
si x ∈ [3,4.5]


2
s( x ) = 0.64 x − 6.76 x + 18.46 si x ∈ [4.5,7]
 − 1.6 x 2 + 24.6 x − 91.3 si x ∈ [7,9]

La gráfica que se muestra a continuación, contiene tanto los puntos iniciales de la tabla de datos, así
como la spline cuadrática.
5
4
3
2
1
3
4.5
7
9
-1
El siguiente caso, que es el más importante en las aplicaciones, sigue exactamente los mismos pasos
del ejemplo que acabamos de resolver, solamente que en vez de trabajar con polinomios cuadráticos, lo
hace con polinomios cúbicos.
FUNCIONES SPLINES CUBICAS
Dados n + 1 datos:
4
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
Una spline cúbica que interpola estos datos, es una función S (x ) definida como sigue:
 s0 ( x ) si
 s ( x ) si

s(x ) =  1
M

sn −1 ( x ) si
donde cada
x ∈ [x0 , x1 ]
x ∈ [x1 , x2 ]
x ∈ [xn −1 , xn ]
si ( x) es un polinomio cúbico; si ( xi ) = y i , para toda i = 0,1,..., n y tal que s (x) tiene
primera y segunda derivadas continuas en
[x 0 , x n ] .
Ejemplo 1.
Interpolar los siguientes datos mediante una spline cúbica:
Solución.
Definimos un polinomio cúbico en cada uno de los intervalos que se forman:
 a1 x 3 + b1 x 2 + c1 x + d1
s (x ) =  3
2
a2 x + b2 x + c2 x + d 2
si
si
x ∈ [2,3]
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 + d 2 = −7
Ahora calculamos la primera derivada de s (x) :
 3a x 2 + 2b1 x + c1
s ′( x ) =  1 2
3a 2 x + 2b2 x + c 2
si
si
x ∈ [2,3]
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) 2 + 2b1 (3) + c1 = 3a 2 (3) 2 + 2b2 (3) + c 2 ⇒ 27a1 + 6b1 + c1 = 27a 2 + 6b2 + c 2
Análogamente procedemos con la segunda derivada:
 6 a x + 2b1
s ′′( x ) =  1
6 a 2 x + 2b2
si
si
x ∈ [2,3]
x ∈ [3,5]
Para lograr que s ′′(x) sea continua:
6a1 (3) + 2b1 = 6a 2 (3) + 2b2 ⇒ 18a1 + 2b1 = 18a 2 + 2b2
5
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
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 ′′( x 0 ) = 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 + d 1 = −1
27 a1 + 9b1 + 3c1 + d 1 = 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
Cuya forma matricial es la siguiente:
8
 27

0

0
 27

 18
12

 0
4
2
1
0
0
0
9
3
1
0
0
0
0
0
0
27
9
3
0
0
0
125
25
5
6
1
0
− 27
−6
−1
2
2
0
0
0
0
− 18
0
−2
0
0
0
0
0
0
30
2
0
0   a1   − 1 
0   b1   2 
1   c1   2 
  

1   d1   − 7 
=
0  a2   0 
  

0   b2   0 
0   c2   0 
  

0   d 2   0 
Obtenemos la siguiente solución:
a1 = −1.25
a 2 = 0.625
b1 = 7.5
b2 = −9.375
c1 = −10.75
c 2 = 39.875
d 1 = 0 .5
d 2 = −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 x 3 + 7.5 x 2 − 10.75 x + 0.5
s (x ) = 
3
2
0.625 x − 9.375 x + 39.875 x − 50.125
si
si
x ∈ [2,3]
x ∈ [3,5]
Mostramos la gráfica correspondiente a este ejercicio,
6
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
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.
Ejemplo 2.
Interpolar los siguientes datos utilizando splines cúbicas:
Solución.
Nuevamente, definimos un polinomio cúbico en cada uno de los intervalos:
 a1 x 3 + b1 x 2 + c1 x + d1

s ( x ) = a2 x 3 + b2 x 2 + c2 x + d 2
 a x3 + b x 2 + c + d
3
3
3
 3
x ∈ [− 1,1]
x ∈ [1,2]
x ∈ [2,4]
si
si
si
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
a 2 + b2 + c 2 + d 2 = 1
s ( 2) = 5 implica que,
8a 2 + 4b2 + 2c2 + d1 = 5
8a3 + 4b3 + 2c3 + d 2 = 5
Y finalmente s ( 4) = −2 implica que,
64a 3 + 16b3 + 4c3 + d 2 = −2
Enseguida, calculamos la primera derivada:
7
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
 3a1 x 2 + 2b1 x + c1

s′( x ) = 3a2 x 2 + 2b2 x + c2
 3a x 2 + 2b x + c
3
3
 3
si1
si
si
x ∈ [− 1,1]
x ∈ [1,2]
x ∈ [2,4]
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
12 a2 + 4b2 + c2 = 12 a3 + 4b3 + c3
Ahora procedemos a calcular la segunda derivada:
 6a1 x + 2b1

s′′( x) = 6a2 x + 2b2
6a x + 2b
3
 3
si
si
si
x ∈ [− 1,1]
x ∈ [1,2]
x ∈ [2,4]
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
12 a2 + 2b2 = 12 a3 + 2b3 → 6 a2 + b2 = 6 a3 + 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 → 24 a3 + 2b3 = 0 → 12 a3 + b3 = 0
Con esto tenemos un juego de doce ecuaciones con doce incógnitas:
− a1 + b1 − c1 + d1 = −1
a1 + b1 + c1 + d1 = 1
a2 + b2 + c2 + d 2 = 1
8a2 + 4b2 + 2c2 + d 2 = 5
8a3 + 4b3 + 2c3 + d 3 = 5
64 a3 + 16b3 + 4c3 + d 3 = −2
3a1 + 2b1 + c1 = 3a2 + 2b2 + c2
12 a2 + 4b2 + c2 = 12 a3 + 4b3 + c3
3a1 + b1 = 3a2 + b2
6 a2 + b2 = 6 a3 + b3
− 3a1 + b1 = 0
12 a3 + b3 = 0
8
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
Este sistema tiene la siguiente forma matricial:
−1
1

0

0
0

0
3

0
3

0

− 3
 0
1 −1
1 1
0 0
0 0
0 0
1
1
0
0
0
0
2
0
1
0
1
0
0 0
0
0
0 − 3 − 2 −1
0 12 4
1
0 − 3 −1 0
0 6
1
0
0 0
0
0
0 0
0
0
0
1
0
0
0
0
0
0
0
1
8
0
0
0
1
4
0
0
0
1
2
0
0
0
1
1
0
0
0
0
0
0
0
0
0  a1   − 1
0  b1   1 
0  c1   1 
   
0  d1   5 
1  a2   5 
   
64 16 4 1  b2  − 2
=
0
0
0 0  c2   0 
   
− 12 − 4 − 1 0 d 2   0 
0
0
0 0  a3   0 
   
− 6 − 1 0 0  b3   0 
   
0
0
0 0  c3   0 
12
1
0 0  d3   0 
0
0
0
0
8
0
0
0
0
4
0
0
0
0
2
Obtenemos la solución:
a1 =
51
140
a2 = −
b1 =
153
140
21
297
b2 =
10
35
c1 =
89
140
c2 = −
d1 = −
153
40
a3 =
24
288
b3 = −
35
35
c3 =
1867
732
d3 = −
70
35
473
48
d2 =
70
35
Por lo tanto, la spline cúbica es:
51 3
153 2
89
 140
x + 140
x + 140
x − 153
si x ∈ [− 1,1]
40
 21 3 297 2 473
48
s( x) = − 10 x + 35 x − 70 x + 35
si x ∈ [1,2]
3
2
 24 x − 288 x + 1867 x − 732 si x ∈ [2,4]
35
70
35
 35
Finalmente, mostramos la gráfica correspondiente
8
6
4
2
-1
1
2
4
-2
En forma general
9
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
Dada una función f definida en
[a, b] y un conjunto de números, llamados los nodos
a = x0 < x1 < ... < x n = b , un interpolante cúbico de trazador, S, para f es una función que satisface
las siguientes condiciones:
[
]
a) S es un polinomio cúbico, denotado Sj, en el subintervalo x j , x j +1 para cada j = 0, 1,..., n − 1 ;
b)
S ( x j ) = f ( x j ) para cada j = 0, 1,..., n ;
c)
S j +1 ( x j +1 ) = S j ( x j +1 ) para cada j = 0, 1,..., n − 2 ;
d)
S ′j +1 ( x j +1 ) = S ′j ( x j +1 ) para cada j = 0, 1,..., n − 2 ;
e)
S ′j′+1 ( x j +1 ) = S ′j′ ( x j +1 ) para cada j = 0, 1,..., n − 2 ;
f)
se satisface una del siguiente conjunto de condiciones de frontera:
S ′′( x0 ) = S ′′( x n ) = 0 (frontera libre)
S ′( x0 ) = f ′( x0 ) y S ′( x n ) = f ′( x n ) (frontera sujeta)
La ecuación b) indica que el spline cúbico se ajusta a cada uno de los puntos, que es continua c), y que
es continua en pendiente y curvatura d) y e), a lo largo de toda la región generada por los puntos.
Para construir el interpolante cúbico de trazador para una función f dada, se pueden aplicar las
condiciones de la definición a los polinomios cúbicos.
S j ( x) = a j + b j ( x − x j ) + c j ( x − x j ) 2 + d j ( x − x j ) 3 para cada j = 0, 1,..., n − 1 .
Para x = x j : S j ( x j ) = a j = f ( x j )
y si se aplica la condición (c),
a j +1 = S j +1 ( x j +1 ) = S j ( x j +1 )
= a j + b j ( x j +1 − x j ) + c j ( x j +1 − x j ) 2 + d j ( x j +1 − x j ) 3 para cada j = 0, 1,..., n − 2 .
introducimos la notación h j = x j +1 − x j para cada j = 0, 1,..., n − 1 .
Si, además definimos
a n = f ( x n ) , se puede ver que esto implica que la ecuación
a j +1 = a j + b j h j + c j h j + d j h j
2
3
De una manera similar, definimos
para cada j = 0, 1,..., n − 1 .
bn = S ′( x n ) y observamos
S ′j ( x) = b j + 2c j ( x − x j ) + 3d j ( x − x j ) 2
para x = x j :
S ′j ( x j ) = b j
para cada j = 0, 1,..., n − 1 .
Aplicando la condición (d),
b j +1 = S ′j +1 ( x j +1 ) = S ′j ( x j +1 )
= b j + 2c j h j + 3d j h j para cada j = 0, 1,..., n − 1 .
2
Otra relación entre los coeficientes se puede obtener
S ′j′( x ) = 2c j + 6d j ( x − x j )
10
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
S ′j′ ( x j ) = 2c j
para x = x j :
para cada j = 0, 1,..., n − 1 .
Aplicando la condición (e) y definiendo
cn =
S ′′( x n )
2
:
c j +1 = S ′j′+1 ( x j +1 ) = S ′j′′( x j +1 )
= c j + 3d j h j para cada j = 0, 1,..., n − 1 .
Despejando d j de la ecuación anterior y sustituyendo este valor
dj =
c j +1 − c j
(1)
3h j
a j +1 = a j + b j h j + c j h j +
2
hj
a j +1 . = a j + b j h j +
(c j +1 − c j )
3
hj = a j + bjhj +
2
hj
2
3
(2c j + c j +1 )
2
3
(2c j + c j +1 )
(2)
b j +1 = b j + 2c j h j + 3d j h j = b j + 2c j h j + (c j +1 − c j ) h j = b j + (c j + c j +1 )h j
2
b j +1 = b j + (c j + c j +1 )h j
(3)
para cada j = 0, 1,..., n − 1 .
y luego con una reducción del índice, para b j −1 ,
b j = b j −1 + ( c j + c j −1 ) h j −1
(4)
De (2) despejo b j ,
bj. =
(a j +1 . - a j )
hj
−
hj
3
( 2c j + c j +1 )
(5)
con una reducción del índice
b j−1. =
(a j . - a j−1) h j−1
−
(c j + 2c j−1) (6)
h j−1
3
Reemplazando (5) y (6) en (4), tenemos
b j = b j −1 + (c j + c j −1 )h j −1
(a j +1 − a j )
hj
−
hj
3
(4)
(2c j + c j +1 ) =
(a j − a j −1 )
h j −1
−
h j −1
3
(c j + 2c j −1 ) + h j −1 (c j + c j −1 )
Operando algebraicamente, nos queda
h j −1c j −1 + 2(h j −1 + h j )c j + h j + c j +1 =
3
3
(a j +1 − a j ) −
(a j − a j −1 ) (7)
hj
h j −1
para cada j = 1, 2, ..., n − 1 . Este sistema tiene como incógnitas sólo a
{c }
{h }
j
n −1
j
j =0
y
{a }
n −1
j
j =0
están dados por el espaciamiento entre los nodos
n
j
{x }
n
j =0
j =0
ya que los valores
y los valores de f en los
nodos.
11
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
Nótese que una vez que se conocen los valores de c j encontrar las constantes restantes b j de la
ecuación (4) y d j de la ecuación (1) y construir los polinomios cúbicos Sj es una cuestión sencilla.
Si se cumplen las condiciones de frontera libre,
S ′′( x0 ) = S ′′( x n ) = 0 implican que
0 = S ′′( x0 ) = 2c0 + 6d 0 ( x0 − x0 )
⇒ c0 = 0
cn =
S ′′( x n )
2
= 0 ⇒ cn = 0
Las dos ecuaciones
c0 = 0 y c n = 0 junto con las ecuaciones en (7) producen un sistema lineal
descripto por la ecuación vectorial
Ax = b , donde A es la matriz de (n+1) por (n+1).
1
0
0
h0
2(h0 + h1 )
h1
0
h3
2(h1 + h2 )
0
h2
A=
0
hn−2
0
0


3
3


(a 2 − a1 ) − (a1 − a 0 )


h1
h0


b=
M

 3 (a n − a n−1 ) − 3 (a n −1 − a n − 2 )
 hn −1

hn − 2


0


2(hn −2 + hn−1 )
0
0
hn −1
1
c 0 
c 
 1
x = c 2 
 
M
c n 
12
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Cálculo Numérico – Programación Aplicada
13
Ing. Adriana M. Apaza – JTP Cálculo Numérico
Descargar