def derivative_of_a_multiplication(): return Theorem( "derivada del producto", "\\frac{d(f(x) * g(x))}{dx}", "\\frac{d(f(x))}{dx} * g(x) + \\frac{d(g(x))}{dx} * f(x)", {}, )
def solution_tree(self, expression: Expression) -> SolutionTreeNode: logger.info("get solution tree for: " + expression.to_string()) theorems = [] if expression.contains_derivative(): theorems += DerivativeTheorems.get_all() if expression.contains_integral(): theorems += IntegrateTheorems.get_all() return self.solution_tree_for(expression, theorems, Theorem('none', None, None, {}))
def theorem(theo: dict) -> Theorem: if theo.get("name") == IntegrateByPartsTheorem().name: return IntegrateByPartsTheorem() elif theo.get("name") == IntegrateByPartsApplyTheorem().name: return IntegrateByPartsApplyTheorem() elif theo.get("name") == IntegrateByPartsReplaceUVTheorem().name: return IntegrateByPartsReplaceUVTheorem() return Theorem(theo.get("name"), theo.get("left") if 'left' in theo else None, theo.get("right") if 'right' in theo else None, theo.get("conditions") if 'conditions' in theo else {})
def setUp(self): self.derivative_sum_theorem = Theorem("Derivada de la suma", "\\frac{d(f(x) + g(x))}{dx}", "\\frac{d(f(x))}{dx} + \\frac{d(g(x))}{dx}", [])
def integrate_of_a_sum(): return Theorem("Integral de la suma", "\\int (f(x) + g(x)) dx", "(\\int (f(x)) dx) + (\\int (g(x)) dx)", {})
def integrate_multiply_for_constant(): return Theorem("Integral por una constante", "\\int ( a * f(x)) dx", "a * \\int (f(x)) dx", {"a": ["IS_REAL", "IS_CONSTANT"]})
def theorem_to_json(theorem: Theorem): return theorem.to_json()
def derivative_of_a_sum(): return Theorem("Derivada de la suma", "\\frac{d(f(x) + g(x))}{dx}", "\\frac{d(f(x))}{dx} + \\frac{d(g(x))}{dx}", {})
def derivative_multiply_for_constant(): return Theorem("Derivada por un numero real", "\\frac{d( a * f(x))}{dx}", "a * \\frac{d(f(x))}{dx}", {"a": ["IS_REAL", "IS_CONSTANT"]})
def derivative_of_a_division(): return Theorem( "derivada de la division", "\\frac{d(\\frac{f(x)}{g(x)})}{dx}", "\\frac{ \\frac{ d(f(x))}{dx} * g(x) - \\frac{d(g(x))}{dx} * f(x) }{g(x)^ 2}", {})