Você está na página 1de 3

Viviane Noecir-Sp3099415

CANUA – Atividade 2

1. Utilizar o Método da Bissecção manualmente, para determinar os zeros das funções a


seguir, com tolerância 0,5.10-3.

a) 𝒇(𝒙) = 𝒙 + 𝒄𝒐𝒔(𝒙) em [-1, 1].

Com 3 DSE, z~= -0,739.

b) 𝒇(𝒙) = 𝒆 𝒙 + 𝒙𝟐 − 𝟏𝟎 em [2, 4].

Com 3 DSE, z~= 3,156.

2. Utilizar o Método de Newton-Raphson manualmente, para determinar os zeros


das funções do exercício 1, com tolerância 0,5.10-3.
Viviane Noecir-Sp3099415

3. Explicar qual dos dois métodos convergiu mais rápido para determinar os
zeros das funções do exercício 1.

O segundo método converge mais rápido por ter menos interações.

4. Implementar, em linguagem C, os algoritmos ZeroBisseccao e ZeroNewton e


usá-los para determinar os zeros das funções ou do item a), ou do item b) do
exercício 1, com tolerância 0,5.10-9.

Algoritmo em Phyton = Bissecção; questão 1.a

import math

def f(x):
return x + math.cos(x)

a = -1.0 # Valor inicial de a


b = 1.0 # Valor inicial de b
tol = 1e-10
cont = 0
Ni = 100

while True:
c=b-a
x0 = (a + b) / 2.0
Viviane Noecir-Sp3099415
if c < tol or math.fabs(f(x0)) < tol:
break

if f(a) * f(x0) < 0.0:


b = x0
elif f(a) * f(x0) > 0.0:
a = x0

cont = cont + 1

if cont >= Ni:


break

print("\n\n\nRaiz: %f\nIterações: %i\nf(%f) = %f" % (x0, cont, x0, f(x0)))

Para ZeroNewton -python

import math

def f(x):
return x + math.cos(x)

def df(x):
return 1 - math.sin(x)
x0 = 0.0
tol = 1e-10
N0 = 100
x = 0.0
i=1

while math.fabs(f(x0)) > tol:


x = x0 - f(x0) / df(x0)
x0 = x
i=i+1
if i >= N0:
break

if i < N0:
print("\n\nRaiz: %f\nIterações: %d\nf(%f) = %f" % (x, i, x, f(x)))

Você também pode gostar