2 个版本
0.1.2 | 2024 年 3 月 19 日 |
---|---|
0.1.1 | 2023 年 8 月 1 日 |
0.1.0 |
|
#550 in 数学
78 每月下载量
31KB
482 行
Symbolic_Math
symbolic_math
是一个 Rust 库,它简化了数学表达式的表示和操作。该库提供了用于建模各种数学运算(包括加法、减法、乘法、除法和指数运算)的结构。这些表达式可以包含常数、符号或其他复杂表达式。此外,它还提供了评估和简化这些表达式的工具。
主要组件
Expr
:表示不同类型数学表达式的枚举。Symbol
:表示符号变量的结构。
此库还为 Expr
提供了几个实现,包括
- 创建
Expr
实例的新实例的构造函数。 - 将
Expr
实例转换为字符串的Display
实现。 - 简化
Expr
实例的simplify
方法。 - 基本展开
Expr
实例的expand
方法。 - 评估
Expr
实例的eval
方法。
包含对 Expr
的操作符重载的 operators
模块,使用标准数学运算符组合 Expr
实例。
使用方法
要将 symbolic_math
包含到您的项目中,请将以下内容添加到您的 Cargo.toml
[dependencies]
symbolic_math = "0.1.1"
然后您可以在代码中使用它如下
use symbolic_math::expr::Expr;
use symbolic_math::symbol::Symbol;
use std::collections::HashMap;
let x = Expr::new_var("x");
let y = Expr::new_var("y");
let z = Expr::new_var("z");
let res = (x.clone() + x.clone() + y.clone() * y.clone()).pow(z);
println!("{}", res); // prints: "(2x + y^2)^z"
println!("{}", res.simplify()); // prints: "(2x + y^2)^z"
let mut vars: HashMap<Symbol, f64> = HashMap::new();
vars.insert(Symbol::new("x"), 4.0);
vars.insert(Symbol::new("y"), 3.0);
vars.insert(Symbol::new("z"), 2.0);
println!("{}", res.eval(&vars).unwrap()); // prints: "289"
有关如何使用 symbolic_math
的更详细信息,请参阅每个类型和方法的相关文档。