Jag ska ange de fyra första intervallen med intervallhalveringsmetoden för att lösa en ekv.
Jag tog hjälp av denna koden och skrev in önskade intervall, dem 5 första alltså. Och fick till första intervallen I1 till [-1,3] vilket verkar vara ett gott tecken. Och sedan är jag dock osäker på dem nästkommande intervallen. Jag är osäker på om jag har använt rätt kod på alla kommandorader.
import numpy as np
def equation(x):
return x - np.cos(x)/2
def interval_halving(fun, I_in, tol):
a = I_in[0]
b = I_in[1]
intervals = []
while b - a > tol:
c = (a + b) / 2
if fun(a) * fun(c) <= 0:
intervals.append([a, c])
b = c
else:
intervals.append([c, b])
a = c
return intervals[:5] # Första 5 intervallen
# Anropa funktionen med ekvationen och intervallet I1
intervals = interval_halving(equation, [-5, 3], 1e-5)
# Skriv ut de 5 första intervallen
for i in range(5):
print(intervals[i])
==
[-1.0, 3]
[-1.0, 1.0]
[0.0, 1.0]
[0.0, 0.5]
[0.25, 0.5]