Buscar

Lista_ID p0FrhjnkV

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

Continue navegando