def evaluate_problem_input(self, expression: Expression, problem_type): logger.info("Starting problem input validation") if problem_type != 'derivative' and problem_type != 'integral': raise SuspiciousOperation('Invalid input type') try: if problem_type == 'derivative': derivative = Derivative(expression.sympy_expr, 'x') return Expression(derivative.doit()).solve_derivatives( ).to_latex_with_derivatives() integral = Integral(expression.sympy_expr, x) return latex(integral.doit()) except: logger.info("Invalid expression") raise SuspiciousOperation('Invalid expression')
"\\frac{d}{d x}( f{\\left(x \\right)})") expresion = expresion.replace("\\frac{d}{d x} g{\\left(x \\right)}", "\\frac{d}{d x}( g{\\left(x \\right)})") return expresion ##MAIN## salida = open("/tmp/solucion_28d36c18-7985-42e7-bce1-11babf379715.txt","w") x = symbols('x') expr = parse_latex(r"2x^3+12x^2-30x-1").subs({Symbol('pi'): pi}) salida.write("Obtener: $$%s$$<br><br>" % latex(Derivative(expr, x))) solucion = print_html_steps(expr, x) solucion = acomodaNotacion(solucion) salida.write(solucion) derivada = Derivative(expr) derivada = derivada.doit() anula = solve(derivada, x) puntos = [] xmin,xmax = 0,0 ymin,ymax = 0,0 solucion = "Resolviendo $$%s=0$$ obtenemos las raices<br/>" % (latex(derivada)) n = 1 for x_0 in anula: solucion = solucion + "$$x_%s=%s$$ <br/>" % (n, latex(x_0)) n = n+1 n = 1 solucion = solucion+"Sustituyendo en $$%s$$, se obtienen los puntos:<br/>"%(latex(expr)) for x_0 in anula: y = expr.subs(x, x_0) puntos.append([x_0,y]) if x_0 > xmax:
expresion = expresion.replace("\\frac{d}{d x} \\frac{f{\\left(x \\right)}}{g{\left(x \\right)}}", "\\frac{d}{d x}( \\frac{f{\\left(x \\right)}}{g{\left(x \\right)}})") expresion = expresion.replace("\\frac{d}{d x}( f{\\left(x \\right)} g{\\left(x \\right)})", "\\frac{d}{d x} f{\\left(x \\right)} g{\\left(x \\right)}") expresion = expresion.replace( "\\frac{- f{\\left(x \\right)} \\frac{d}{d x} g{\\left(x \\right)} + g{\\left(x \\right)} \\frac{d}{d x} f{\\left(x \\right)}}{g^{2}{\\left(x \\right)}}", "\\frac{- f{\\left(x \\right)} \\frac{d}{d x}( g{\\left(x \\right)}) + g{\\left(x \\right)} \\frac{d}{d x}( f{\\left(x \\right))}}{g^{2}{\\left(x \\right)}}") expresion = expresion.replace("\\frac{d}{d x} f{\\left(x \\right)}", "\\frac{d}{d x}( f{\\left(x \\right)})") expresion = expresion.replace("\\frac{d}{d x} g{\\left(x \\right)}", "\\frac{d}{d x}( g{\\left(x \\right)})") return expresion ##MAIN## salida = open("/tmp/solucion_b230b896-5d5b-49a7-9959-2499d168a4a7.txt","w") x = symbols('x') expr = parse_latex(r"\frac{3x^3+7}{x}") salida.write("Obtener: $$%s$$<br><br>" % latex(Derivative(expr))) solucion = print_html_steps(expr, x) solucion=acomodaNotacion(solucion) salida.write(solucion) derivada = Derivative(expr) derivada = factor(derivada.doit()) salida.write("Obtener: $$%s$$<br><br>" % latex(Derivative(derivada))) solucion = print_html_steps(derivada, x) solucion=acomodaNotacion(solucion) salida.write(solucion) salida.close()
def apply_derivative(self) -> 'Expression': deriv = Derivative(self.sympy_expr.args[0], self.sympy_expr.args[1]) return Expression(deriv.doit())
def test_doit(): n = Symbol('n', integer=True) f = Sum(2 * n * x, (n, 1, 3)) d = Derivative(f, x) assert d.doit() == 12 assert d.doit(deep=False) == Sum(2*n, (n, 1, 3))
def test_doitdoit(): done = Derivative(f(x, g(x)), x, g(x)).doit() assert done == done.doit()
def test_issue_15893(): f = Function('f', real=True) x = Symbol('x', real=True) eq = Derivative(Abs(f(x)), f(x)) assert eq.doit() == sign(f(x))