3个版本
0.1.4 | 2022年6月9日 |
---|---|
0.1.3 |
|
0.1.2 | 2021年4月8日 |
0.1.1 | 2021年3月11日 |
0.1.0 |
|
在 数学 类别中排名 1017
210KB
258 行
sparse_complex
基于 Eigen::SparseLU 的稀疏复杂线性系统简单求解器。
复数表示
我们使用 num::Complex 来表示复数。有关更多信息,请参阅 num Crate。
示例
考虑以下复数线性系统
$$ \begin{bmatrix} 1 - j1 & 0\ 0 & -1 + j1 \end{bmatrix} \begin{bmatrix} x_1 \ x_2 \end{bmatrix}= \begin{bmatrix} 1 \ j1 \end{bmatrix} $$
我们可以按照以下方式解决这个问题
use num::Complex;
use sparse_complex::ComplexMatrix;
let mut m = ComplexMatrix::<f64>::new();
m.add_element(0, 0, Complex { re: 1., im: -1. });
m.add_element(1, 1, Complex { re: -1., im: 1. });
let mut b = vec![Complex::new(1., 0.), Complex::new(0., 1.)];
m.solve(&mut b).unwrap();
let expected = vec![Complex::new(0.5, 0.5), Complex::new(0.5, -0.5)];
assert_eq!(b, expected);
该系统的解为
$$ \frac{1}{2} \begin{bmatrix} 1 + j1 \ 1 - j1 \end{bmatrix} $$
版本兼容性
sparse_complex
Crate已在 rustc
1.61 及更高版本上进行了测试。
许可证
MIT许可证。请参阅 LICENSE。
sparse_complex
还依赖于Eigen v3.4.0,该软件的许可证为 MPL v2.0。Eigen的源代码可以在 Eigen的主页 上找到。
依赖项
~0.4–3MB
~54K SLoC