Spaces:
Runtime error
Runtime error
feat: enhance Gradio interfaces for first-order and second-order ODE solvers with improved descriptions and examples
Browse files
maths/differential_equations/solve_first_order_ode.py
CHANGED
@@ -67,7 +67,7 @@ first_order_ode_interface = gr.Interface(
|
|
67 |
fn=lambda ode_str, t_span_str, y0_str, t_eval_count, method: solve_first_order_ode(
|
68 |
string_to_ode_func(ode_str, ('t', 'y')),
|
69 |
parse_time_span(t_span_str),
|
70 |
-
parse_float_list(y0_str),
|
71 |
int(t_eval_count),
|
72 |
method
|
73 |
),
|
@@ -87,9 +87,20 @@ first_order_ode_interface = gr.Interface(
|
|
87 |
gr.JSON(label="Raw Data (t, y values)", visible=lambda res: res['success']) # For users to copy if needed
|
88 |
],
|
89 |
title="First-Order ODE Solver",
|
90 |
-
description="
|
91 |
-
|
92 |
-
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
flagging_mode="manual"
|
95 |
)
|
|
|
67 |
fn=lambda ode_str, t_span_str, y0_str, t_eval_count, method: solve_first_order_ode(
|
68 |
string_to_ode_func(ode_str, ('t', 'y')),
|
69 |
parse_time_span(t_span_str),
|
70 |
+
parse_float_list(y0_str),
|
71 |
int(t_eval_count),
|
72 |
method
|
73 |
),
|
|
|
87 |
gr.JSON(label="Raw Data (t, y values)", visible=lambda res: res['success']) # For users to copy if needed
|
88 |
],
|
89 |
title="First-Order ODE Solver",
|
90 |
+
description="""
|
91 |
+
Solves dy/dt = f(t, y) or a system of first-order ODEs.
|
92 |
+
|
93 |
+
- Enter a Python lambda for the ODE (e.g., `lambda t, y: -y*t`).
|
94 |
+
- For systems, use `y` as a list: `lambda t, y: [y[1], -0.1*y[1] - y[0]]`.
|
95 |
+
- Initial conditions: single value (e.g., `1`) or comma-separated for systems (e.g., `1,0`).
|
96 |
+
|
97 |
+
**Examples:**
|
98 |
+
|
99 |
+
- Simple: `lambda t, y: -y*t`, y0: `1`, t_span: `0,5`
|
100 |
+
- System: `lambda t, y: [y[1], -0.1*y[1] - y[0]]`, y0: `1,0`, t_span: `0,20`
|
101 |
+
- Lotka-Volterra: `lambda t, y: [1.5*y[0] - 0.8*y[0]*y[1], 0.5*y[0]*y[1] - 0.9*y[1]]`, y0: `10,5`, t_span: `0,20`
|
102 |
+
|
103 |
+
WARNING: Uses eval() for the ODE function string - potential security risk.
|
104 |
+
""",
|
105 |
flagging_mode="manual"
|
106 |
)
|
maths/differential_equations/solve_second_order_ode.py
CHANGED
@@ -104,8 +104,18 @@ second_order_ode_interface = gr.Interface(
|
|
104 |
gr.JSON(label="Raw Data (t, y, dy_dt values)", visible=lambda res: res['success'])
|
105 |
],
|
106 |
title="Second-Order ODE Solver",
|
107 |
-
description="
|
108 |
-
|
109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
flagging_mode="manual"
|
111 |
)
|
|
|
104 |
gr.JSON(label="Raw Data (t, y, dy_dt values)", visible=lambda res: res['success'])
|
105 |
],
|
106 |
title="Second-Order ODE Solver",
|
107 |
+
description="""
|
108 |
+
Solves d²y/dt² = f(t, y, dy/dt) for a single second-order ODE.
|
109 |
+
|
110 |
+
- Enter a Python lambda for the ODE (e.g., `lambda t, y, dy_dt: -0.1*dy_dt - math.sin(y)`).
|
111 |
+
- Initial y(t_start) and dy/dt(t_start) must be single values.
|
112 |
+
|
113 |
+
**Examples:**
|
114 |
+
|
115 |
+
- Damped oscillator: `lambda t, y, dy_dt: -0.1*dy_dt - y`, y0: `1.0`, dy0/dt: `0.0`, t_span: `0,20`
|
116 |
+
- Simple pendulum: `lambda t, y, dy_dt: -9.81/1.0 * math.sin(y)`, y0: `math.pi/4`, dy0/dt: `0`, t_span: `0,10`
|
117 |
+
|
118 |
+
WARNING: Uses eval() for the ODE function string - potential security risk.
|
119 |
+
""",
|
120 |
flagging_mode="manual"
|
121 |
)
|