Taizun commited on
Commit
4c66c38
Β·
verified Β·
1 Parent(s): cbaebd6

Update solver.py

Browse files
Files changed (1) hide show
  1. solver.py +13 -12
solver.py CHANGED
@@ -4,12 +4,8 @@ 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
- try:
8
- # Handle numeric evaluation first
9
- if isinstance(expr, (sp.Integer, sp.Float)):
10
- return str(float(expr))
11
- latex_expr = latex(expr)
12
- replacements = {
13
  '**': '^', # Power notation
14
  '*x': 'x', # Remove unnecessary multiplication signs
15
  '*(': '(', # Remove multiplication before parentheses
@@ -44,12 +40,10 @@ def format_expression(expr):
44
  'Re': 'β„œ', # Real part
45
  'Im': 'β„‘' # Imaginary part
46
  }
47
- for old, new in replacements.items():
48
- latex_expr = latex_expr.replace(old, new)
49
- return latex_expr
50
- except:
51
- return latex_expr
52
-
53
 
54
  def preprocess_equation(equation_str):
55
  """Convert user-friendly equation format to SymPy format."""
@@ -118,6 +112,13 @@ def process_expression(expr_str):
118
  expr = parse_expr(expr_to_diff, transformations=(standard_transformations + (implicit_multiplication_application,)))
119
  result = diff(expr, x)
120
  return f"d/dx({format_expression(expr)}) = {format_expression(result)}"
 
 
 
 
 
 
 
121
 
122
  elif 'factorial' in processed_expr: # Factorial case
123
  expr = parse_expr(processed_expr, transformations=(standard_transformations + (implicit_multiplication_application,)))
 
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)
8
+ replacements = {
 
 
 
 
9
  '**': '^', # Power notation
10
  '*x': 'x', # Remove unnecessary multiplication signs
11
  '*(': '(', # Remove multiplication before parentheses
 
40
  'Re': 'β„œ', # Real part
41
  'Im': 'β„‘' # Imaginary part
42
  }
43
+ for old, new in replacements.items():
44
+ latex_expr = latex_expr.replace(old, new)
45
+
46
+ return f"$$ {latex_expr} $$"
 
 
47
 
48
  def preprocess_equation(equation_str):
49
  """Convert user-friendly equation format to SymPy format."""
 
112
  expr = parse_expr(expr_to_diff, transformations=(standard_transformations + (implicit_multiplication_application,)))
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,)))