21
Oscilações Consideremos a função 2013/05/07 MN 1 2 25 1 1 ) ( x x f -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Oscilações 0.2 0.1 Consideremos a função fileCá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

  • 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

Spline

2013/05/07 MN 6

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

2013/05/07 MN 13

2.

1.

3.

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

Interpolação com M/O

Este último método

evita certas

oscilações

das splines.

2013/05/07 MN 20

Extrapolação

2013/05/07 MN 21