Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Oscilações
Consideremos a função
2013/05/07 MN 1
2251
1)(
xxf
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Oscilações
clear all
close all
figure(1)
x = linspace(-1,1,5);
y = 1./(1+25*x.^2);
xx = linspace(-1,1);
yy = 1./(1+25*xx.^2);
plot(x,y,'o',xx,yy,’LineWidth’,3)
hold on
p = polyfit(x,y,4);
y4 = polyval(p,xx);
plot(x,y,'o',xx,y4,'r‘,’LineWidth’,3)
2013/05/07 MN 2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Oscilações
clear all
close all
figure(1)
x = linspace(-1,1,11);
y = 1./(1+25*x.^2);
xx = linspace(-1,1);
yy = 1./(1+25*xx.^2);
plot(x,y,'o',xx,yy,'LineWidth',3)
hold on
p = polyfit(x,y,10);
y10 = polyval(p,xx);
plot(x,y,'o',xx,y10,'r','LineWidth',3)
2013/05/07 MN 3
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-0.5
0
0.5
1
1.5
2
Este é o fenómeno de Runge
Interpolação por secções
Como acabámos de ver, por vezes não é
possível interpolar dados com uma só
função. Recorre-se então à interpolação
por secções. Em cada intervalo, emprega-
se uma função diferente, mas, pelo menos
visualmente, nos pontos de transição têm
de ser concordantes.
2013/05/07 MN 4
Polinómios e splines
a) polinómio de ordem 3
b) polinómio de ordem 5
c) polinómio de ordem 7
d) Spline Linear
sete polinómios de ordem 1
2013/05/07 MN 5
Cálculo da spline
• Os coeficientes são calculados para cada
subintervalo.
• O número de pontos(fi) empregue
depende da ordem da spline que nós
vamos usar.
2013/05/07 MN 7
Cálculo da spline a) As splines de ordem 1 ligam os
pontos dados com segmentos de recta
• passam nos pontos
b) As splines de ordem 2 determinam quadráticas que entre cada par de pontos
• passam nos pontos
• as primeiras derivadas são iguais nos pontos interiores
c) As splines de ordem 3 determinam cúbicas que entre cada par de pontos
• passam nos pontos
• as primeiras e segundas derivadas são iguais nos pontos interiores
2013/05/07 MN 8
Splines Cúbicas
São as mais usadas porque é o menor grau que
dá o aspecto de suavidade requerido para a
interpolação:
1. Grau 1Primeira derivada descontínua
2. Grau 2Segunda derivada descontínua,
necessidade de fixação do respectivo valor
3. Grau 4Aparecem os problemas de
polinómios de grau elevado (oscilações)
2013/05/07 MN 9
Splines Cúbicas
Para o cálculo das splines cúbicas podemos
escrever que a curva número i é dada por
Dados n pontos correspondem-lhes n-1
intervalos e 4(n-1) incógnitas para resolver
todos o coeficientes.
2013/05/07 MN 10
six ai bi x xi ci x xi
2di x xi
3
Splines Cúbicas Equações:
resultam da obrigatoriedade de passagem nos
extremos dos intervalos.2(n-1).
a primeira derivada contínua nos pontos interiores
n-2.
a segunda derivada contínua nos pontos interiores
n-2.
2013/05/07 MN 11
sixi fi ai fi
sixi1 fi si xi1 ai bi xi1 xi ci xi1 xi
2di xi1 xi
3 fi
si' xi1 si1
' xi1 bi 2ci xi1 xi 3di xi1 xi 2bi1
si'' xi1 si1
'' xi1 2ci 6di xi1 xi 2ci1
Splines Cúbicas
Temos um total de 4n-6 equações com 4n-4
incógnitas, podemos impor condições aos
dois extremos
1. Segunda derivada nulaspline natural
2. Valor da primeira derivada pré-
estabelecido no primeiro e último ponto.
3. Considerar que se força a terceira
derivada a ser contínua no segundo e no
penúltimo nó. 2013/05/07 MN 12
Interpolação com M/O
Splines cúbicasfunção de Runge clear all
close all
figure(1)
x = linspace(-1,1,9);
y = 1./(1+25*x.^2);
xx = linspace(-1,1);
yy = spline(x,y,xx);
yr=1./(1+25*xx.^2);
plot(x,y,'o',xx,yy,'k',xx,yr,'r','LineWidth',1)
2013/05/07 MN 14
Interpolação com M/O
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
2013/05/07 MN 15
Interpolação com M/O
figure(2)
yc=[1 y -4];
yyc=spline(x,yc,xx);
plot(x,y,'o',xx,yyc,'k',xx,yr,'r')
2013/05/07 MN 16
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Interpolação com M/O
Esta função, spline, emprega geralmente a
opção 3 da spline cúbica (not-a-knot). Se
y contiver mais dois valores que o x então
o primeiro e o último dos valores são as
derivadas nos pontos extremidades,
opção 2 (clamped).
2013/05/07 MN 17
Interpolação com M/O
Função interp1
yi = interp1(x, y, xi,’method’)
Como se vê tem um argumento que permite escolher o método a empregar.
a) ‘nearest’
b) ‘linear’
c) ‘spline’
d) ‘pchip’ ou ‘cubic’
2013/05/07 MN 18
Interpolação com M/O
Os métodos linear e spline já são
conhecidos.
O método designado por nearest significa
vizinho mais próximo (nearest neighbor),
em que cada ponto a ser calculado toma o
valor do vizinho mais próximo.
O pchip ou cubic usa polinómios de Hermite
cúbicos em que as segundas derivadas
podem não ser contínuas.
2013/05/07 MN 19