Logo Passei Direto
Material
Study with thousands of resources!

Text Material Preview

Splines
Splines lineares.
Splines quadráticos.
Splines cúbicos.
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.
Sumário.
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:
Splines
Ou, em forma abreviada:
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.
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
sendo:
Quando e :
Splines
Substituindo en , fica:
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.
2do passo. Calcular os polinómios de dois em dois pontos.
Para :
 
Splines
Para :
Splines
Para :
Para :
Splines
Para :
Splines
Portanto, o Spline linear correspondente á tabela é:
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.
Portanto verifica a condição de interpolação.
Portanto verifica a condição de interpolação.
 
 
Splines
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
Splines quadráticos. (Splines de segunda ordem)
Para o cálculo dos splines quadráticos, devemos utilizar a expressão:
Para calcular e , temos as expressões:
e
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		
 Como o número de pontos é igual a 3, devem-se obter 2 polinómios.
Soluçao.
1ro passo. Escrever as expressões gerais na ordem certa.
Splines
2do passo. Calcular os polinómios de dois em dois pontos.
Para :
Para :
Splines
Portanto:
O spline quadrático correspondente á tabela é:
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 . 
Portanto verifica a condição de interpolação.
Splines
Como os dois polinómios verificam a condição de interpolação, então fica provado que é o Spline linear correspondente á tabela. 
Portanto verifica a condição de interpolação.
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:
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.
 
Podem-se obter as primeiras equações, aplicando a condição de interpolação a cada um dos polinómios:
Splines
 
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:
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:
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 é: 
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.
Splines
Exercício 3.
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.
Temos que obter 8 equações para poder achar os valores de .
Splines
2do passo. Aplicar a condição de interpolação.
 
Já temos 4 equações. 
Splines
3ro passo. Aplicar a continuidade da primeira derivada.
Portanto:
4to passo. Aplicar a continuidade da segunda derivada.
Portanto:
Splines
5to passo. Aplicar a condição de spline natural.Splines
6to passo. Plantear o sistema de equações resultante.
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 é:
Portanto:
O spline quadrático correspondente á tabela é:
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 . 
Portanto verifica a condição de interpolação.
Splines
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
Splines
Script do spline cúbico.
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