Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Implemente uma função que retorna uma aproximação de raiz de f (x) = ex − 1 x Solução: Para resolver esta questão vamos considerar o intervalo [0.25,1], pois a função não está definida em zero. Desta forma, vamos aplicar o método da bissecção com as im- plementações sugeridas. Ainda, consideraremos x0 = 1 como valor inicial para o método de Newton. Assim, comparamos os resultados. Quando rodamos os códigos, com uma tolerância de ε = 0,001, correspondentes aos itens B,C e D os resultados foram x̄ ≈ 0,56. Por outro lado, o código do item A obtemos como resultado 1, e f (1) = 1,718282, ou seja, muito distante da solução exata. Portanto, o código errado corresponde ao item A. Ademais, isso poderia ser visto de imediado olhando o código onde vemos que a função retorna sempre o valor dado como inicial, isto é, x0. RaizNewtonRapson <- function(x0, eps){ x <- x0 while (f(x-eps)*f(x+eps) < 0) { x <- x - f(x)/fl(x) } return(x) } 2. Visualizamos abaixo o gráfico da função g(x) = 3(x−3)4 10 + 2(x−7)3 10 −2, esta função tem que satisfazer a condição g(x)> 0, pois é o logaritmando da função f (x). Logo, analisando o gráfico e calculando intervalos temos que no item B [x0−h,x0+h] = [5−0,3;5+0,3] = [4,7;5,3] que não está contido no domínio do intervalo, pois o limite inferior 4,7 não pertence ao domínio. 1 3. Temos que a derivada analítica da função é: −e−x/3(x4 − x3 − x2 − x+4) 3(x2 +1)2 . Desta forma implementamos no r da seguinte forma: df1 <- function(x){ return(-(exp(-x/3)*(x^4 - x^3 - x^2 - x + 4)/(3*(x^2 + 1)^2)) ) } Sendo assim, calculamos o seu valor em x0 = 5 e comparamos com as funções dadas no mesmo pontos. Com isso, a resposta correta é o item C cujo seu valor aplica em x0 é d f (5) = d f 1(5) =−0,04414548. #resposta C: df <- function(x){ return(-(exp(-x/3) * (1/(x^2 + 1) - x * (2 * x)/(x^2 + 1)^2) + exp(-x/3) * (1/3) * (1 - x/(x^2 + 1)))) } 4. Temos que a aproximação em série de Taylor para ex é: ex ≈ 1+ x 1! +1+ x2 2! +1+ x3 3! +1+ x4 4! +1+ x5 5! + . . . (1) Note que o fatorial aparece em todos termos em seu denominador, inclusive no primeiro termo que é 0!. Portanto o código errado é o item A é a resposta errada, pois além do fatorial aparecer em cada passo no numerador, o termo da potência em x aparece no denominador. #resposta A: AproxExp <- function(x, erro) { i <- 1 y <- x soma <- 1 + y repeat{ i <- i + 1 y <- factorial(i)/x^i soma <- soma + y if(abs(y) < erro) break } return(soma) } 5. O polinômio de grau 4 é: P(x) = 1− x 2 2 + x4 24 Para encontrar a solução, basta observar que as únicas possíveis são os itens A e B. Ade- mais, podemos calcular P(1)= 0,5416667, ou simplesmente calcular cos(1)= 0,5403023 e comparar os resultados com duas casas decimais após a vírgula. No entanto, notamos que P(1) é mais preciso com os resultados apresentados. Portanto, a resposta correta é o item B. 2
Compartilhar