我只想用 ndarry_linalg 板条箱解决 rust 中的简单系统 AX=b
你好,从今天早上开始,我在 Rust 中做线性代数时遇到了一个错误。 我只是想解一个系统 AX=b...
据我所知,这应该可行,但是当我运行 Cargo build 时,“编译器”找不到 ArrayBase 的方法“solve_into”。 这来自官方文档:here of ndarray
我想我错过了一些东西......有人有提示吗?
use ndarray::prelude::*;use ndarray_linalg::Solve;
fn main(){
let a: Array2<f64> = array![[3., 2., -1.], [2., -2., 4.], [-2., 1., -2.]];
let b: Array1<f64> = array![1., -2., 0.];
let x = a.solve_into(b).unwrap();
assert!(x.abs_diff_eq(&array![1., -2., -2.], 1e-9));}
当前版本
ndarray_linalg = "0.16.0"
使用ndarray = "0.15.2"
,而您可能使用更高版本,例如"0.16.1"
。可能会有一些重大变化改变 ArrayBase<...>
的定义。
降级您的
ndarray
[dependencies]
ndarray-linalg = "0.16.0"
[dependencies.ndarray]
version = "0.15.2"
features = ["blas", "approx", "std"]
default-features = false
此后,rust-analyzer 不再显示错误。