Baixe o app para aproveitar ainda mais
Prévia do material em texto
DCC008 - Cálculo Numérico Polinômios de Taylor Bernardo Martins Rocha Departamento de Ciência da Computação Universidade Federal de Juiz de Fora bernardomartinsrocha@ice.ufjf.br Conteúdo I Introdução I Definição do polinômio de Taylor I Propriedades I Exemplos I Algoritmo de Horner I Erro I Exemplos I Aproximação de Derivada 2 / 67 Introdução Algumas funções matemáticas ditas "elementares"não são tão elementares assim quando tentamos avalia-las. Se p é uma função polinomial, p(x) = a0 + a1x+ a2x 2 + . . .+ anx n então p pode ser avaliado facilmente para qualquer número x. Entretanto o mesmo não é verdadeiro para funções como ex, sin (x), cos (x), log (x). Tente calcular essas funções sem usar a calculadora para qualquer x. Estamos interessados em reduzir a avaliação de funções f(x) por funções que sejam mais fáceis de se avaliar. 3 / 67 Introdução Já vimos que polinômios são funções fáceis de se avaliar, pois precisamos apenas de realizar operações de adição e multiplicação. Sendo assim estamos interessados em aproximar a função f(x) por uma função polinomial f̂(x) que seja fácil de avaliar. Uma das aproximações polinomiais mais usadas são os polinômios de Taylor. Vamos estudar agora como encontrar estas funções polinomiais que aproximam f(x). 4 / 67 Polinômio de Taylor A fim de encontrar um polinômio que aproxima uma função, vamos antes analisar algumas propriedades de polinômios. Considere o polinômio p(x) = a0 + a1x+ a2x2 + . . .+ anxn. É interessante observar que os coeficientes ai, i = 0, . . . , n, podem ser escritos em termos de valores de p e de suas várias derivadas (p′, p′′, ...) em x = 0. Para começar observe que p(0) = a0 Derivando p(x) temos p′(x) = a1 + 2a2x+ . . .+ nanxn−1 e portanto p′(0) = a1 5 / 67 Polinômio de Taylor Derivando novamente p′′(x) = 2a2 + 6a3x+ . . .+ n(n− 1)anxn−2 e portanto p′′(0) = 2a2 Denotando a k-ésima derivada de p(x) por p(k)(x), de forma geral teremos a seguinte relação p(k)(0) = k! ak Lembrando que 0! = 1 e que p(0) = p, temos ak = p(k)(0) k! , 0 ≤ k ≤ n 6 / 67 Polinômio de Taylor Se tivéssemos começado com uma função p como um polinômio em (x− a), p(x) = a0 + a1(x− a) + a2(x− a)2 + . . .+ an(x− a)n procedendo da mesma forma como anteriormente, temos p(x) = a0 + a1(x− a) + a2(x− a)2 + . . .+ an(x− a)n p(a) = a0 p′(x) = a1 + 2a2(x− a) + . . .+ nan(x− a)n−1 p′(a) = a1 p′′(x) = 2a2 + 6a3(x− a) + . . .+ n(n− 1)an(x− a)n−2 p′′(a) = 2a2 . . . de forma geral, temos ak = p(k)(a) k! 7 / 67 Polinômio de Taylor Suponha agora que f(x) seja uma função (não necessariamente um polinômio) tal que f (1)(a), f (2)(a), ..., f (n)(a), existam. Seja ak = f (k)(a) k! , 0 ≤ k ≤ n (1) então o polinômio de Taylor de grau n para f(x) em a é definido como Pn,a(x) = a0 + a1(x− a) + a2(x− a)2 + . . .+ an(x− a)n (2) Obs: vamos simplificar a notação e escrever apenas Pn(x) 8 / 67 Polinômio de Taylor O polinômio de Taylor foi definido tal que P (k)n (a) = f (k)(a), para 0 ≤ k ≤ n observe P (0)n (x) = a0 + a1(x− a) + . . .+ an(x− a)n P (1)n (x) = a1 + 2a2(x− a) + . . .+ nan(x− a)n−1 P (2)n (x) = 2a2 + 6a3(x− a) + . . .+ n(n− 1)an(x− a)n−2 P (3)n (x) = 6a3 + 24a4(x− a) + . . .+ n(n− 1)(n− 2)an(x− a)n−3 ... P (n)n (x) = n! an 9 / 67 Polinômio de Taylor Lembrando que ak = f (k)(a) k! substituindo os coeficientes ak e avaliando as expressões anteriores em x = a temos P (0)n (a) = a0 = f (0)(a) P (1)n (a) = a1 = f (1)(a) P (2)n (a) = 2a2 = 2 f (2)(a) 2! = f (2)(a) P (3)n (a) = 6a3 = 6 f (3)(a) 3! = f (3)(a) ... P (n)n (a) = n! an = n! f (n)(a) n! = f (n)(a) E assim confirmamos que P (k)n (a) = f (k)(a), para 0 ≤ k ≤ n 10 / 67 Polinômio de Taylor Usando a relação ak = f (k)(a) k! vamos escrever o polinômio de Taylor de grau n da seguinte forma Pn(x) = f(a) + f ′(a)(x− a) + f ′′(a) (x−a)22 + . . .+ f (n)(a) (x−a)n n! 11 / 67 Exemplos Exemplo 1 Encontrar o polinômio de Taylor de grau 1 (linear) que aproxima a função f(x) = ex em torno do ponto 0. Solução Exemplo 1 Temos f(x) = ex ⇒ f ′(x) = ex portanto o polinômio de Taylor linear é dado por P1(x) = f(a) + f ′(a)(x− a) = f(0) + f ′(0)(x− 0) = e0 + e0(x− 0) = 1 + x 12 / 67 Exemplos Exemplo 1 - Observação Geométrica Equação da reta y − y0 = m(x− x0) Como o coeficiente angular da reta tangente ao gráfico de y = f(x) no ponto (x0, f(x0)) é f ′(x0) = m, temos a seguinte eq. para a reta tangente y − f(x0) = f ′(x0)(x− x0) Comparando com nossa aproximação P1(x)− f(a) = f ′(a)(x− a) vemos que neste exemplo a função aproximadora é a reta tangente a curva f(x) no ponto x = a. 13 / 67 Exemplos Solução Exemplo 1 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 1 0 1 2 3 4 5 6 7 8 ex P1 (x) 14 / 67 Exemplos Solução Exemplo 1 (Zoom) 0.4 0.2 0.0 0.2 0.4 0.5 1.0 1.5 ex P1 (x) 15 / 67 Exemplos Exemplo 2 Determinar o polinômio de Taylor de grau 2 (quadrático) para f(x) = ex em torno do ponto a = 0. Solução Exemplo 2 Lembrando que f(x) = ex ⇒ f ′(x) = ex ⇒ f ′′(x) = ex então P2(x) = f(a) + f ′(a)(x− a) + f ′′(a) (x−a)22 = f(0) + f ′(0)(x− 0) + f ′′(0) (x−0)22 = e0 + e0(x− 0) + e0 (x−0)22 = 1 + x+ x 2 2 16 / 67 Exemplos Solução Exemplo 2 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.01 0 1 2 3 4 5 6 7 8 ex P1 (x) P2 (x) 17 / 67 Exemplos 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.01 0 1 2 3 4 5 6 7 8 ex P1 (x) P2 (x) P3 (x) P4 (x) P5 (x) 18 / 67 Exemplos Exemplo 3 Encontre a fórmula geral da aproximação usando polinômio de Taylor para a função f(x) = sin (x) em torno do ponto a = 0. Solução Exemplo 3 Note que f(x) = sin (x) ⇒ f(a) = 0 f ′(x) = cos (x) ⇒ f ′(a) = 1 f ′′(x) = − sin (x) ⇒ f ′′(a) = 0 f ′′′(x) = − cos (x) ⇒ f ′′′(a) = −1 f (4)(x) = sin (x) ⇒ f (4)(a) = 0 A partir desse ponto as derivadas repetem em ciclo de 4. 19 / 67 Exemplos Solução Exemplo 3 Os coeficientes do polinômio de Taylor ak = sin(k) (0) k! para k = 0, 1, 2, . . . são dados por 0, 1, 0,− 13! , 0, 15! , 0,− 17! , 0, 19! , . . . portanto o polinômio de Taylor é dado por Pn(x) = x− x3 3! + x5 5! − x 7 7! + . . .+ (−1)n x 2n+1 (2n+ 1)! Considerando n como o número de termos, tem-se que P2n+1(x) = n∑ k=0 (−1)k x 2k+1 (2k + 1)! Obs: P2n+1 = P2n+2. 20 / 67 Exemplos Solução Exemplo 3 4 3 2 1 0 1 2 3 48 6 4 2 0 2 4 6 8 sinx P1 (x) P3 (x) P5 (x) P7 (x) 21 / 67 Exemplos Exercício Verifique que o polinômio de Taylor de grau 2n para f(x) = cos (x) em a = 0 é dado por P2n(x) = 1− x2 2! + x4 4! − x 6 6! + . . .+ (−1)n x 2n (2n)! Exercício Verifique que o polinômio de Taylor de grau n para f(x) = ex em a = 0 é dado por Pn(x) = 1 + x 1! + x2 2! + x3 3! + . . .+ xn (n)! 22 / 67 Exemplo de Implementação em C double exp_taylor(int n, double x) { int i; double fat=1.0, term=1.0, sum=term; for(i=1; i<=n; i++) { fat = fat * i; term = term * x; sum = sum + term/fat; } return sum; } 23 / 67 Exemplo de Implementação em C int main () { int n; double x; scanf("%d", &n); scanf("%lf", &x); printf("exp(x) = %e\n", exp(x) ); printf("taylor = %e\n", exp_taylor(n, x) ); return 0; } 24 / 67 Exemplo de Implementação em C n = 5 x = 0.25 exp(x) = 1.284025e+00 taylor = 1.284025e+00 n = 25 x = 2.5 exp(x) = 1.218249e+01 taylor = 1.218249e+01 n = 25 x = 10 exp(x) = 2.202647e+04 taylor = 2.202608e+04 n = 25 x = 20 exp(x) = 4.851652e+08 taylor = 4.307370e+08 n = 5 x = -0.25 exp(x) = 7.788008e-01 taylor = 7.788005e-01 n = 25 x = -2.5 exp(x) = 8.208500e-02 taylor = 8.208500e-02 n = 25 x = -10 exp(x) = 4.539993e-05 taylor = -1.804113e-01 (***) n = 25 x = -20 exp(x) = 2.061154e-09 taylor = -9.494844e+06 (***) 25 / 67 Exemplo de Implementação em Python def exp_taylor(n, x): fat = 1.0 term = 1.0 sum = term i = 1 while i <= n: fat = fat * i term = term * x sum = sum + term/fat i = i + 1 return sum if __name__ == "__main__": n = int(raw_input("digite n")) x = float(raw_input("digite x")) print exp_taylor(n, x) 26 / 67 Exemplos Exemplo 4 Encontre o valor de f(6) sabendo que f(4) = 125, f ′(4) = 74, f ′′(4) = 30, f′′′(4) = 6, e que todas as outras derivadas de ordem alta são nulas. Solução Exemplo 4 Vamos usar uma aproximação por polinômio de Taylor de grau 3 P3(x) = f(a) + f ′(a)(x− a) + f ′′(a) (x−a)22! + f ′′′(a) (x−a)3 3! Como temos os valores da função e suas derivadas em x = 4 usaremos este ponto para aproximar f(6), portanto f(6) ≈ P3(6) = f(4) + f ′(4)(6− 4) + f ′′(4) (6−4) 2 2! + f ′′′(4) (6−4) 3 3! = 125 + 74 · 2 + 30 · 42 + 6 · 86 = 125 + 148 + 60 + 8 = 341 27 / 67 Polinômio de Taylor Algumas propriedades da aproximação por polinômio de Taylor: I Quanto maior o grau do polinômio, melhor a aproximação. I A medida que nos afastamos do ponto x = a, a aproximação piora. I O polinômio de Taylor Pn(x) só precisa do valor da função e de suas derivadas em um ponto a. Não é preciso conhecer a expressão analítica de suas derivadas. 28 / 67 Exemplos Exemplo 5 Como calcular o valor de √ 13 numa ilha deserta, sem usar calculadora? Solução Exemplo 5 Aproximar f(x) = √ x perto de a usando polinômios de Taylor. Neste caso vamos usar um polinômio linear e vamos escolher o ponto a = 9 (poderia ser a = 16). Temos f(x) = √ x = x1/2 ⇒ f ′(x) = 1 2 √ x logo P1(x) = f(a) + f ′(a)(x− a) = √a+ 1 2 √ a (x− a) 29 / 67 Exemplos Solução Exemplo 5 Substituindo a = 9 em P1(x) temos P1(x) = √ 9 + 1 2 √ 9 (x− 9) Sendo assim, avaliando em x = 13 para obter o valor de √ 13 obtemos P1(13) = √ 9 + 1 2 √ 9 (13− 9) = 3 + 4 6 = 3.6666 O valor exato de √ 13 é 3.6055. 30 / 67 Exemplos Exemplo 6 Calcular o valor de 7 √ 1.1 (R : 1.013708856). Solução Exemplo 6 A função que queremos avaliar é f(x) = 7 √ x. Vamos usar um polinômio de Taylor linear em torno de a = 1. Derivando f(x) = x1/7 ⇒ f ′(x) = 1 7 7 √ x6 Assim temos a seguinte aproximação 7 √ x ≈ f(a) + f ′(a)(x− a) = 7 √ 1 + 1 7 7 √ 16 (x− 1) e para x = 1.1 temos 7 √ 1.1 ≈ 1 + 1.1− 1 7 = 1.01428 31 / 67 Exemplos Exemplo 7 Calcular o valor de exp(0.2). Solução Exemplo 7 A função que queremos avaliar é f(x) = ex = exp (x). Vamos usar um polinômio de Taylor (i) linear e (ii) quadrático em torno do ponto a = 0. Calculando as derivadas f(x) = ex ⇒ f ′(x) = f ′′(x) = ex assim temos as seguintes aproximações P1(x) = f(a) + f ′(a)(x− a) = e0 + e0(x− 0) = 1 + x P2(x) = f(a) + f ′(a)(x− a) + f ′′(a) (x−a)22 = e0 + e0(x− 0) + e0 (x−0)2 = 1 + x+ x 2 2 32 / 67 Exemplos Solução Exemplo 7 Sabemos que o valor real da expressão exp (0.2) é 1.2214. Temos as seguintes funções aproximadoras P1(x) = 1 + x P2(x) = 1 + x+ x2 2 que quando avaliadas em x = 0.2 fornecem P1(0.2) = 1 + 0.2 = 1.2 P2(0.2) = 1 + 0.2 + 0.22 2 = 1 + 0.2 + 0.042 = 1 + 0.2 + 0.02 = 1.22 33 / 67 Exemplos Exemplo 8 Encontre uma aproximação para log (x). Solução Exemplo 8 O polinômio de Taylor para log (x) tem que ser calculado em algum ponto a 6= 0 já que a função não está definida neste ponto. Vamos usar então a = 1 para começar. Calculando as derivadas temos f ′(x) = 1 x ⇒ f ′(1) = 1 f ′′(x) = − 1 x2 ⇒ f ′′(1) = −1 f ′′′(x) = 2 x3 ⇒ f ′′′(1) = 2 f (4)(x) = − 6 x4 ⇒ f (4)(1) = −6 De forma geral, para k = 1, . . . , n, temos f (k)(x) = (−1)k−1(k − 1)! xk ⇒ f (k)(1) = (−1)k−1(k − 1)! 34 / 67 Exemplos Solução Exemplo 8 Portanto temos Pn(x) = f(1) + (x− 1)f ′(1) + (x− 1) 2 f ′′(1) + . . .+ (x− 1)n n! f (n)(1) = 0 + (x− 1)− (x− 1) 2 + (x− 1)3 6 2 + . . .+ (x− 1)n n! (−1)n−1(n− 1)! assim Pn(x) = (x− 1)− (x− 1)2 2 + (x− 1)3 3 + . . .+ (−1)n−1 (x− 1) n n É mais simples considerar f(x) = log (1 + x) e criar o polinômio de Taylor em torno do ponto a = 0. Neste caso teríamos Pn(x) = x− x2 2 + x3 3 − x 4 4 + . . .+ (−1)n−1x n n 35 / 67 Algoritmo de Horner Uma tarefa computacional extremamente importante é a avaliação de polinômios, isto é: dado um ponto x qualquer, calcular o valor de p(x). A forma mais direta de fazer isto é: p(x) = a0 + a1x+ a2x 2 + a3x 3 (3) Essa expressão pode ser reformulada como p(x) = ((a3x+ a2)x+ a1)x+ a0 (4) Temos então o seguinte número de operações aritméticas: I para n = 4, Eq. (3) faz 10 multiplicações e 4 adições I para n = 4, Eq. (4) faz 4 multiplicações e 4 adições I para n = 20, Eq. (3) faz 210 multiplicações e 20 adições I para n = 20, Eq. (4) faz 20 multiplicações e 20 adições 36 / 67 Algoritmo de Horner Para p(x) = ((a3x+ a2)x+ a1)x+ a0 podemos usar o seguinte esquema prático a3 a2 a1 a0 + x · b3 x · b2 x · b1 b3 b2 b1 b0 portanto p(x) = b0. Para avaliar um polinômio de grau n p(x) = a0 + a1x+ a2x 2 + . . .+ anx n podemos usar a seguinte fórmula bn = an bi = ai + x · bi+1, para i = n− 1, . . . , 2, 1, 0 37 / 67 Algoritmo de Horner Se os valores intermediários de bi não são de interesse, podemos usar apenas uma variável b para implementar o algoritmo. entrada: a0, a1, ..., an, x saída: p(x) b = an ; para i = n− 1 até 0 faça b = ai + x · b ; fim-para retorne b; 38 / 67 Erro Precisamos saber qual o erro cometido ao aproximar a função f(x) pelo polinômio de Taylor Pn(x). Vamos representar o erro por Rn(x). Se f(x) é uma função para a qual Pn(x) existe, definimos o erro (ou resto) Rn(x) por Rn(x) = f(x)− Pn(x). Ou seja f(x) = Pn(x) +Rn(x) = f(a) + f ′(a)(x− a) + . . .+ f (n)(a)(x− a) n n! +Rn(x) Gostaríamos de ter uma expressão para Rn(x) cujo tamanho seja fácil de se estimar. Através do Teorema de Taylor iremos encontrar algumas expressões para o erro Rn(x). 39 / 67 Teorema de Taylor Teorema (Teorema de Taylor) Suponha que as derivadas f (1), ..., f (n+1) estejam definidas e sejam contínuas em um intervalo [a, x], então temos que Rn(x) = f(x)− Pn(x) = ∫ x a f (n+1)(t) (x− t)n n! dt onde Pn(x) = f(a) + f ′(a)(x− a) + . . .+ f (n)(a)(x− a) n n! 40 / 67 Teorema de Taylor Para a demonstração do teorema iremos utilizar: Integração por partes: ∫ b a u dv = uv ∣∣∣ b a − ∫ b a v du Teorema Fundamental do Cálculo (TFC), que diz que se f(x) é definida em [a, b] que admite uma anti-derivada g(x) em [a, b], isto é f(x) = g′(x), então ∫ b a f(x) dx = g(b)− g(a) 41 / 67 Teorema de Taylor Prova Para encontrar a expressão do erro na forma integral, vamos começar com o caso n = 0: f(x) = f(a) +R0(x) pelo Teorema Fundamental do Cálculo, podemos escrever R0(x) = f(x)− f(a) = ∫ x a f ′(t) dt portanto f(x) = f(a) + ∫ x a f ′(t) dt 42 / 67 Teorema de Taylor Prova (cont.) Vamos usar integração por partes no termo da integral u = f ′(t) ⇒ du = f ′′(t) dt dv = 1 dt ⇐ v = t− x assim temos ∫ x a f ′(t) dt = f ′(t)(t− x) ∣∣∣∣∣ x a − ∫ x a f ′′(t)(t− x) dt = [ f ′(x)(x− x)− f ′(a)(a− x) ] − ∫ x a f ′′(t)(t− x) dt = −f ′(a)(a− x)− ∫ x a f ′′(t)(t− x) dt = f ′(a)(x− a) + ∫ x a f ′′(t)(x− t) dt 43 / 67 Teorema de Taylor Prova (cont.) Logo f(x) = f(a) + f ′(a)(x− a)︸ ︷︷ ︸ P1(x) + ∫ x a f ′′(t)(x− t) dt Portanto R1(x) = ∫ x a f ′′(t)(x− t) dt Para encontrar R2(x), usamos integração por partes novamente no termo com a integral. Para isso escolhemos u = f ′′(t) ⇒ du = f ′′′(t) dt dv = (x− t) dt ⇐ v = −(x− t) 2 2 44 / 67 Teorema de Taylor Prova (cont.) Assim ∫ x a f ′′(t)(x− t) dt = −f ′′(t)(x− t) 2 2 ∣∣∣∣∣ x a + ∫ x a f ′′′(t) (x−t) 2 2 dt = f ′′(a) (x− a)2 2 + ∫ x a f ′′′(t) (x− t)2 2 dt Desta forma f(x) = f(a) + f ′(a)(x− a) + f ′′(a) (x−a)22︸ ︷︷ ︸ P2(x) + ∫ x a f ′′′(t) (x− t)2 2 dt ︸ ︷︷ ︸ R2(x) ou seja R2(x) = ∫ x a f ′′′(t) (x− t)2 2 dt 45 / 67 Teorema de Taylor Prova (cont.) Considerando que f (n+1) é contínua em [a, x] por hipótese do teorema, podemos mostrar por indução que Rn(x) = ∫ x a f (n+1)(t) (x− t)n n! dt (5) 46 / 67 Teorema de Taylor É possível ainda obter as seguintes expressões para o erro: Forma de Cauchy Rn(x) = f (n+1)(t) (x− t)n n! (x− a), t ∈ (a, x) (6) Forma de Lagrange Rn(x) = f (n+1)(t) (x− a)(n+1) (n+ 1)! , t ∈ (a, x) (7) Essas expressões são muito úteis para se obter estimativas para o erro de uma aproximação usando o polinômio de Taylor. 47 / 67 Estimativa do erro A forma do erro de Lagrange Rn(x) = f (n+1)(t) (x− a)(n+1) (n+ 1)! (8) é muitoparecida com o próximo termo do polinômio de Taylor. A única diferença é o valor t na fórmula. t é algum valor entre a e x, que não conhecemos. Obs: t é um valor que no desenvolvimento da forma do erro de Lagrange surge da aplicação do Teorema do Valor Médio. Para estimar o erro, precisamos analisar os valores de f (n+1)(t) para todo a < t < x e usar o maior deles. Ou, usar algum outro valor que com certeza é maior do que todos eles. 48 / 67 Exemplos Exemplo 1 Seja f(x) = sin (x). Encontre o polinômio de Taylor cúbico em torno do ponto a = 0, em seguida encontre um limitante superior para este no ponto x = π4 e calcule o erro. Solução Exemplo 1 Para f(x) = sin (x) com a = 0 já vimos que o polinômio cúbico de Taylor é P3(x) = x− x3 6 Pela fórmula do erro de Lagrange, sabemos que R3(x) = f (4)(t) (x− a)4 4! = sin (t) x4 24 49 / 67 Exemplos Solução Exemplo 1 Portanto para o limitante superior temos |R3(x)| ≤ max ∣∣∣∣∣ sin (t)x4 24 ∣∣∣∣∣, para t ∈ [0, π/4] ≤ ∣∣∣∣∣ sin (π4 )( π 4 ) 4 24 ∣∣∣∣∣ ≤ 0.0112 Avaliando P3(x) em π4 temos P3( π 4 ) = π 4 − π 4 3 6 = 0.7046 O valor real é sin (π4 ) = √ 2 2 = 0.7071, logo o erro cometido é |0.7071− 0.7046| = 0.0024. 50 / 67 Exemplos Exemplo 2 Obtenha o limitante superior do erro para e0.5 quando esta expressão é aproximada por um polinômio de Taylor de grau 4 para ex em torno do ponto 0. Solução Exemplo 2 Pela fórmula de Lagrange do erro temos R4(x) = f (n+1)(t) (x− 0)5 5! = et x5 120 , para algum t ∈ [0, 0.5] assim quando aproximamos e0.5 o erro está limitado por |R4(x)| ≤ max ∣∣∣∣∣ etx5 120 ∣∣∣∣∣ ≤ ∣∣∣∣∣ e0.50.55 120 ∣∣∣∣∣ ≤ 2 0.55 120 = 0.00052 51 / 67 Exemplos Solução Exemplo 2 Neste caso a aproximação de Taylor é P4(x) = 1 + x+ x2 2 + x3 6 + x4 24 e portanto e0.5 ≈ 1 + 0.5 + 0.5 2 2 + 0.53 6 + 0.54 24 = 1.6484 O valor real é e0.5 = 1.6487, e vemos novamente que o erro é menor do que o estimado, pois |1.6487− 1.6484| = 0.0003. 52 / 67 Exemplos Exemplo 3 Seja f(x) = sin (x) e a = 0. Determine n para que o erro ao se aproximar f(x) por um polinômio de Taylor seja menor do que 10−7 para −π4 ≤ x ≤ π4 . Solução Exemplo 3 Pela fórmula do erro temos que R2n+1(x) = sin (x)− P2n+1(x) = f (2n+2)(t) (x− 0)2n+2 (2n+ 2)! = (−1)n+1 sin (t) x 2n+2 (2n+ 2)! Queremos saber qual o valor de n garante que |R2n+1(x)| ≤ 10−7, para x ∈ [−π/4, π/4] 53 / 67 Exemplos Solução Exemplo 3 Então |R2n+1(x)| = ∣∣∣∣∣(−1) n+1 sin (t) x2n+2 (2n+ 2)! ∣∣∣∣∣ < (π4 ) 2n+2 (2n+ 2)! < 10−7 analisando temos n = 1⇒ (2 + 2)! = 24 ⇒ ( π 4 ) 4 4! ≈ 0.15× 10−1 n = 2⇒ (4 + 2)! = 720 ⇒ ( π 4 ) 6 6! ≈ 0.326× 10−3 n = 3⇒ (6 + 2)! = 40320 ⇒ ( π 4 ) 8 8! ≈ 3.590860× 10−6 n = 4⇒ (8 + 2)! = 3628800 ⇒ ( π 4 ) 10 10! ≈ 2.461137× 10−8 54 / 67 Exemplos Solução Exemplo 3 ou seja, para que (π4 ) 2n+2 (2n+ 2)! < 10−7 temos que n ≥ 4. Portanto, precisamos usar um polinômio de Taylor de grau maior ou igual a 9 para atingir a precisão desejada. 55 / 67 Exemplos Exemplo 4 Seja f(x) = ex e a = 0. Determine n para que o erro ao se aproximar f(x) por um polinômio de Taylor seja menor do que 10−5 para −1 ≤ x ≤ 1. Solução Exemplo 4 Ou seja queremos saber, qual n satisfaz |Rn(x)| ≤ 10−5, x ∈ [−1, 1] Neste caso temos que o erro é dado por |Rn(x)| = ∣∣∣∣∣f (n+1)(t) (x− 0)n+1 (n+ 1)! ∣∣∣∣∣ = ∣∣∣∣∣ etxn+1 (n+ 1)! ∣∣∣∣∣ 56 / 67 Exemplos Solução Exemplo 4 Assim |Rn(x)| = ∣∣∣∣∣ etxn+1 (n+ 1)! ∣∣∣∣∣ ≤ e1|xn+1| (n+ 1)! < 3 (n+ 1)! < 10−5 ou seja 3 < 10−5(n+ 1)! ⇒ (n+ 1)! > 3 · 105 ⇒ (n+ 1)! > 300000 Analisando 7! = 5040, 8! = 40430, 9! = 362880 concluímos que se n ≥ 8, então (n+ 1)! > 300000 o que garante que o erro satisfaz |Rn(x)| < 10−5. 57 / 67 Aproximação de Derivada Considere que uma função f(x), cuja expressão é desconhecida, seja fornecida por meio de um conjunto de pontos (x0, f(x0)), (x1, f(x1)), ..., (xn, f(xn)). Como calcular f ′(xi) ? Podemos usar polinômio de Taylor para aproximar as derivadas da função. 58 / 67 Aproximação de Derivada Para calcular a derivada f ′(xi) em cada ponto xi, vamos usar um polinômio de Taylor linear em torno do ponto xi. I Diferença Progressiva: x = xi+1 f(xi+1) = f(xi) + f ′(xi) h︷ ︸︸ ︷ (xi+1 − xi) f ′(xi) = f(xi+1)− f(xi) h I Diferença Regressiva: x = xi−1 f(xi−1) = f(xi) + f ′(xi) −h︷ ︸︸ ︷ (xi−1 − xi) f ′(xi) = f(xi)− f(xi−1) h 59 / 67 Aproximação de Derivada I Diferença Central: x = xi+1 e x = xi−1 f(xi+1) = f(xi) + f ′(xi)h f(xi−1) = f(xi)− f ′(xi)h subtraindo, temos f(xi+1)− f(xi−1) = 2hf ′(xi) que resulta em f ′(xi) = f(xi+1)− f(xi−1) 2h 60 / 67 Aproximação de Derivada I A diferença central é mais precisa para aproximar a derivada. I As derivadas de alta ordem são calculadas de forma similar. I Quanto mais pontos em um intervalo [a, b], ou seja, quanto menor o espaçamento h entre eles, melhor a qualidade da aproximação. 61 / 67 Aproximação de Derivada Exemplo 5 Calcule f ′(1.3) para f(x) = log (x) usando diferença progressiva e central para h = 0.01 e h = 0.001. Solução Exemplo 5 Usando h = 0.01, com diferença progressiva temos f ′(1.3) ≈ log (1.31)− log (1.30) 0.01 = 0.76628 Com diferença central temos f ′(1.3) ≈ log (1.31)− log (1.29) 2 · 0.01 = 0.76924 62 / 67 Aproximação de Derivada Solução Exemplo 5 Usando h = 0.001, com diferença progressiva temos f ′(1.3) ≈ log (1.301)− log (1.300) 0.001 = 0.76893 com diferença central temos f ′(1.3) ≈ log (1.301)− log (1.299) 2 · 0.001 = 0.76923 Podemos calcular o valor real usando a derivada de f(x), pois neste caso conhecemos a expressão da função. O resultado é f ′(x) = 1 x ⇒ f ′(1.3) = 0.76923 63 / 67 Aproximação de Derivada Exemplo em Python from pylab import * def f(x): return exp(x)*sin(x) def df(x): return exp(x)*sin(x) + exp(x)*cos(x) def aprox(f,x,h): return (f(x+h)-f(x))/h def aproxCentral(f,x,h): return (f(x+h)-f(x-h))/(2*h) 64 / 67 Aproximação de Derivada Exemplo em Python if __name__ == "__main__": hh = 0.001 xx = arange(-2, 2, hh) yy = df(xx) # diferenca progressiva e central h = 0.01 x = arange(-2,2, h) d1 = aprox(f,x,h) d2 = aproxCentral(f,x,h) # exibe grafico plot(xx, yy, label=’Derivada Analitica’) plot(x, d1, ’o’, label=’Aprox. Diferenca Progressiva’) plot(x, d2, ’^’, label=’Aprox. Diferenca Central’) show() 65 / 67 Aproximação de Derivada Exemplo em Python (h=0.1) 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 1 0 1 2 3 4 5 Derivada Analitica Aprox. Diferenca Progressiva Aprox. Diferenca Central 66 / 67 Aproximação de Derivada Exemplo em Python (h=0.05) −2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 −1 0 1 2 3 4 5 Derivada Analitica Aprox. Diferenca Progressiva Aprox. Diferenca Central 67 / 67
Compartilhar