Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from src.main import Derivative | |
| import plotly.express as px | |
| class ProductRule: | |
| def __init__(self, func1_expression, func2_expression, start_stop_num: List[int, int, int] = [-10, 10, 200]): | |
| self.func1 = Derivative(expression = func1_expression) | |
| self.func2 = Derivative(expression = func2_expression) | |
| self.func1() | |
| self.func2() | |
| self.derivative = self._get_derivative() | |
| self.y_values = self._get_y_values() | |
| def _get_derivative(self): | |
| product_rule = self.func1.y * self.func2.derivative + self.func1.derivative * self.func2.y | |
| return product_rule | |
| def _get_y_values(self): | |
| return self.func1.y * self.func2.y | |
| def _plot_f(self): | |
| fig = px.scatter(x = self.func1.x, y = self.y_values, title = "Product Function") | |
| return fig | |
| def _plot_dev(self): | |
| fig = px.scatter(x = self.func1.x, y = self.derivative, title = "Derivative") | |
| return fig | |
| def plot(self): | |
| return self._plot_f(), self._plot_dev() | |
| def get_pr_fn(input1: str, input2: str): | |
| pr_obj = ProductRule(input1, input2) | |
| f_fig, _ = pr_obj.plot() | |
| return f_fig | |
| def get_pr_dev(input1: str, input2: str): | |
| pr_obj = ProductRule(input1, input2) | |
| _, dev_fig = pr_obj.plot() | |
| return dev_fig | |