Data la funzione: valuto la convergenza (Python)
#data la seguente funzione
def func(x):
return x**3 - x**2 + 3
#disegno la funzione
import numpy as np
xx = np.linspace(-30, 30, 100)
import matplotlib.pyplot as plt
#ho bisogno della funzione
#definire linspace e inoltre "-"
plt.plot(func(xx), xx, '-')
plt.show()
#calcolo gli zeri della funzione
#utilizzo metodi: bisezione, newton e brent
import scipy.optimize as zeri
#bisezione
#ha bisogno della funzione e dell'intervallo
bis = zeri.bisect(func, a=-20, b=30, full_output=True)
print("bisezione ", bis)
#metodo di newton
#ha bisogno della funzione, derivata prima e di un punto #secanti
newt = zeri.newton(func, x0 = -2)
print("secanti", newt)
#newton: ha bisogno della funzione e della derivata prima
def func_d(x):
return 3*x**2 - 2*x
newton_tr = zeri.newton(func, fprime=func_d, x0 = -2)
print("newton", newton_tr)
#brent, ha bisogno di una funzione e dell'intervallo
bre = zeri.brentq(func, a =-20, b= 30, full_output=True)
print("brent ", bre)