Módulo 2: Métodos Numéricos Interpolação Splines
1. Interpolação Estimativa de uma grandeza com base em valores conhecidos em torno do ponto de estimativa. Procedimento: 1 Determinar uma função (normalmente polinomial) que passe por todos os pontos conhecidos. 2 Estimar o valor da grandeza num ponto desconhecido, usando a função de interpolação. Para um conjunto de npontos, é necessário um polinómio de ordem (n-1): f(x) = a 1 +a 2.x f(x) = a 1 +a 2.x+a 3.x 2 f(x) = a 1 +a 2.x+a 3.x 2 +a 4.x 3
1. Interpolação Para determinação dos coeficientes do polinómio podemos usar a técnica da divisão à esquerda: Esta técnica é muito simples, mas pode ser muito sensível a pequenas variações nos dados e portanto muito sensível aos erros de arredondamento e de truncagem! Suponhamos que queremos fazer a interpolação polinomial para os seguintes dados: x 1 = 300 C ; y 1 = 0.616 g/cm 3 x 2 = 400 C ; y 2 = 0.525 g/cm 3 x 3 = 500 C ; y 3 = 0.457 g/cm 3
1. Interpolação Método de interpolação polinomial de Newton a) Interpolação linear f(x 2 ) f(x) f(x 1 ) x 1 x x 2 f(x) = a 1 +a 2.x Interpolar a função erro complementar (erfc) para x = 0.35, sabendo que: x 1 = 0.25 ; y 1 = 0.7237 x 2 = 0.50 ; y 2 = 0.4795
1. Interpolação Método de interpolação polinomial de Newton: b) Interpolação parabólica f(x 2 ) f(x) f(x 3 ) f(x 1 ) x 1 x x 2 x 3 f(x) = a 1 +a 2.x+a 3.x 2 Interpolar a função erro complementar (erfc) para x = 0.35, sabendo que: x 1 = 0.25 ; y 1 = 0.7237 x 2 = 0.50 ; y 2 = 0.4795 x 3 = 0.75 ; y 3 = 0.2888
1. Interpolação Interpolação inversa: (usando o método de interpolação polinomial de Newton) Situação: Pretende-se o valor de x para um dado y. Estratégias: 1 trocar os conjuntos de x com y desvantagens: x não uniformemente distribuído relação pode não ser bi-unívoca 2 Inverter a função polinomial desvantagem: nem sempre é possível ou fácil 3 Usar a função original e procurar o zero da expressão: y-f(x) = y-(a 1 +a 2.x+a 3.x 2 )=0 f(x 2 ) f(x) f(x 3 ) f(x 1 ) x 1 x x 2 x 3 f(x) = a 1 +a 2.x+a 3.x 2 Interpolar inversamente a função erro complementar para erfc(x) = 0.5, sabendo que: x 1 = 0.25 ; y 1 = 0.7237 x 2 = 0.50 ; y 2 = 0.4795 x 3 = 0.75 ; y 3 = 0.2888
1. Interpolação Interpolação no MatLab: Pode-se utilizar a função polyfit(x,y,n) para interpolação. Basta que os pontos dos dados sejam únicos (valores de x não repetidos). f(x 2 ) f(x) f(x 3 ) f(x 1 ) x 1 x x 2 x 3 f(x) = a 1 +a 2.x+a 3.x 2 Interpolar a função erro complementar para x= 0.3, usando a função polyfit com polinómio de segundo grau: x 1 = 0.25 ; y 1 = 0.7237 x 2 = 0.50 ; y 2 = 0.4795 x 3 = 0.75 ; y 3 = 0.2888
2. Splines Quando há variações abruptas ou um númro de pontos elevado as interpolações polinomiais podem tornar-se muito oscilantes. Será então preferível interpolar "localmente", usando: -2 pontos (spline linear) o mais simples. (é assegurada apenas a continuidade da função) -3 pontos (spline quadrático). (é assegurada a continuidade da função e da 1ª derivada) -4 pontos (spline cúbico) o mais utilizado. (é assegurada a continuidade da função e das 1ª e 2ª derivadas)
2. Splines Splines lineares: Cada trecho (spline) é caracterizado por uma recta de interpolação local, s i (x): onde: Interpolar com splines lineares a função erro complementar para x = 0.3, sabendo que: x 1 = 0.25 ; y 1 = 0.7237 x 2 = 0.50 ; y 2 = 0.4795 x 3 = 0.75 ; y 3 = 0.2888 x 4 = 1.00 ; y 4 = 0.1573
2. Splines Splines cúbicos: Cada trecho (spline) é caracterizado por um polinómio de grau 3, para interpolação local, s i (x): Se: e se: Para que a 1ª derivada e a segunda derivada sejam contínuas (transições suaves entre cada spline), as constantes c i tem de ser calculadas da seguinte forma: Aqui, estamos a assumir que a segunda derivada no 1º ponto e no último são zero.
2. Splines Splines cúbicos: Os valores das outras constantes são: a) Interpolar com splines cúbicos a função erro complementar para x = 0.3, sabendo que: x 1 = 0.25 ; y 1 = 0.7237 x 2 = 0.50 ; y 2 = 0.4795 x 3 = 0.75 ; y 3 = 0.2888 x 4 = 1.00 ; y 4 = 0.1573 x 5 = 1.25 ; y 5 = 0.0771
2. Splines Splines cúbicos no MatLab: yy = spline(x, y, xx) em que : yy valor(es) interpolado(s), escalar ou vector xx valor(es) para interpolar, escalar ou vector x Dados x, vector y Dados y, vector Pode ainda ser usada outra síntaxe: pp = spline(x,y) em que: pp informação sobre os splines cúbicos, incluindo os factores polinomiais para cada gama [para usar com a função ppval, v = ppval(pp,xx) ].
2. Splines Splines cúbicos no MatLab: yy = spline(x, y, xx)ou pp = spline(x,y) a) Interpolar com a função splines do MatLab a função erro complementar para x = 0.3, sabendo que: x 1 = 0.25 ; y 1 = 0.7237 x 2 = 0.50 ; y 2 = 0.4795 x 3 = 0.75 ; y 3 = 0.2888 x 4 = 1.00 ; y 4 = 0.1573 b) Usar no modo 'pp' e verificar o seu conteúdo. Interpolar usando a função ppval.
-Resolução da ficha n.º 8