Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade de Brasília – UnB Faculdade UnB Gama – FGA Métodos Numéricos para Engenharia Prof. Ricardo Fragelli AULA 14 Interpolação – Splines 1. Interpolação por Splines Já vimos a possibilidade de ajustar uma curva por meio de polinômios, em especial, o polinômio de Lagrange. Utilizamos para deduzir a regra 1/3 de Simpson, contudo, em alguns casos temos apenas algumas coordenadas de alguma função ݂ሺݔሻ e desejamos fazer uma aproximação para um valor intermediário como, por exemplo, no caso seguinte: x 0,5 0,7 0,9 1,0 f(x) 3,5 12,9 11,6 12,5 Qual seria o valor de ݂ሺͲ,ሻ ou ݂ሺͲ,9͵ሻ sem conhecer a função ݂? Para isso, teríamos que fazer alguma aproximação para a função ݂com base nas coordenadas ሺݔ, ݕሻ, chamados de nós da interpolação, e uma das possibilidades e a utilização de polinômios. Contudo, em alguns casos, o polinômio pode não ser a melhor opção causando um problema conhecido como instabilidade numérica (figura 1). Figura 1 – Aproximação com um polinômio de grau elevado. Uma possibilidade interessante para tratar esse problema são as splines, nome dado em consideração a uma régua elástica utilizada em projetos de engenharia e computação gráfica (figura 2). Figura 2 – Spline utilizada para fazer uma curva entre algumas posições de controle. Figura 3 – Splines utilizadas para fazer o design de um automóvel. Em termos matemáticos, uma spline de ordem � em um intervalo [ܽ, ܾ] é uma curva �ሺݔሻ definida por partes que obedece aos seguintes critérios: a) passa por todos os nós da interpolação; b) é um polinômio de grau � entre cada dois nós da interpolação; e, c) possui derivada contínua até a ordem � − ͳ. Os dois tipos de splines mais utilizados são as lineares e as cúbicas, ou seja, com polinômios de graus 1 e 3 entre os nós da interpolação, respectivamente. As condições (a), (b) e (c) não são suficientes para determinar as equações �ሺݔሻ das splines para graus maiores que 1 e, desse modo, são inseridas condições referentes às derivadas. Para o grau 3, temos as seguintes condições adicionais: a) spline cúbica natural, possui segunda derivada nula nos extremos do intervalo de interpolação, isto é, �’’ሺܽሻ = �’’ሺܾሻ = Ͳ; b) se for uma spline cúbica restrita, possui �’ሺܽሻ = ݂′ሺܽሻ e �’ሺܾሻ = ݂′ሺܾሻ. Para seguir o nosso estudo sobre as splines, baixe os arquivos splines.m e splines.fig disponíveis no Moodle da disciplina. É um simulador do matlab que faz a geração de uma spline linear com 5 nós de interpolação fornecidos pelo usuário (figura 4). Para alterar a posição dos nós, basta clicar na tela (figura 5). Figura 4 – Simulador de Splines (mostrando splines lineares). Figura 5 – Simulador de Splines em funcionamento (mostrando splines lineares). O objetivo é implementar o código de Splines Cúbicas Naturais e, para isso, basta modificar o código de geração de splines do simulador (figura 6). Figura 6 – Fragmento do arquivo splines.m que faz a geração das splines. No arquivo splines.m, os valores dos nós da interpolação estão salvos nas variáveis �ݔͳ, �ݕͳ, �ݔʹ, �ݕʹ, �ݔ͵, �ݕ͵, �ݔͶ, �ݕͶ, �ݔͷ e �ݕͷ. Para encontrar as equações de ordem 3 do tipo ݕ� = �ܽ + �ܾ ሺݔ − ݔ�ሻ + �ܿ ሺݔ − ݔ�ሻଶ + �݀ ሺݔ − ݔ�ሻଷ, basta fazer a seguinte resolução (cuja demonstração das equações no livro disponível no Moodle): 1) Cálculo de �ܽ: �ܽ = ݕ� 2) A) Cálculo de cj: Resolução do sistema (Spline Cúbico Natural, �’’ሺܽሻ = �’’ሺܾሻ = Ͳ) [ ͳ Ͳ Ͳ … … Ͳℎ ʹሺℎ + ℎଵሻ ℎଵ ⋱ ⋱ ͲͲ ℎଵ ʹሺℎଵ + ℎଶሻ ℎଶ ⋱ ⋮⋮ ⋱ ⋱ ⋱ ⋱ ⋮⋮ ⋱ ⋱ ℎ�−ʹ ʹሺℎ�−ʹ + ℎ�−ͳሻ ℎ�−ͳͲ Ͳ … Ͳ Ͳ ͳ ] [ ܿܿଵܿଶ⋮⋮ܿ �] = [ Ͳℎ͵ଵ ሺܽଶ − ܽଵሻ − ℎ͵ ሺܽଵ − ܽሻ⋮⋮͵ℎ�−ͳ ሺܽ� − ܽ�−ͳሻ − ͵ℎ�−ʹ ሺܽ�−ͳ − ܽ�−ʹሻͲ ] B) Cálculo de cj: Resolução do sistema (Spline Cúbico Restrito, �’ሺܽሻ = ݂’ሺܽሻ ݁ �’ሺܾሻ = ݂’ሺܾሻ) [ ʹℎͲ ℎ Ͳ … … Ͳℎ ʹሺℎ + ℎଵሻ ℎଵ ⋱ ⋱ ͲͲ ℎଵ ʹሺℎଵ + ℎଶሻ ℎଶ ⋱ ⋮⋮ ⋱ ⋱ ⋱ ⋱ ⋮⋮ ⋱ ⋱ ℎ�−ʹ ʹሺℎ�−ʹ + ℎ�−ͳሻ ℎ�−ͳͲ Ͳ … Ͳ ℎ�−ଵ ʹℎ�−ͳ] [ ܿܿଵܿଶ⋮⋮ܿ �] = [ ℎ͵Ͳ ሺܽͳ − ܽͲሻ − ͵݂′ሺܽሻℎ͵ଵ ሺܽଶ − ܽଵሻ − ℎ͵ ሺܽଵ − ܽሻ⋮⋮͵ℎ�−ͳ ሺܽ� − ܽ�−ͳሻ − ͵ℎ�−ʹ ሺܽ�−ͳ − ܽ�−ʹሻ͵݂′ሺܾሻ − ͵ℎ�−ͳ ሺܽ� − ܽ�−ͳሻ ] 3) Cálculo de bj e Cálculo de dj: �ܾ = ͳℎ� ( �ܽ+ଵ − �ܽ) − ℎ�͵ (ʹ �ܿ + �ܿ+ଵ) �݀ = �ܿ+ଵ − �ܿ͵ℎ� Um forte abraço e até a próxima!
Compartilhar