Buscar

Calculo Numerico - Lista 02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
 
UNIVERSIDADE FEDERAL DO MARANHÃO 
CAMPUS BALSAS 
CURSO DE CIÊNCIA E TECNOLOGIA 
DISCIPLINA: CÁLCULO NUMÉRICO 
DOCENTE: DR. ANDERSSON ALLES DE JESUS 
 
 
 
 
 
LISTA 2 
 
 
JHESSYCA DANTAS MANARY 
 
 
 
 
 
 
 
 
 
BALSAS - MA 
2021 
 
 
2 
 
 
UNIVERSIDADE FEDERAL DO MARANHÃO 
JHESSYCA DANTAS MANARY 
 
 
 
 
 
 
 
LISTA 2 
 
 
 
 
Lista de exercícios 
apresentado à disciplina 
Cálculo Numérico do 
curso Ciência e 
Tecnologia, como 
requisito para obtenção 
de nota. 
 
 
 
Docente: Dr. Andersson Alles de Jesus 
 
 
 
 
 
 
BALSAS - MA 
2021
 
 
3 
 
1. Implemente em Python o método da Bisecção 
 
def f(x): 
 return x**3 - 9*x + 3 
 
a = float (input('Insira o limite inferior a: ')) 
b = float (input('Insira o limite inferior b: ')) 
iteracoes = int (input('Insira o número de iterações: ')) 
iteracao = 0 
if f(a)*f(b)<0: 
 while iteracao <= iteracoes: 
 c = (a+b)/2 
 if f(a)*f(b)<0: 
 b = c 
 elif f(a)*f(b)<0: 
 a = c 
 iteracao += 1 
 
 print('A raiz encontrada foi x = ', c) 
 print('f(x)= ', f(c)) 
 
else: 
 print('Não há raízes neste intervalo.') 
 
 
 
4 
 
2. Implemente em Python o método da Falsa Posição 
 
import numpy as np 
 
f = lambda x: x-2**(-x) 
 
inter = lambda a,b,erro: 1 + int((np.log(b-a)-
np.log(erro))//np.log(2)) 
 
a,b,erro = 1,2,10**(-5) 
 
k = iter(a,b,erro) 
 
x = (a*f(b)-b*f(a))/(f(b)-f(a)) 
 
for i in range(k): 
 if np.abs(f(x)) >= erro: 
 if f(a)*f(x)<0: 
 b = x 
 else: 
 a = x 
 else: 
 break 
 
print("Solução numérica: %f" %x) 
print("Iterações: %d" %i) 
 
 
 
 
5 
 
3. Implemente em Python o método de Newthon 
 
import numpy as np 
import mpmath as mp 
mp.dps = 15; mp.pretty = True 
 
f = lambda x: x-2**(-x) 
 
inter = lambda a,b,erro: 1 + int((np.log(b-a)-
np.log(erro))//np.log(2)) 
 
a,b,erro = 1,2,10**(-5) 
k = iter(a,b,erro) 
 
for i in range(k): 
 x = a-(f(a)/mp.diff(f,a)) 
 
 if np.abs((x-a)/a)<erro: 
 break 
 a = x 
 
print("Solução numérica: %f" %x) 
print("Iterações: %d" %i) 
 
 
 
 
6 
 
4. Localize graficamente as raízes das equações a seguir: 
a) 𝟒𝒄𝒐𝒔(𝒙) − 𝒆𝟐𝒙 = 𝟎 
 
 
b) 
𝒙
𝟐
− 𝒕𝒂𝒏(𝒙) = 𝟎 
 
 
 
 
7 
 
c) 𝟏 − 𝒙𝒍𝒏(𝒙) = 𝟎 
 
 
d) 𝟐𝒙 − 𝟑𝒙 = 𝟎 
 
e) 𝒙𝟑 + 𝒙 − 𝟏𝟎𝟎𝟎 = 𝟎 
 
 
8 
 
 
5. Seja 𝒇(𝒙) = (𝒙 + 𝟐)(𝒙 + 𝟏)𝟐𝒙(𝒙 − 𝟏)𝟑(𝒙 − 𝟐). Para qual zero de f o 
método da Bisseção converge quando aplicado aos intervalos a 
seguir? 
 
a) [-1,5; 2,5] 
 
