Spaces:
Build error
Build error
| import gradio as gr | |
| import matplotlib.pyplot as plt | |
| import numpy as np | |
| import sympy as sp | |
| def plot_function(func_str): | |
| # x ve y sembollerini tanımlıyoruz. | |
| x, y = sp.symbols('x y') | |
| try: | |
| # Denklemde eşitlik işareti var mı? | |
| if "=" in func_str: | |
| parts = func_str.split("=") | |
| if len(parts) != 2: | |
| return "Hata: Denklem 'sol taraf = sağ taraf' formatında olmalıdır." | |
| lhs, rhs = parts | |
| lhs_expr = sp.sympify(lhs.strip()) | |
| rhs_expr = sp.sympify(rhs.strip()) | |
| # Denklem: sol taraf - sağ taraf = 0 şeklinde düzenlenir. | |
| eq = lhs_expr - rhs_expr | |
| # y'yi x cinsinden çözmeye çalışıyoruz. | |
| sol = sp.solve(eq, y) | |
| if not sol: | |
| return "Hata: Denklemin y cinsinden çözümü bulunamadı." | |
| expr = sol[0] | |
| else: | |
| # "=" yoksa girilen ifadeyi doğrudan y olarak kabul et. | |
| expr = sp.sympify(func_str) | |
| except Exception as e: | |
| return f"Hata: Fonksiyon ifadesi geçersiz: {e}" | |
| try: | |
| # x değişkeni için numpy uyumlu fonksiyon oluşturuyoruz. | |
| f = sp.lambdify(x, expr, modules=["numpy"]) | |
| except Exception as e: | |
| return f"Hata: Fonksiyon dönüştürülemedi: {e}" | |
| # x aralığı: -10'dan 10'a 400 eşit aralık. | |
| x_vals = np.linspace(-10, 10, 400) | |
| try: | |
| y_vals = f(x_vals) | |
| except Exception as e: | |
| return f"Hata: Fonksiyon hesaplanamadı: {e}" | |
| # Grafik çizimi | |
| fig, ax = plt.subplots() | |
| ax.plot(x_vals, y_vals, label=f"y = {sp.pretty(expr)}") | |
| ax.set_xlabel("x") | |
| ax.set_ylabel("y") | |
| ax.set_title("Fonksiyon Grafiği") | |
| ax.legend() | |
| ax.grid(True) | |
| return fig | |
| iface = gr.Interface( | |
| fn=plot_function, | |
| inputs=gr.Textbox(lines=1, label="Fonksiyon Denklemi", placeholder="Örnek: 2y=3x+2 veya x**2+3"), | |
| outputs=gr.Plot(label="Grafik"), | |
| title="Fonksiyon Grafiği Çizici", | |
| description="Fonksiyon denklemini giriniz. Örneğin, '2y=3x+2' girildiğinde y'nin x cinsinden çözümü alınarak grafiği çizilir. Fonksiyon ifadesinin Python sözdizimine uygun olmasına dikkat ediniz." | |
| ) | |
| if __name__ == "__main__": | |
| iface.launch() | |