This repository has been archived on 2025-01-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
MO_pracadomowa/bisekcja/bisekcja.py
2025-01-13 21:41:40 +01:00

45 lines
1.0 KiB
Python

from math import fabs
import matplotlib.pyplot as plt
import numpy as np
def f(x):
left_side = 2*np.cos(x + (np.pi/6)) + x**2
right_side = 4 * x - 3
return left_side - right_side
def oblicz(a,b):
x1,x2 = a,b
x = 0
epsi = 0.01
while(fabs(f(x)) > epsi):
x = (x1 + x2) / 2
y = f(x)
y1 = f(x1)
if y*y1 < 0:
x2 = x
elif y*y1 > 0:
x1 = x
return x
a,b = -2,7
print(f"Pierwiastek: {round(oblicz(a,b), 4)}")
x = np.linspace(-15, 15, 1000)
y = f(x)
plt.figure(figsize=(10, 6))
plt.plot(x, y, label=r"$f(x) = 2\cos(x + \frac{\pi}{6}) + x^2 - (4x - 3)$", color="blue")
plt.axhline(0, color="black", linestyle="--", linewidth=0.8) # Add x-axis
plt.axvline(0, color="black", linestyle="--", linewidth=0.8) # Add y-
plt.axvline(a, color="red", linestyle="-", linewidth=2, label="a = {:.2f}".format(a))
plt.axvline(b, color="green", linestyle="-", linewidth=2, label="b = {:.2f}".format(b))
plt.title("Bisekcja")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.legend()
plt.grid()
plt.show()