pub struct EducationalODESolver;Expand description
Educational ODE solver that provides step-by-step explanations
Implementations§
Source§impl EducationalODESolver
impl EducationalODESolver
Sourcepub fn solve_separable_with_steps(
&self,
rhs: &Expression,
dependent: &Symbol,
independent: &Symbol,
_initial_condition: Option<(Expression, Expression)>,
) -> Result<ODEExplanation, String>
pub fn solve_separable_with_steps( &self, rhs: &Expression, dependent: &Symbol, independent: &Symbol, _initial_condition: Option<(Expression, Expression)>, ) -> Result<ODEExplanation, String>
Solve separable ODE with step-by-step explanation
§Arguments
rhs- Right-hand side of dy/dx = rhsdependent- Dependent variable (y)independent- Independent variable (x)initial_condition- Optional (x0, y0) for particular solution
§Returns
ODEExplanation containing solution and all steps
§Examples
use mathhook_core::{symbol, expr};
use mathhook_core::calculus::ode::educational::EducationalODESolver;
let x = symbol!(x);
let y = symbol!(y);
let rhs = expr!(x);
let solver = EducationalODESolver::new();
let explanation = solver.solve_separable_with_steps(&rhs, &y, &x, None);Sourcepub fn solve_linear_with_steps(
&self,
rhs: &Expression,
dependent: &Symbol,
_independent: &Symbol,
_initial_condition: Option<(Expression, Expression)>,
) -> Result<ODEExplanation, String>
pub fn solve_linear_with_steps( &self, rhs: &Expression, dependent: &Symbol, _independent: &Symbol, _initial_condition: Option<(Expression, Expression)>, ) -> Result<ODEExplanation, String>
Solve linear first-order ODE with step-by-step explanation
§Arguments
rhs- Right-hand side of dy/dx = rhsdependent- Dependent variable (y)_independent- Independent variable (x)_initial_condition- Optional (x0, y0) for particular solution
§Returns
ODEExplanation containing solution and all steps
Trait Implementations§
Source§impl Default for EducationalODESolver
impl Default for EducationalODESolver
Source§impl EquationSolver for EducationalODESolver
Implement the EquationSolver trait for integration with SmartEquationSolver
impl EquationSolver for EducationalODESolver
Implement the EquationSolver trait for integration with SmartEquationSolver
Source§fn solve(&self, _equation: &Expression, _variable: &Symbol) -> SolverResult
fn solve(&self, _equation: &Expression, _variable: &Symbol) -> SolverResult
Solve equation for given variable
Source§fn solve_with_explanation(
&self,
equation: &Expression,
variable: &Symbol,
) -> (SolverResult, StepByStepExplanation)
fn solve_with_explanation( &self, equation: &Expression, variable: &Symbol, ) -> (SolverResult, StepByStepExplanation)
Solve with step-by-step explanation
Source§fn can_solve(&self, _equation: &Expression) -> bool
fn can_solve(&self, _equation: &Expression) -> bool
Check if solver can handle this equation type
Auto Trait Implementations§
impl Freeze for EducationalODESolver
impl RefUnwindSafe for EducationalODESolver
impl Send for EducationalODESolver
impl Sync for EducationalODESolver
impl Unpin for EducationalODESolver
impl UnwindSafe for EducationalODESolver
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more