WPROWADZENIE
Matematyka bywa abstrakcyjna, ale nic nie pomaga jej zrozumieć tak bardzo, jak dobry wykres. Dzięki połączeniu bibliotek Matplotlib i NumPy, stworzyłeś narzędzie, które w ułamku sekundy zamienia tekstowe równanie w profesjonalną ilustrację. Ten program to idealny przykład na to, jak kod może ułatwić naukę i analizę danych.
Zasada działania
Program to interaktywny generator wykresów funkcji, zaprojektowany z myślą o środowisku Google Colab lub Jupyter Notebook. Użytkownik nie musi edytować skomplikowanego kodu – wystarczy wpisać wzór funkcji $$3x^2 lub sin(x)$$ oraz wybrać zakres osi X za pomocą suwaka. Narzędzie automatycznie interpretuje zapis matematyczny i generuje czytelny, estetyczny wykres z siatką i legendą.
Pomysły na zastosowanie
Ten skrypt to nie tylko ciekawostka programistyczna, ale realna pomoc w wielu dziedzinach:
- Pomoc w nauce (Edutainment): Szybkie sprawdzanie wyników zadań domowych z analizy matematycznej lub naukę o tym, jak współczynniki $$a$$ w funkcji $$ax^2$$) wpływają na kształt paraboli.
- Analiza przebiegu zmienności funkcji: Wizualizacja miejsc zerowych, ekstremów oraz asymptot w szerokim zakresie danych.
- Szybkie prototypowanie: Zamiast używać ciężkich programów typu WolframAlpha czy GeoGebra, możesz błyskawicznie wygenerować wykres bezpośrednio w swoim środowisku programistycznym.
- Tworzenie materiałów edukacyjnych: Możliwość łatwego wygenerowania grafik do prezentacji lub artykułów naukowych.
KOD W JĘZYKU PYTHON
import matplotlib.pyplot as plt
import numpy as np
import re
#@title Generator Wykresów Funkcji { run: "auto" }
#@markdown Wpisz wzór funkcji poniżej i naciśnij Enter lub przycisk odtwarzania po lewej.
formula_input = "3x^3" #@param {type:"string"}
zakres_x = 33 #@param {type:"slider", min:1, max:100, step:1}
def parse_formula(formula):
"""Konwertuje wzór na format czytelny dla Pythona."""
formula = formula.replace('^', '**')
# Wstawia * między cyfrę a x (np. 2x -> 2*x)
formula = re.sub(r'(\d)([a-zA-Z(])', r'\1*\2', formula)
return formula
def draw_plot(formula_input, x_range):
try:
formula_eval = parse_formula(formula_input)
# Definicja zakresu x
x = np.linspace(-x_range, x_range, 400)
# Dozwolone funkcje matematyczne
allowed_names = {
"x": x,
"sin": np.sin,
"cos": np.cos,
"tan": np.tan,
"sqrt": np.sqrt,
"exp": np.exp,
"log": np.log,
"pi": np.pi,
"abs": np.abs
}
y = eval(formula_eval, {"__builtins__": {}}, allowed_names)
# Tworzenie wykresu
plt.figure(figsize=(10, 6))
plt.plot(x, y, label=f'f(x) = {formula_input}', color='blue', linewidth=2)
plt.title(f"Wykres funkcji: {formula_input}", fontsize=14)
plt.xlabel("Oś X")
plt.ylabel("Oś Y")
# Osie współrzędnych
plt.axhline(0, color='black', linewidth=1)
plt.axvline(0, color='black', linewidth=1)
plt.grid(True, linestyle='--', alpha=0.6)
plt.legend()
# Ustawienie limitów osi Y dla lepszej czytelności (opcjonalne)
if isinstance(y, np.ndarray):
y_min, y_max = np.nanmin(y), np.nanmax(y)
if not np.isinf(y_min) and not np.isinf(y_max):
plt.ylim(max(y_min - 1, -x_range*2), min(y_max + 1, x_range*2))
plt.show()
except Exception as e:
print(f"BŁĄD: Nie można narysować wykresu. Sprawdź wzór.\nSzczegóły: {e}")
# Uruchomienie rysowania
draw_plot(formula_input, zakres_x)⬆️⬆️⬆️ Zobacz w Google Colaboratory
JAK DZIAŁA PROGRAM?
Działanie programu można podzielić na cztery kluczowe etapy:
- Pobranie i czyszczenie danych (Parsing): Program przyjmuje wzór w formacie „przyjaznym dla człowieka” (np. $$x^2$$). Funkcja
parse_formulazamienia go na format zrozumiały dla Pythona, zmieniając symbol potęgowania^na**oraz dodając brakujące znaki mnożenia (np. zamiana2xna2*x). - Przygotowanie dziedziny: Za pomocą
np.linspaceprogram tworzy gęstą listę 400 punktów na osi X w zakresie wybranym przez użytkownika. Dzięki temu krzywe na wykresie są gładkie. - Bezpieczne obliczenia: Funkcja
eval()oblicza wartości Y dla każdego punktu X. Co ważne, program korzysta z białej listy dozwolonych funkcji (jaksin,cos,log), co zwiększa bezpieczeństwo i zapobiega błędom przy wpisywaniu komend. - Renderowanie obrazu: Biblioteka Matplotlib rysuje wynik. Program automatycznie dodaje osie współrzędnych, siatkę pomocniczą oraz inteligentnie dopasowuje limity osi Y, aby wykres był zawsze czytelny i nie „uciekał” poza ekran przy bardzo dużych wartościach.












Leave a Reply