import matplotlib.pyplot as plt import numpy as np # Parametry ruchu liniowego v = 5 # prędkość w m/s s0 = 2 # początkowe położenie w m # Funkcja liniowa: s(t) = v * t + s0 t = np.linspace(0, 8, 100) # dokładniejszy przedział czasu do rysowania wykresu s_linear = v * t + s0 # położenie dla funkcji liniowej # Funkcja kwadratowa: s_quad(t) = a*t^2 + b*t + c a, b, c = 1, -5, 5 # dobór współczynników do uzyskania 2 punktów przecięcia s_quad = a * t**2 + b * t + c # położenie dla funkcji kwadratowej # Znajdowanie punktów przecięcia intersection_points = [] for i in range(len(t)): if np.isclose(s_linear[i], s_quad[i], atol=0.1): # tolerancja na różnice wartości intersection_points.append((t[i], s_linear[i])) # Rysowanie wykresów plt.figure(figsize=(10, 6)) plt.plot(t, s_linear, label=f'Liniowa: s(t) = {v}*t + {s0}', color='b') plt.plot(t, s_quad, label=f'Kwadratowa: s(t) = {a}*t^2 + ({b})*t + {c}', color='r') plt.xlabel("Czas (s)") plt.ylabel("Położenie s (m)") plt.title("Wykres zależności położenia s od czasu t") # Oznaczanie punktów przecięcia for x, y in intersection_points: plt.plot(x, y, 'go') # zielony punkt dla przecięć plt.text(x, y, f'({x:.2f}, {y:.2f})', fontsize=9, ha='right') plt.legend() plt.grid(True) plt.show()