Rust 中的求解系统

问题描述 投票:0回答:1

我只想用 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));}
rust rust-ndarray
1个回答
0
投票

可能是版本问题

当前版本

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 不再显示错误。

© www.soinside.com 2019 - 2024. All rights reserved.