Taizun commited on
Commit
e3ba37d
·
verified ·
1 Parent(s): aaada7e

Update solver.py

Browse files
Files changed (1) hide show
  1. solver.py +19 -6
solver.py CHANGED
@@ -1,7 +1,7 @@
1
  import sympy as sp
2
  from sympy.parsing.sympy_parser import parse_expr, standard_transformations, implicit_multiplication_application
3
  from sympy.solvers import solve
4
- from sympy import integrate, diff, latex,simplify, expand, log, exp, sin, cos, tan, asin, acos, atan, Symbol, factorial, laplace_transform
5
  import re
6
  def format_expression(expr):
7
  latex_expr = latex(expr)
@@ -113,12 +113,25 @@ def process_expression(expr_str):
113
  result = diff(expr, x)
114
  return f"d/dx({format_expression(expr)}) = {format_expression(result)}"
115
 
 
116
  elif 'sqrt' in processed_expr: # Handle square roots
117
- expr = parse_expr(processed_expr, transformations=(standard_transformations + (implicit_multiplication_application,)))
118
- result = sp.sqrt(expr)
119
- positive_root = result
120
- negative_root = -result
121
- return f"√{format_expression(expr)} = ±{format_expression(positive_root)}"
 
 
 
 
 
 
 
 
 
 
 
 
122
 
123
  elif 'factorial' in processed_expr: # Factorial case
124
  expr = parse_expr(processed_expr, transformations=(standard_transformations + (implicit_multiplication_application,)))
 
1
  import sympy as sp
2
  from sympy.parsing.sympy_parser import parse_expr, standard_transformations, implicit_multiplication_application
3
  from sympy.solvers import solve
4
+ from sympy import integrate, diff, latex,simplify, expand,sqrt, log, exp, sin, cos, tan, asin, acos, atan, Symbol, factorial, laplace_transform
5
  import re
6
  def format_expression(expr):
7
  latex_expr = latex(expr)
 
113
  result = diff(expr, x)
114
  return f"d/dx({format_expression(expr)}) = {format_expression(result)}"
115
 
116
+
117
  elif 'sqrt' in processed_expr: # Handle square roots
118
+ try:
119
+ transformations = standard_transformations + (implicit_multiplication_application,)
120
+ expr = sp.parse_expr(processed_expr, transformations=transformations)
121
+
122
+ sqrt_result = sqrt(expr) # Compute square root
123
+ positive_root = sqrt_result
124
+ negative_root = -sqrt_result
125
+
126
+ steps = []
127
+ steps.append(f"**Step 1:** Original expression: \n{latex(expr)}")
128
+ steps.append(f"**Step 2:** Taking square root: \n{latex(sqrt_result)}")
129
+ steps.append(f"**Step 3:** Considering both positive and negative roots: \n±{latex(sqrt_result)}")
130
+
131
+ solution = "\n".join(steps)
132
+
133
+ except Exception as e:
134
+ solution = f"Error: {str(e)}"
135
 
136
  elif 'factorial' in processed_expr: # Factorial case
137
  expr = parse_expr(processed_expr, transformations=(standard_transformations + (implicit_multiplication_application,)))