A partir da Série de Taylor em torno de \(x_0 = 0\) para a função \(f(x) = e^x\) apresentada na aula teórica, encontre uma aproximações para \(e^{1}\) e \(e^{3}\) usando \(n=4\). Faça as contas na mão.
Implemente uma função que recebe como entrada \(x \in \mathbb{R}\) e \(n \in \mathbb{N}\) e retorna o polinômio \(\sum_{i=0}^n \frac{x^i}{i!}\) avaliado em \(x\). Chame essa função de pol_exp(x,n)
. Em seguida digite o código abaixo para ver como esse polinômio se aproxima da função exponencial quando \(n\) cresce. Veja também que a aproximação melhora quanto mais perto de \(0\) for o ponto avaliado ou quando maior for o valor de \(n\).
plot(exp,-4,4)
grid()
segments(x0=0,y0=0,x1=0,y1=150,lty=2)
curve(pol_exp(x,n=2),add=T,col="violet")
curve(pol_exp(x,n=3),add=T,col="red")
curve(pol_exp(x,n=4),add=T,col="blue")
curve(pol_exp(x,n=5),add=T,col="green")
Implemente o pseudocódigo visto na aula teórica que recebe como entrada x
e o valor de delta
e retorna uma aproximação para \(e^x\). Sugestão: indique um valor padrão para o argumento de entrada delta
, delta=0.001
, por exemplo, de forma que o usuário não precise informar esse valor caso ele não queria. Em seguida, use a função implementada para encontrar aproximações para \(e\), \(e^{-1}\), \(e^3\), \(\sqrt{e}\) e \(e^{7.3}\). Compare os resultados obtidos com os valores fornecidos pela função exp
já pronta no R.
Refaça o item 3 de forma que agora a função implementada retorne, além da aproximação para \(e^x\), o valor de \(n\) usado para realizar tal aproximação.
A partir Série de Taylor em torno de \(x_0 = 1\) para a função \(f(x) = \ln(x)\) use \(n=3\) e encontre uma aproximações para \(\ln(\frac{1}{10})\), \(\ln(\frac{3}{5})\) e \(\ln(4)\). Faça as contas na mão. Qual aproximação você acha que é mais precisa, a aproximação para \(\ln(\frac{1}{10})\) ou para \(\ln(\frac{3}{5})\)? Por quê?
Implemente uma função que recebe como entrada \(x \in \mathbb{R}\) e \(n \in \mathbb{N}\) e retorna o polinômio \(\sum_{i=0}^n (-1)^{i}\frac{(x-1)^{i+1}}{i+1}\) avaliado em \(x\). Chame essa função de pol_ln(x,n)
. Em seguida digite o código abaixo para ver como esse polinômio se aproxima da função \(\ln\) quando \(n\) cresce. Veja também que a aproximação melhora quanto mais perto de \(1\) for o ponto avaliado ou quando maior for o valor de \(n\).
plot(log,0,4)
grid()
segments(x0=1,y0=-4,x1=1,y1=10,lty=2)
curve(pol_ln(x,n=2),add=T,col="violet")
curve(pol_ln(x,n=3),add=T,col="red")
curve(pol_ln(x,n=4),add=T,col="blue")
curve(pol_ln(x,n=5),add=T,col="green")
Implemente o pseudocódigo visto em sala de aula que recebe como entrada um número real positivo x
e o valor de delta
e retorna uma aproximação para \(\ln(x)\). Sugestão: indique um valor padrão para o argumento de entrada delta
, delta=0.001
, por exemplo, de forma que o usuário não precise informar esse valor caso ele não queria. Em seguida, use a função implementada acima e encontre aproximações para \(\ln(0.1)\), \(\ln(2)\), \(\ln(10)\) e \(\ln(3.8)\). Compare os resultados com os valores fornecidos pela função log
já pronta do R.
Implemente uma função que retorna o logaritmos de x
em qualquer base, ou seja, essa função recebe como entrada x
, b
e delta
e retorna uma aproximação para \(\mathrm{log}_b(x)\). Para isso lembre-se da seguinte propriedade: \[\mathrm{log}_b(x) = \frac{\mathrm{log}_a(x)}{\mathrm{log}_a(b)} \ \ \ \forall \ \ a,b,x \in \mathbb{R}^+ .\] Dica: essa nova função deve chamar a função implementada no Exercício 7 e usar a propriedade acima considerando \(a=e\). Sugestão: indique um valor padrão para o argumento de entrada delta
, delta=0.001
, por exemplo, de forma que o usuário não precise informar esse valor caso ele não queria.
Implemente o pseudocódigo visto em sala de aula que recebe como entrada um número real positivo x
e o valor de delta
e retorna uma aproximação para \(\mathrm{sen}(x)\). Aproveite a periodicidade da função e, a partir de uma chamada recursiva, simplifique o argumento até que ele esteja entre \(-\pi\) e \(\pi\). Sugestão: indique um valor padrão para o argumento de entrada delta
, delta=0.001
, por exemplo, de forma que o usuário não precise informar esse valor caso ele não queria. Em seguida use a função implementada e encontre aproximações para \(\mathrm{sen}(2)\), \(\mathrm{sen}(25)\), \(\mathrm{sen}(50º)\) e \(\mathrm{sen}\left(\pi/3\right)\). Compare os resultados obtidos com os valores fornecidos pela função sin
do R.
Implemente agora uma função que recebe como entrada x
e o valor de delta
e retorna \(\cos(x)\). Para isso perceba que a função cosseno é a função seno deslocada de \(\pi/2\), ou seja, \[
\cos(x) = \mathrm{sen}\left( x + \dfrac{\pi}{2} \right).
\] Sugestão: indique um valor padrão para o argumento de entrada delta
, delta=0.001
, por exemplo, de forma que o usuário não precise informar esse valor caso ele não queria. Em seguida use a função implementada e encontre aproximações para \(\mathrm{cos}(1)\), \(\mathrm{cos}(54)\), \(\mathrm{sen}(45º)\) e \(\mathrm{sen}\left(\pi/3\right)\). Compare os resultados obtidos com os valores fornecidos pela função cos
do R.