Escolar Documentos
Profissional Documentos
Cultura Documentos
2106-0290
Atividade 01
Questã o 01:
O ú nico problema do meu algoritmo é que, por nã o ter usado a biblioteca sympy, o algoritmo nã o
trabalha com todas as funçõ es. Nã o a baixei, pois uso um PC que nã o é meu.
Ficou assim:
import math
tol = 1^(-6)
def f(x):
#print(f(a)*f(b))
if f(a) == 0:
if f(b) == 0:
if f(a)*f(b) < 0:
xi = (a+b)/2
#print(xi)
if f(xi) ==0:
break
#caso seja falso, temos que analisar o lado da funçã o
else:
b = xi
else:
a = xi
else:
Questão 02:
e = 0.0001 #epsilon
x0 = -2
import math
if abs(f(x0)) <= e: #f é a funçã o, g sua sua derivada, x0 é... x0, e é epsilon, N é o má ximo de iteraçõ es
return x0
a = 0 #nº de interaçã o
a += 1
if abs(f(x1)) <= e:
return x1
x0=x1 #vou trabalhar sempre com x0, x1 - valor descoberto, será x0. E o laço termina até e <=
0.0001, ou a > 100
def f(x):
def g(x):
print(raiz)
O que obtive:
a x0 f(x0)
1 -5.813825e-01 -2.892689e+00
2 -2.159269e+00 2.491056e+00
3 1.327729e+00 -2.411041e+00
4 5.871278e+00 3.546102e+01
5 4.185708e+00 1.244968e+01
6 -1.652089e+01 2.708491e+02
7 -1.242262e+01 1.394087e+02
8 -4.144690e+00 1.592657e+01
9 -3.163213e+00 3.845662e+00
10 -2.476591e+00 2.542903e+00
11 -2.908451e+01 8.443489e+02
12 -2.182542e+01 4.527115e+02
13 -5.941031e+00 2.769240e+01
14 1.759633e+00 -1.539317e+00
15 2.155599e+00 8.048097e-01
16 2.053589e+00 4.886795e-02
17 2.046523e+00 2.491068e-04
18 2.046487e+00 6.627460e-09
2.0464865998256525
18 "tentativas"...
Agora, tentarei com x0 = 2:
e = 0.0001 #epsilon
x0 = 2
import math
def newton(f, g, x0, e, N):#f é a funçã o, g sua sua derivada, x0 é... x0, e é epsilon, N é o má ximo de
iteraçõ es
if abs(f(x0)) <= e:
return x0
a=0
a += 1
if abs(f(x1)) <= e:
return x1
x0=x1 #vou trabalhar sempre com x0, x1 - valor descoberto - será x1. E o laço termina até e <= 0 ou
a > 100
print("ultrapassou N :(") #se o laço terminar, é porque ultrapassamos N, e aparecerá essa mensagem.
return x1
def f(x):
def g(x):
print(raiz)
E o output:
a x0 f(x0)
1 2.048213e+00 1.183047e-02
2 2.046489e+00 1.486363e-05
2.046488770316523