Você está na página 1de 44

Splines

Sumário.
1. Splines lineares.
2. Splines quadráticos.
3. Splines cúbicos.
4. Uso de Matlab.
Introdução.
Quando o número de pontos a interpolar é muito
grande, o polinómio interpolador, calculado pelos
métodos conhecidos nas aulas anteriores, terá
também um grau muito grande. Além das
dificuldades para achar esses polinómios, soma-se
a dificuldade para trabalhar com eles uma vez
calculados.
Splines
Os splines são formas de interpolação que
permitem resolver esses problemas, pois são
polinómios a troços, calculados de dois em dois
pontos.
Se temos pontos ,, , denota-se o spline por , sendo:

{
S1 ( 𝑥 ) , 𝑥0 ≤ 𝑥 ≤ 𝑥1
S (𝑥 )= S2 (𝑥 ) 𝑥1≤ 𝑥 ≤ 𝑥2

S 𝑛 ( 𝑥) 𝑥𝑛 − 1 ≤ 𝑥 ≤ 𝑥𝑛
Ou, em forma abreviada:
S 𝑖 ( 𝑥 ) , 𝑥𝑖 − 1 ≤ 𝑥 ≤ 𝑥𝑖 , 𝑖=1,2 , ⋯ , 𝑛
Splines
Logo, para achar o spline temos de calcular os
polinómios em cada troço (de dois em dois
pontos). Portanto, para pontos, é preciso achar
polinómios.
Os spline podem ser nomeadamente de primeira,
de segunda e de terceira ordem.
1. Splines lineares. (Splines de primeira ordem).
Para calcular a expressão geral dum spline linear,
tomamos dois pontos quaisquer duma tabela, e ,
logo obtemos um polinómio de interpolação entre
eles. Para isso podemos usar, por exemplo, a
interpolação de Lagrange.
Splines
S 𝑖 ( 𝑥 ) =𝑦 𝑖 −1 𝐿𝑖 − 1+ 𝑦 𝑖 𝐿𝑖 (1)
sendo:
( 𝑥 − 𝑥 𝑗)
𝑖
𝐿 𝑘= ∏ , 𝑘=𝑖 −1 ,𝑖
𝑗 =𝑖 −1 ( 𝑥𝑘 − 𝑥 𝑗 )
𝑗≠ 𝑘
Quando e :

}
𝑖
( 𝑥 − 𝑥 𝑗) ( 𝑥 − 𝑥𝑖 )
𝐿𝑖 − 1= ∏ =
( 𝑥 𝑘 − 𝑥 𝑗 ) ( 𝑥 𝑖 −1 − 𝑥𝑖 )
𝑗 =𝑖 −1
𝑗≠ 𝑘 (2)
𝑖
( 𝑥 − 𝑥 𝑗) ( 𝑥 − 𝑥𝑖 − 1 )
𝐿𝑖 = ∏
𝑗 =𝑖 −1
=
( 𝑥 𝑘 − 𝑥 𝑗 ) ( 𝑥 𝑖 −1 − 𝑥𝑖 − 1 )
𝑗≠ 𝑘
Splines
Substituindo en , fica:
( 𝑥 − 𝑥𝑖) ( 𝑥 − 𝑥𝑖 − 1 )
S 𝑖 ( 𝑥 ) = 𝑦 𝑖 −1 + 𝑦𝑖 𝑖=1,2 , ⋯ ,𝑛( 3)
( 𝑥𝑖 −1 − 𝑥 𝑖 ) ( 𝑥𝑖 − 𝑥 𝑖 −1 )

Exercício 1.
Ache o spline linear correspondente à tabela:
Splines
Solução:
Observação: Como o número de pontos é igual a 6,
tomados dois a dos, devem-se obter 5 polinómios.
1ro passo. Escrever a expressão geral do spline.

( 𝑥 − 𝑥𝑖) ( 𝑥 − 𝑥𝑖 − 1 )
S 𝑖 ( 𝑥 ) = 𝑦 𝑖 −1 + 𝑦𝑖 ,𝑖=1,2 , ⋯ , 𝑛(3)
( 𝑥𝑖 −1 − 𝑥 𝑖 ) ( 𝑥𝑖 − 𝑥 𝑖 −1 )
2do passo. Calcular os polinómios de dois em dois
pontos.  
Para :

