Untitled
unknown
python
2 years ago
1.2 kB
2
Indexable
import numpy as np import matplotlib.pyplot as plt # Inicjalizacja pustych list na dane eksperymentalne x_values = [] y_values = [] # Pobieranie danych z klawiatury w pętli nieskończonej while True: x = float(input('Podaj wartość x lub 999, aby zakończyć: ')) y = float(input('Podaj wartość y lub 999, aby zakończyć: ')) if x == 999 and y == 999: break x_values.append(x) y_values.append(y) # Konwersja danych na tablicę NumPy x_array = np.array(x_values) y_array = np.array(y_values) # Stopień pierwszy, funkcja liniowa dla uzyskania prostej degree = 1 # Aproksymacja średniokwadratowa wsp = np.polyfit(x_array, y_array, degree) #Współczynniki # Funkcja aproksymacyjna f = np.poly1d(wsp) a1,a0 = wsp # Pozyskanie punktów x_range = np.linspace(min(x_array), max(x_array), 100) y_aprox = f(x_range) # Wykresy plt.scatter(x_array, y_array, color='red', label='Dane eksperymentalne') # Wykres punktowy plt.plot(x_range, y_aprox, color='blue', label='Aproksymacja') # Wykres liniowy plt.xlabel('x') plt.ylabel('y') plt.title(f'Równanie prostej: y = {a1:+5.4f}x {a0:+5.4f}') plt.legend() plt.grid(True) plt.savefig('Wynik_aproksymacji.png')# Zapis do pliku plt.show()
Editor is loading...