def f(x): 
return ((x+2)*((x+1)**2)*(x*(x-1)**3)*(x-def 
b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 2.5) or (f(c) < -(1.5)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n =+ c 
X.append(n) 
Y.append(c) 
return a, n, X, Y 
a,n,x,y = b(-1.5,2.5) 
print("o método da Bissecção converge para o valor:", n) 
 
 
9 
 
b) [-0,5; 2,4] 
 
def f(x): 
return ((x+2)*((x+1)**2)*(x*(x-1)**3)*(x-2)) 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 2.4) or (f(c) < -(0.5)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n =+ c 
X.append(n) 
Y.append(c) 
return a, n, X, Y 
a,n,x,y = b(-0.5,2.4) 
print("o método da Bissecção converge para o valor:", n) 
 
 
 
 
 
10 
 
c) [-0,5; 3] 
 
def f(x): 
return ((x+2)*((x+1)**2)*(x*(x-1)**3)*(x-def 
b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 3) or (f(c) < -(0.5)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n =+ c 
X.append(n) 
Y.append(c) 
return a, n, X, Y 
a,n,x,y = b(-0.5,3) 
print("o método da Bissecção converge para o valor:", n) 
 
 
 
 
 
11 
 
d) [-3; -0,5] 
 
def f(x): 
return ((x+2)*((x+1)**2)*(x*(x-1)**3)*(x-def 
b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > (3)) or (f(c) < -(0.5)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n =+ c 
X.append(n) 
Y.append(c) 
return a, n, X, Y 
a,n,x,y = b(-3, -0.5) 
print("o método da Bissecção converge para o valor:", n) 
 
 
 
 
6. Sabe-se que a função 𝒇(𝒙) = 𝒙𝟑 − 𝒙 − 𝟏 tem uma raiz no intervalo [1 , 2] 
. Calcule uma aproximação com precisão 𝜀 = 10−6 para esta raiz, 
utilizando algum critério de parada, por meio do método da bissecção. 
 
a) Resolva manualmente (Até 6 Iterações). 
a b x f(x) 
1 2 1,5 0,875 
1 1,5 1,25 -0,296 
1,25 1,5 1,375 0,224 
1,25 1,375 1,312 -0,051 
1,312 1,375 1,343 0,082 
1,312 1,343 1,327 0,012 
 
 
 
 
12 
 
b) Resolva computacionalmente. 
 
def f(x): 
return ((x**3) - (x) - 1) def b(a,b): 
c = b 
n = 0 X = [] 
Y = [] 
while (f(c) > 0.000001) or (f(c) <- (0.000001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: b = c 
elif f(c)*f(b) < 0: a = c 
n += 1 
X.append(n) Y.append(c) 
return c, n, X, Y a,n,x,y = b(1, 
 
print("O valor da aproximação será:",a) 
print("O número de interações será: ",n) 
 
7. Sabe-se que a função 𝒇(𝒙) = 𝒙𝟑 − 𝒙 − 𝟏 tem uma raiz no intervalo [1,2] . 
Calcule uma aproximação com precisão 𝜀 = 10−6 para esta raiz, 
utilizando algum critério de parada, por meio do método da posição 
falsa. 
a) Resolva manualmente (Até 6 Iterações) 
 
x f(x) 
1 -1 
1,2 -0,47 
1,4 0,34 
1,6 1,5 
1,8 3,03 
2 5 
 
 
a f(a) b f(b) x f(x) 
1 -1 2 5 1,16 -0,59 
1,16 -0,57 2 5 1,23 -0,3 
1,23 -0,3 2 5 1,29 -0,14 
1,29 -0,14 2 5 1,31 -0,062 
1,31 -0,062 2 5 1,32 -0,028 
1,32 -0,028 2 5 1,32 -0,004 
 
 
13 
 
b) Resolva computacionalmente 
 
def f(x): 
return ((x**3) - (x) - 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.000001) or (f(c) <- (0.000001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
return c, n, X, Y 
a,n,x,y = b(1,2) 
print(" O valor será: ", a) 
print("Número de interações: ", n) 
 
8. Dobre a convergência para a raiz de 𝑓(𝑥) = 𝑥3 − 𝑥 − 1, nos exercícios 4 e 
5: 
a) Justifique por que a convergência para a raiz foi mais rápida por 
meio do método da posição falsa, do que por meio do método da 
bissecção; 
A raiz converge mais rápido pelo fato do cálculo estar sendo feito através da 
média ponderada, o que faz com que o intervalo vá convergindo mais 
rápido para raiz real da função. 
 
 
 
 
 
 
 
 
 
 
 
14 
 
 
 
9. Empregue códigos computacionais para resolver as seguintes 
equações, empregando os métodos da Bisseção, Falsa Posição e 
Newton . Como tolerância (precisão), empregue 10-10 e número 
máximo de iterações igual a 100. Apresente o resultado em uma tabela 
com os seguintes dados: 𝑥 e 𝑓(𝑥) [solução e valor da função para a 
solução encontrada, ambas com 15 dígitos), erro estimado na última 
iteração e número de iterações efetuadas. 
a) 𝒆−𝒙
𝟐
− 𝒄𝒐𝒔(𝒙); [𝟏; 𝟐] 
# Método da Bissecção############### 
def f(x): 
return np.exp(-x**2)- np.cos(x) 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < -(0.0000000001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=100: 
break; 
return c, n, X, Y 
a,n,x,y = b(1,2) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15 
 
#Método da Falsa posição######### 
def f(x): 
return np.exp(-x**2)- np.cos(x) 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < - 
(0.0000000001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
 
b = c 
elif f(c)*f(b) < 0: 
a = c 
if n >=100: 
break; 
return c, n, X, Y 
 
a,n,x,y = b(1,2) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n)16 
 
##### Método de Newton ##### 
def f(x): 
return np.exp(-x**2)- np.cos(x) 
def df(x): 
return -2*np.exp(-x**2)* x - np.cos(x) 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < - (0.0000000001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=100: 
break; 
 
return c, n, X, Y 
 
a,n,x,y = b(1,2) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n) 
 
 
 
 
17 
 
b) 𝒙𝟑 − 𝒙 − 𝟏; [𝟏; 𝟐] 
####### Método da Bissecção ######## 
def f(x): 
return ((x**3) - x - 1) 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) <- (0.0000000001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=100: 
break; 
return c, n, X, Y 
a,n,x,y = b(1, 2) 
 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18 
 
###### Método da Falsa Posição ###### 
def f(x): 
return ((x**3) - x - 1) 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 1) or (f(c) < (100)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
if n >=100: 
break; 
return c, n, X, Y 
a,n,x,y = b(1,2) 
print(" O valor será: ", a) 
print("Número de interações: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19 
 
##### Método de Newton ##### 
def f(x): 
return ((x**3) - x - 1) 
def df(x): 
return 3*x**2 -1 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < - (0.0000000001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=100: 
break; 
 
return c, n, X, Y 
 
a,n,x,y = b(1,2) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20 
 
c) 𝟒𝒔𝒆𝒏(𝐱) − 𝐞𝐱 ; [0; 1] 
 
# Método da Bissecção############### 
def f(x): 
return 4*np.sin(x) - np.exp (x) 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < -(0.0000000001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=100: 
break; 
return c, n, X, Y 
a,n,x,y = b(0,1) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n)
 
 
21 
 
 
#Método da Falsa posição######### 
 def f(x): 
return 4*np.sin(x) - np.exp (x) 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < - 
(0.0000000001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
if n >=100: 
break; 
return c, n, X, Y 
 
a,n,x,y = b(0,1) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22 
 
##### Método de Newton ##### 
def f(x): 
return 4*np.sin(x) - np.exp (x) 
def df(x): 
return 4*np.cos(x) - np.exp(x) 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < - (0.0000000001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=100: 
break; 
return c, n, X, Y 
a,n,x,y = b(0,1) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23 
 
d) 𝑥log(𝑥) − 1; [2; 3] 
 
# Método da Bissecção############### 
def f(x): 
return x*np.log(x) - 1 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < -(0.0000000001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=100: 
break; 
return c, n, X, Y 
a,n,x,y = b(2,3) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24 
 
#Método da Falsa posição######### 
def f(x): 
return x*np.log(x) - 1 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < - 
(0.0000000001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
if n >=100: 
break; 
return c, n, X, Y 
 
a,n,x,y = b(2,3) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25 
 
 
##### Método de Newton ##### 
def f(x): 
return x*np.log(x) - 1 
def df(x): 
return np.log(x) + 1 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0000000001) or (f(c) < - (0.0000000001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=100: 
break; 
return c, n, X, Y 
a,n,x,y = b(2, 3) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26 
 
10. Utilize os métodos da Bisseção, Newton, Secante e Falsa Posição para 
encontrar soluções com precisão de 10-4 (ou 4 iterações) para os problemas a 
seguir. 
a) 𝑥 ³ − 𝑥 ² − 5 = 0; [1; 4] 
 
# Método da Bissecção############### 
def f(x): 
return x**3 - x**2 -5 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=4: 
break; 
return c, n, X, Y 
a,n,x,y = b(1,4) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27 
 
 
#Método da Falsa posição######### 
def f(x): 
return x**3 - x**2 - 5 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
if n >=4: 
break; 
return c, n, X, Y 
 
a,n,x,y = b(1,4) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28 
 
##### Método de Newton ##### 
def f(x): 
return x**3 - x**2 -5 
def df(x): 
return 3*x**2 - 2*x 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < - (0.0001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=4: 
break; 
return c, n, X, Y 
a,n,x,y = b(1, 4) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29 
 
b) x − cos(𝑥) = 0; [0; 𝜋⁄2] 
# Método da Bissecção############### 
def f(x): 
return x - np.cos(x) 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=4: 
break; 
return c, n, X, Y 
a,n,x,y = b(0, np.pi/2) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30 
 
#Método da Falsa posição######### 
 def f(x): 
return x - np.cos(x) 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b)< 0: 
a = c 
if n >=4: 
break; 
return c, n, X, Y 
 
a,n,x,y = b(0, np.pi/2) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31 
 
##### Método de Newton ##### 
def f(x): 
return x - np.cos(x) 
def df(x): 
return 1+np.sin(x) 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < - (0.0001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=4: 
break; 
 
return c, n, X, Y 
 
a,n,x,y = b(0, np.pi/2) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n)
 
 
32 
 
 
c) sen(𝑥) − 𝒆−𝒙 = 0; [0; 1] 
# Método da Bissecção############### 
def f(x): 
return np.sin(x) - np.exp(-x) 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=4: 
break; 
return c, n, X, Y 
a,n,x,y = b(0,1) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33 
 
#Método da Falsa posição######### 
 def f(x): 
return np.sin(x) - np.exp(-x) 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
if n >=4: 
break; 
return c, n, X, Y 
 
a,n,x,y = b(0,1) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34 
 
 
##### Método de Newton ##### 
def f(x): 
return np.sin(x) - np.exp(-x) 
def df(x): 
return np.cos(x) + np.exp(-x) 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < - (0.0001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=4: 
break; 
return c, n, X, Y 
a,n,x,y = b(0,1) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35 
 
d) 𝒆𝒙 − 𝟑𝒙𝟐 = 𝟎; [𝟑; 𝟓] 
# Método da Bissecção############### 
def f(x): 
return np.exp(x) - 3*x**2 
def b(a,b): 
c = b 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = (a+b)/2 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
n += 1 
X.append(n) 
Y.append(c) 
if n >=4: 
break; 
return c, n, X, Y 
a,n,x,y = b(3,5) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36 
 
#Método da Falsa posição######### 
def f(x): 
return np.exp(x) - 3*x**2 
def b(a,b): 
c = 1 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < -(0.0001)): 
c = b - ((f(b)*(b-a))/(f(b)- f(a))) 
n += 1 
X.append(n) 
Y.append(c) 
if c==a or c==b: 
return c, n, X, Y 
if f(c)*f(a) < 0: 
b = c 
elif f(c)*f(b) < 0: 
a = c 
if n >=4: 
break; 
return c, n, X, Y 
 
a,n,x,y = b(3,5) 
print("O valor da aproximação será: ", a) 
print("O número de interações será: ", n) 
 
 
37 
 
 
##### Método de Newton ##### 
def f(x): 
return np.exp(x) - 3*x**2 
def df(x): 
return np.cos(x) + np.exp(-x) 
def b(a,b): 
c = a 
n = 0 
X = [] 
Y = [] 
while (f(c) > 0.0001) or (f(c) < - (0.0001)): 
c = a - (f(a)/df(a)) 
n += 1 
X.append(n) 
Y.append(c) 
if a==c: 
return c, n, X, Y 
a = c 
if n >=4: 
break; 
return c, n, X, Y 
a,n,x,y = b(3, 5) 
print("O valor da raiz será: ", a) 
print("O valor de interações será: ", n)

Continue navegando