¿3
(
𝑥 − (− 2 )
−3 − ( −2 )
+0
) (
𝑥 − ( −3 )
− 2− ( −3 )
=¿
)
Splines
¿3 (
𝑥+2
−1
+0 ) (
𝑥 − ( −3 )
− 2 − ( −3 ) )
=− 3 ( 𝑥+2 ) =−3 𝑥 − 6

∴ S 1 ( 𝑥 )=− 3 𝑥 − 6
Para :
( 𝑥 − 𝑥 2) ( 𝑥 − 𝑥1 )
S2 (𝑥 ) = 𝑦1 + 𝑦2 =¿
( 𝑥1− 𝑥2) ( 𝑥2− 𝑥1)

¿0
( ) (
𝑥 −(− 1)
−1 − ( − 1 )
+− 2
)
𝑥 − ( −2 )
−1 − ( −2 )
=¿

− 2(
1 )
𝑥 +1 𝑥+ 2
¿0 =− 2 ( 𝑥 +2 ) =− 2 𝑥 − 4
−2+1
∴ S 2 ( 𝑥 )=− 2 𝑥 − 4
Splines
Para :
( 𝑥 − 𝑥3) ( 𝑥 − 𝑥2 )
S 3 ( 𝑥 ) =𝑦 2 +𝑦3 =¿
( 𝑥 2 − 𝑥3 ) ( 𝑥3 − 𝑥 2 )
¿ −2 (
𝑥−0
−1 −0
+0 ) (
𝑥 −( − 1)
0 − (− 1 )
=¿
)
¿ −2
𝑥
−1
+0
𝑥 +1
0+1 ( )
=2 𝑥
∴ S 3 ( 𝑥 )=2 𝑥
Para :
( 𝑥 − 𝑥4 ) ( 𝑥 − 𝑥3 )
S 4 ( 𝑥 )= 𝑦 3 + 𝑦4 =¿
( 𝑥3− 𝑥4 ) (𝑥4 − 𝑥3)
Splines

∴ S 4 ( 𝑥 ) =𝑥
Para :
( 𝑥 − 𝑥5) ( 𝑥 − 𝑥4 )
S 5 ( 𝑥 ) =𝑦 4 +𝑦5 =¿
( 𝑥 4 − 𝑥5 ) ( 𝑥5 − 𝑥 4 )

(¿2
𝑥 −4
2− 4 ) ( +( 1 )) (
𝑥 −2
4−2
=2 )( 𝑥−4
−2
+ )
𝑥−2
2
=¿
𝑥 𝑥
¿ − ( 𝑥 − 4 )+ −1= − + 3
2 2
𝑥
∴ S 5 ( 𝑥 )=− +3
2
Splines
Portanto, o Spline linear correspondente á tabela é:

{
−3 𝑥 − 6 , 𝑠𝑒 −3 ≤ 𝑥 ≤ −2
¿ − 2 𝑥 − 4 se − 2 ≤ 𝑥 ≤− 1
¿ 2 𝑥 se −1 ≤ 𝑥 ≤ 0
S (𝑥 )=
¿ 𝑥 se 0 ≤ 𝑥 ≤ 2
𝑥
¿ − +3 se 2 ≤ 𝑥 ≤ 4
2
Splines
3ro passo. Verificação.
Para verificar o spline, deve-se verificar cada um dos
polinómios, nos pontos a partis dos quais foram obtidos,
ou seja, o polinómio no intervalo , o polinómio no
intervalo , etc.
S 1 ( 𝑥 0 ) =S 1 (− 3 ) =−3 ( − 3 ) +6=9 − 6=3=𝑦 0
S 1 ( 𝑥 1 )=S 1 ( − 2 )=− 3 ( −2 ) +6=6 − 6=0= 𝑦 1
Portanto verifica a condição de interpolação.

Portanto verifica a condição de interpolação.


Splines
S 3 ( 𝑥2 ) = S3 ( −1 ) =2 ( −1 )=−2=𝑦 2
S 3 ( 𝑥3 )= S 3 ( 0 )= 2 ( 0 )=0= 𝑦 3
Portanto verifica a condição de interpolação.

Portanto verifica a condição de interpolação.

Portanto verifica a condição de interpolação.


Como todos os polinómios verificam a condição de
interpolação, então fica provado que é o Spline linear
correspondente á tabela.
Splines
4to passo. Representação gráfica.
Splines
Como pode observar-se no gráfico, a passagem de
uma curva para outra, nos nós de interpolação,
não é suave, é dizer, há uma mudança na
inclinação. O significado matemático desse facto
é que, embora a curva correspondente ao spline é
contínua, não existe a derivada nos nós. Essa
limitação pode ser corregida, garantindo que
exista a derivada nos nós de interpolação, e que as
derivadas laterais nesses pontos sejam iguais. O
conceito que permite obter esse resultado é o
spline quadrático, que estudaremos a seguir.
Splines
2. Splines quadráticos. (Splines de segunda ordem)

Para o cálculo dos splines quadráticos, devemos


utilizar a expressão:

𝑀𝑖 2
S 𝑖 ( 𝑥 ) = 𝑦 𝑖 −1 +𝑚𝑖 −1 ( 𝑥 − 𝑥𝑖 −1 ) + ( 𝑥 − 𝑥𝑖 − 1 ) ,
2 (4 )
𝑥 𝑖 − 1 ≤ 𝑥 ≤ 𝑥𝑖
Para calcular e , temos as expressões:

( 𝑚𝑖 − 𝑚𝑖 −1 ) ( 𝑦 𝑖 − 𝑦 𝑖 −1 )
M 𝑖= ( 5 ) e 𝑚𝑖 =2 ( 𝑥 − 𝑥 ) −𝑚 𝑖 −1 ( 6 )
( 𝑥𝑖 − 𝑥 𝑖 −1 ) 𝑖 𝑖− 1
Splines
Para o cálculo do spline quadrático, calcula-se
primeiro a fórmula logo a seguir, a fórmula , e
finalmente a fórmula Como é uma equação
quadrática, os troços de curvas correspondem a
parábolas. Deve observar-se que para calcular o
valor , é preciso conhecer de antemão o valor , é
por isso que o valor de deve ser dado. Na
realidade, o valor de corresponde à derivada do
polinómio spline no ponto . .
Splines
Exercício 2.
Ache o spline quadrático correspondente à tabela:

1
Soluçao.
Como o número de pontos é igual a 3, devem-se
 

obter 2 polinómios.
1ro passo. Escrever as expressões gerais na ordem certa.
( 𝑦 𝑖 − 𝑦 𝑖 −1 ) 𝑚𝑖 − 𝑚𝑖 − 1
𝑚𝑖 =2 − 𝑚 𝑖 −1 , M 𝑖 =
( 𝑥 𝑖 − 𝑥𝑖 − 1 ) 𝑥 𝑖 − 𝑥𝑖 −1
𝑀𝑖 2
S 𝑖 𝑥 = 𝑦 𝑖 −1 +𝑚𝑖 −1 ( 𝑥 − 𝑥𝑖 −1 ) +
( ) ( 𝑥 − 𝑥𝑖 − 1 ) , 𝑥 𝑖 −1 ≤ 𝑥 ≤ 𝑥 𝑖
2
Splines
2do passo. Calcular os polinómios de dois em dois pontos.
Para :
( 𝑦1 − 𝑦 0) ( −1 −3 )
𝑚1=2 −𝑚 0=2 −1=2 ( −4 ) −1=−9
( 𝑥1 − 𝑥 0 ) (0 − ( − 1) )
𝑚1 − 𝑚0 −9 − 1
M 1= = =−10
𝑥1− 𝑥0 0 −( − 1)
𝑀1 2 −10 2
S 1 ( 𝑥 )= 𝑦 0 +𝑚0 ( 𝑥−𝑥 0 ) + ( 𝑥−𝑥 0 ) =3+( 1 ) ( 𝑥− ( −1 )) + ( 𝑥− ( −1 ))
2 2
¿ 3+ ( 𝑥+1 ) − 5 ( 𝑥+1 ) = 4+ 𝑥 − 5 ( 𝑥 2 +2 𝑥 +1 )
2

S 1 ( 𝑥 )=− 5 𝑥2 −9 𝑥 −1
Para :
( 𝑦 2− 𝑦1) ( 0 −( −1) )
𝑚2= 2 −𝑚 1=2 − ( − 9 )=2+9=11
( 𝑥2− 𝑥1) (1 − 0 )
Splines
𝑚2 −𝑚1 11− ( −9 )
M 2= = = 11+ 9=20
𝑥 2 − 𝑥1 ( 1− 0 )
𝑀2 2 20 2
S 2 ( 𝑥 ) =𝑦 1 +𝑚1 ( 𝑥− 𝑥1 ) + ( 𝑥− 𝑥1 ) =−1+( −9 )( 𝑥−0 ) + ( 𝑥−0 )
2 2
S 2 ( 𝑥 ) =−1 −9 𝑥+10 𝑥 2
Portanto:
O spline quadrático correspondente á tabela é:

{
2
− 5 𝑥 −9 𝑥 −1 se −1 ≤ 𝑥 ≤ 0
S (𝑥 )= 2
¿ 10 𝑥 − 9 𝑥 −1 se 0 ≤ 𝑥 ≤ 1
Splines
3ro passo. Verificação.
Para verificar o spline, deve-se verificar cada um
dos polinómios, nos pontos a partir dos quais foram
obtidos, ou seja, o polinómio no intervalo e o
polinómio no intervalo .
S 1 ( 𝑥 0 ) =S 1 (− 1 )=− 5 𝑥 2 −9 𝑥 −1=9 − 6=3=𝑦 0
S 1 ( 𝑥 1 )=S 1 ( 0 )=− 5 𝑥 2 −9 𝑥 −1=6 − 6=0=𝑦 1
Portanto verifica a condição de interpolação.
Splines
S 2 ( 𝑥 1 ) =S 2 ( 0 ) =10 𝑥 2 −9 𝑥 −1=4 − 4=0= 𝑦 1
S 2 ( 𝑥 2 ) =S 2 ( 1 )=10 𝑥 2 − 9 𝑥 −1=2− 4=− 2= 𝑦 2

Portanto verifica a condição de interpolação.

Como os dois polinómios verificam a condição de


interpolação, então fica provado que é o Spline linear
correspondente á tabela.
Splines
4to passo. Representação gráfica.
Splines
Como pode observar-se no gráfico, a curva correspondente
ao spline quadrático, permite eliminar o problema do spline
linear, pois a curva, além de ser contínua, também é suave,
ou seja, a derivada existe em cada nó de interpolação,
sendo iguais as derivadas laterais nesses pontos. Mas ainda
mantem-se uma dificuldade: há uma mudança da
concavidade na passagem de uma curva para outra, o que
significa que as segundas derivadas laterais nesses pontos
são diferentes. Essa limitação pode ser corregida,
garantindo que exista a segunda derivada nos nós de
interpolação, e que as segundas derivadas laterais nesses
pontos sejam iguais. O conceito que permite obter esse
resultado é o spline cúbico, que estudaremos a seguir.
Splines
3. Splines cúbicos. (Splines de terceira ordem).
Para os splines cúbicos, não existe uma fórmula como nos
splines quadráticos. Neste caso partimos da forma geral
dum polinómio de terceiro grau. Como temos pontos,
devem-se calcular polinómios:
𝑠 𝑖 ( 𝑥 ) =𝑎 𝑖 𝑥 3 +𝑏𝑖 𝑥 2+𝑐 𝑖 𝑥+ 𝑑𝑖 , 𝑥𝑖 −1 ≤ 𝑥 ≤ 𝑥𝑖 ,𝑖=1,2 , ⋯ , 𝑛

Como cada polinómio tem 4 coeficientes desconhecidos,


para determinar os polinómios, deve-se determinar o valor
de coeficientes, e para isso é preciso construir um sistema
de equações com incógnitas.
Tentemos então de encontrar as equações.
Splines
Em primeiro lugar, representemos todos os polinómios que
devemos calcular e os intervalos onde estão definidos.
𝑠 1 ( 𝑥 )= 𝑎1 𝑥 3 +𝑏1 𝑥2 +𝑐 1 𝑥+ 𝑑 1 , 𝑥0 ≤ 𝑥 ≤ 𝑥1
𝑠 2 ( 𝑥 )= 𝑎 2 𝑥 3+𝑏 2 𝑥 2+ 𝑐2 𝑥+ 𝑑2 , 𝑥 1 ≤ 𝑥 ≤ 𝑥 2
𝑠 3 ( 𝑥 ) =𝑎 3 𝑥 3 +𝑏3 𝑥2 +𝑐 3 𝑥 +𝑑 3 , 𝑥 2 ≤ 𝑥 ≤ 𝑥 3

𝑠 𝑛 ( 𝑥 ) =𝑎 𝑛 𝑥 3 +𝑏𝑛 𝑥 2+𝑐 𝑛 𝑥+ 𝑑𝑛 , 𝑥 𝑛 −1 ≤ 𝑥 ≤ 𝑥 𝑛

Podem-se obter as primeiras equações, aplicando a


condição de interpolação a cada um dos polinómios:
Splines
𝑠 1 ( 𝑥 0 ) =𝑎 1 𝑥 03+ 𝑏1 𝑥 02 +𝑐1 𝑥0 + 𝑑1 = 𝑦 0
𝑠 1 ( 𝑥 1 )= 𝑎1 𝑥 13 +𝑏1 𝑥 12 +𝑐1 𝑥1 +𝑑 1= 𝑦 1
𝑠 2 ( 𝑥 1 )= 𝑎 2 𝑥13 +𝑏 2 𝑥12 +𝑐 2 𝑥 1+ 𝑑 2= 𝑦 1
𝑠 2 ( 𝑥 2 ) =𝑎 2 𝑥 23+ 𝑏2 𝑥 22+ 𝑐2 𝑥2 + 𝑑2 = 𝑦 2

𝑠 𝑛 ( 𝑥𝑛 − 1 )= 𝑎𝑛 𝑥𝑛 −13 +𝑏𝑛 𝑥𝑛 −12+ 𝑐𝑛 𝑥𝑛 −1 +𝑑 𝑛= 𝑦 𝑛 − 1


𝑠 𝑛 ( 𝑥𝑛 )=𝑎 𝑛 𝑥𝑛 3+ 𝑏𝑛 𝑥𝑛 2+𝑐 𝑛 𝑥𝑛 + 𝑑𝑛 = 𝑦 𝑛

Como são polinómios, e a cada um correspondem


valores, então temos equações, a metade das que
precisamos.
Splines
Para obtermos as restantes equações, analisemos que
propriedade precisasse-se que tenha a curva resultante do
spline.
Uma dessas propriedades é que seja suave, e portanto deve
ser derivável em cada nó, e as derivadas dos dois
polinómios que confluem em cada nó devem ser iguais.
Como temos pontos, se tiramos os pontos inicial e final
ficam pontos, e esse será o número de equações que
podemos obter:
𝑠 1′ ( 𝑥 1) = 𝑠2′ ( 𝑥 1 ) , 𝑠 2′ ( 𝑥2 ) = 𝑠3′ ( 𝑥 2 ) , ⋯ , 𝑠𝑛 − 1′ ( 𝑥𝑛 − 1 )= 𝑠𝑛 ′ ( 𝑥 𝑛 −1 )

Essa propriedade é conhecida como Continuidade da


primeira derivada.
Splines
A outra propriedade é que não mude a concavidade nos
nós, e portanto deve ser duas vezes derivável em cada nó, e
as segundas derivadas dos dois polinómios que confluem
em cada nó devem ser iguais. Desta forma obtém-se outras
equações:
Desta forma obtém-se outras equações:
𝑠 1′ ′ ( 𝑥1 ) =𝑠 2′ ′ ( 𝑥1 ) , 𝑠 2′ ′ ( 𝑥2 ) =𝑠3′ ′ ( 𝑥 2 ) , ⋯ , 𝑠 𝑛 −1′ ′ ( 𝑥 𝑛 −1 ) =𝑠 𝑛′ ′ ( 𝑥 𝑛 −1 )

Essa propriedade é conhecida como Continuidade da


segunda derivada.
Se efectuamos a soma das equações, vemos que o número
é: .
Splines
Portanto faltam duas equações. Existem várias formas de
obter estas equações; neste curso vamos optar por uma das
mais utilizadas: considerar que o spline é natural, para o
qual as segundas derivadas no ponto inicial e final são
iguais a zero, isto é:
𝑠 1′ ′ ( 𝑥0 ) =0 e 𝑠 𝑛′ ′ ( 𝑥 𝑛 )= 0
E desta forma, podem-se obter as equações, e resolvendo
o sistema de equações, podemos conhecer todos os
coeficientes e o problema fica resolvido.
Exercício 3.
Splines
Ache o spline cúbico correspondente à tabela:

Soluçao.
Como o número de pontos é igual a 3, devem-se obter 2
polinómios.
1ro passo. Representar os polinómios que devemos calcular
e os intervalos onde estão definidos.
𝑠 1 ( 𝑥 )= 𝑎1 𝑥 3 +𝑏1 𝑥2 +𝑐 1 𝑥+ 𝑑 1 , − 1 ≤ 𝑥 ≤ 0
𝑠 2 ( 𝑥 )= 𝑎 2 𝑥 3+𝑏 2 𝑥 2+ 𝑐2 𝑥+ 𝑑2 , 0 ≤ 𝑥 ≤ 1
Temos que obter 8 equações para poder achar os valores de .
Splines
2do passo. Aplicar a condição de interpolação.

−𝑎 1 +𝑏1 − 𝑐 1+ 𝑑1 =3 ( 1 Equa çã o )
ra

3 2
𝑠 1 ( 0 )= 𝑎1 ( 0 ) + 𝑏1 ( 0 ) +𝑐1 ( 0 )+ 𝑑 1=¿
𝑑 1=− 1 ( 2 Equa çã o )
da

3 2
𝑠 2 ( 0 ) =𝑎 2 ( 0 ) +𝑏2 ( 0 ) +𝑐 2 ( 0 ) + 𝑑2 =¿
𝑑 2= − 1 ( 3 Equa çã o )
ra

3 2
𝑠 2 (1 )=𝑎 2 ( 1 ) + 𝑏2 (1 ) +𝑐 2 ( 1 )+ 𝑑 2=¿

𝑎 2+ 𝑏2 +𝑐 2 +𝑑 2= 0 ( 4 Equa çã o )
ta

Já temos 4 equações.
Splines
3ro passo. Aplicar a continuidade da primeira derivada.
𝑠 1′ ( 𝑥 1) = 𝑠2′ ( 𝑥 1 )
𝑠 1′ ( 𝑥 1) =3 𝑎 1 𝑥 12+ 2𝑏 1 𝑥1 +𝑐 1=3 𝑎1 ( 0 )2 +2 𝑏1 ( 0 ) +𝑐 1=𝑐 1
𝑠 2′ ( 𝑥 1 )=3 𝑎2 𝑥12 +2 𝑏2 𝑥 1+ 𝑐2 =3 𝑎 2 ( 0 )2 +2 𝑏2 ( 0 ) +𝑐 2=𝑐 2
Portanto: 𝑐 1=𝑐 2 ⇔ 𝑐 1 − 𝑐 2= 0 ( 5ta Equa çã o )
4to passo. Aplicar a continuidade da segunda derivada.
𝑠 1′ ′ ( 𝑥1 ) =𝑠 2′ ′ ( 𝑥1 )
𝑠 1′ ′ ( 𝑥1 ) =6 𝑎 1 𝑥 1+2 𝑏1 =6 𝑎 1 ( 0 ) +2 𝑏1=2𝑏 1
𝑠 2′ ′ ( 𝑥1 ) =6 𝑎 2 𝑥 1 +2 𝑏2=6 𝑎 2 ( 0 )+ 2𝑏 2=2 𝑏2
Portanto:
2 𝑏1=2 𝑏 2 ⇔ 𝑏1=𝑏2 ⇔ 𝑏1 − 𝑏2 =0 ( 6 ta Equa çã o )
Splines
5to passo. Aplicar a condição de spline natural.
𝑠 1′ ′ ( 𝑥0 ) =0 e 𝑠 2′ ′ ( 𝑥2 ) =0

− 3 𝑎 1 +𝑏1= 0 ( 7 Equa çã o )
ta

3 𝑎 2+ 𝑏2= 0 ( 8 Equa çã o )
va
Splines
6to passo. Plantear o sistema de equações resultante.

{
− 𝑎 1 + 𝑏 1 − 𝑐 1 + 𝑑 1 =3
𝑑 1 =− 1
𝑑 2 =− 1
𝑎2 + 𝑏 2 + 𝑐 2 + 𝑑 2 =0
𝑐 1 − 𝑐2 =0
𝑏 1 − 𝑏2 = 0
− 3 𝑎1 + 𝑏1 =0
3 𝑎 2 + 𝑏2 = 0

O Sistema de Equações Lineares (SEL) é de 8 equações


com 8 incógnitas, e seria muito complicado resolver com os
métodos estudados. Por enquanto, daremos a solução, mas
na segunda parte da aula, quando desenvolvamos os
algoritmos de Matlab, poderemos resolver qualquer SEL,
independentemente do número de equações e incógnitas.
Splines
A solução é: 5 15 3
𝑎 1= 𝑏 1= 𝑐 1=− 𝑑 1=− 1
4 4 2
5 15 3
𝑎 2=− 𝑏2= 𝑐 2=− e 𝑑2 =1
4 4 2
Portanto:
O spline quadrático correspondente á tabela é:

{
5 3 15 2 3
𝑥 + 𝑥 − 𝑥 − 1 se − 1≤ 𝑥 ≤ 0
4 4 2
( )
S 𝑥 =
5 3 15 2 3
¿− 𝑥 + 𝑥 − 𝑥 − 1 se 0 ≤ 𝑥 ≤ 1
4 4 2
Splines
7mo passo. Verificação.
Para verificar o spline, deve-se verificar cada um dos
polinómios, nos pontos a partis dos quais foram obtidos,
ou seja, o polinómio no intervalo e o polinómio no
intervalo .
5 3 15 2 3
S 1 ( 𝑥 0 ) =S 1 (− 1 )= (− 1 ) + ( −1 ) − (− 1 ) − 1=¿
4 4 2
5 15 3
¿− + + −1=3= 𝑦 0
4 4 2
S 1 ( 𝑥 1 )=S 1 ( 0 )=¿
3
5 5 3 15 2 3 15 2 3
¿ − 𝑥 + 𝑥 − 𝑥−1 + ( 0 ) − ( 0 ) −1=𝑦 1
4 4 4 2 4 2
Portanto verifica a condição de interpolação.
Splines
5 3 15 2 3
S 2 ( 𝑥 1 ) =S 2 ( 0 ) =− ( 0 ) + ( 0 ) − ( 0 ) −1=−1=𝑦 1
4 4 2
5 3 15 2 3
S 2 ( 𝑥 2 ) =S 2 ( 1 )=−
( 1 ) + ( 1 ) − ( 1 ) − 1=¿
4 4 2
5 15 3
¿− + − −1=0= 𝑦 2
4 4 2
Portanto verifica a condição de interpolação.

Como os dois polinómios verificam a condição de


interpolação, então fica provado que é o Spline quadrático
correspondente á tabela.
Splines
8vo passo. Representação gráfica.
Splines
4. Uso de Matlab.
Depois de desenvolver os algoritmos para o cálculo dos
splines e resolver alguns exercícios, podemos passar á
utilização do Matlab para cada um destes métodos.
Analisemos os aspectos semelhantes aos outros tipos de
interpolação e os aspectos específicos dos splines.
Como semelhança temos que, como nos casos anteriores,
os scripts, constam de três blocos de instruções:
1- Introdução de dados.
2. Cálculo.
3. Verificação e gráfico.
Splines
A principal diferença consiste na representação gráfica,
pois como nos splines não existe um único polinómio em
todo o domínio, não é possível utilizar a instrução ezplot,
devido a que essa instrução pode ser utilizada com uma
única função.
É por isso que, para poder achar a gráfica dos splines
quadráticos e cúbicos, é preciso utilizar a instrução , que
permite obter um conjunto grande de pontos em cada um
dos sub-intervalos onde estão definidos os polinómios,
sendo o ponto inicial, o ponto final, e o passo, ou seja, a
distancia entre dois pontos. Enquanto for menor, mais
próximos estarão os pontos e o gráfico representará o
polinómio de uma maneira más exacta.
Splines
Script do spline linear.
syms x real;
X=[-1 0 2];Y=[2 -3 1];
i=1;
s=Y(i)*(x-X(i+1))/(X(i)-X(i+1))+Y(i+1)*(x-X(i))/(X(i+1)-X(i))
subs(s,x,X(i))==Y(i)
subs(s,x,X(i+1))==Y(i+1)
i=i+1;
s=Y(i)*(x-X(i+1))/(X(i)-X(i+1))+Y(i+1)*(x-X(i))/(X(i+1)-X(i))
subs(s,x,X(i))==Y(i)
subs(s,x,X(i+1))==Y(i+1)
plot(X,Y,'ro-'),grid
Splines
Script do spline quadrático.
syms x real;
X=[-1 0 2];Y=[2 -3 1];m(1)=-1;
i=1;
m(i+1)=2*(Y(i+1)-Y(i))/(X(i+1)-X(i))-m(i)
M(i+1)=(m(i+1)-m(i))/(X(i+1)-X(i))
s1=Y(i)+m(i)*(x-X(i))+(M(i+1)/ 2)*(x-X(i)) ^2
subs(s1,x,X(i))==Y(i),subs(s1,x,X(i+1))==Y(i+1)
subs(diff(s1),x,X(i))==m(i),subs(diff(s1),x,X(i+1))==m(i+1)
i=i+1;
m(i+1)=2*(Y(i+1)-Y(i))/(X(i+1)-X(i))-m(i)
M(i+1)=(m(i+1)-m(i))/(X(i+1)-X(i))
s2=Y(i)+m(i)*(x-X(i))+(M(i+1)/2)*(x-X(i))^2
subs(s2,x,X(i))==Y(i),subs(s2,x,X(i+1))==Y(i+1)
subs(diff(s2),x,X(i))==m(i),subs(diff(s2),x,X(i+1))==m(i+1)
s1=inline(s1);s2=inline(s2);
xx1=-1:0.01:0;xx2=0:0.01:2;
plot(xx1,s1(xx1),'g-',xx2,s2(xx2),'b-',X,Y,'ro'),grid
Script do spline cúbico.
Splines
syms x real; % Declara x como variável simbólica
xx=[-2 0 1 3];yy=[2 -2 1 0]; % Introduz os valores x e y da tabela
format rat
% Matriz de coeficientes A e vector coluna das constantes Y
A1=[-8 4 -2 1 0 0 0 0 0 0 0 0];
A2=[0 0 0 1 0 0 0 0 0 0 0 0];
A3=[0 0 0 0 0 0 0 1 0 0 0 0];
A4=[0 0 0 0 1 1 1 1 0 0 0 0];
A5=[0 0 0 0 0 0 0 0 1 1 1 1];
A6=[0 0 0 0 0 0 0 0 27 9 3 1];
A7=[0 0 1 0 0 0 -1 0 0 0 0 0];
A8=[0 0 0 0 3 2 1 0 -3 -2 -1 0];
A9=[0 2 0 0 0 -2 0 0 0 0 0 0];
A10=[0 0 0 0 6 2 0 0 -6 -2 0 0];
A11=[-12 2 0 0 0 0 0 0 0 0 0 0];
A12=[0 0 0 0 0 0 0 0 18 2 0 0];
A=[A1;A2;A3;A4;A5;A6;A7;A8;A9;A10;A11;A12]
Y=[2;-2;-2;1;1;0;0;0;0;0;0;0]
X=linsolve(A,Y) % Resolve o SEL AX=Y
Splines
s1=poly2sym([X(1) X(2) X(3) X(4)]) % calcula s1 em forma simbólica
subs(s1,x,[xx(1) xx(2)])==[yy(1) yy(2)] % Verifica s1
s1=inline(s1) % Converte s1 para um objecto inline s1
s2=poly2sym([X(5) X(6) X(7) X(8)]) % calcula s2 em forma simbólica
subs(s2,x,[xx(2) xx(3)])==[yy(2) yy(3)] % Verifica s2
s2=inline(s2)% Converte s2 para um objecto inline s2
s3=poly2sym([X(9) X(10) X(11) X(12)]) % calcula s3 em forma simbólica
subs(s3,x,[xx(3) xx(4)])==[yy(3) yy(4)] % Verifica s3
s3=inline(s3)% Converte s3 para um objecto inline s3
x1=xx(1):0.01:xx(2); % declara x1 como o intervalo onde verifica s1
x2=xx(2):0.01:xx(3); % declara x2 como o intervalo onde verifica s2
x3=xx(3):0.01:xx(4); % declara x3 como o intervalo onde verifica s3
plot(x1,s1(x1),'b-',x2,s2(x2),'g-',x3,s3(x3),'k-',xx,yy,'ro'),grid % realiza o gráfico

Você também pode gostar