Example #1
0
    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')
Example #2
0
                                "\\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:
Example #3
0
    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()
Example #4
0
 def apply_derivative(self) -> 'Expression':
     deriv = Derivative(self.sympy_expr.args[0], self.sympy_expr.args[1])
     return Expression(deriv.doit())
Example #5
0
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))
Example #6
0
def test_doitdoit():
    done = Derivative(f(x, g(x)), x, g(x)).doit()
    assert done == done.doit()
Example #7
0
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))