4次发布
0.2.2 | 2024年5月15日 |
---|---|
0.2.1 | 2024年4月7日 |
0.2.0 | 2024年4月4日 |
0.1.0 | 2024年3月19日 |
#114 in 科学
31 每月下载量
12KB
137 行
Rugfield
Rugfield 是一个使用循环嵌入方法生成高斯随机场(GRF)的Rust库。它提供了一个高效且易于使用的实现,用于模拟具有各种核函数的GRF。
特性
- 使用循环嵌入方法生成GRF
- 支持各种核。
平方指数
Matern
局部周期
有理二次
- 使用
rustfft
库进行高效计算 - 可选的
serde
特性序列化支持
安装
将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
rugfield = "0.2.2"
使用方法
以下是一个如何使用 Rugfield 生成具有平方指数核的GRF的简单示例
use rugfield::{grf, Kernel};
fn main() {
let n = 100;
let kernel = Kernel::SquaredExponential(0.1);
let grf_data = grf(n, kernel);
// Plot the GRF data
// ...
}
此代码生成一个具有平方指数核和长度尺度为0.1的GRF。生成的GRF数据存储在 grf_data
向量中。
有关完整示例,请参阅 examples/squared_exponential.rs
文件
use peroxide::fuga::*;
use rugfield::{grf, Kernel::SquaredExponential};
fn main() -> Result<(), Box<dyn Error>> {
let x_max = 100.0;
let x_min = 0.0;
let sigma = 0.1;
let n = 1000;
let samples = 8;
let kernel = SquaredExponential(sigma);
let x = linspace_with_precision(x_min, x_max, n, 2);
let grfs = (0..samples).map(|_| grf(n, kernel)).collect::<Vec<_>>();
// Plot the GRF data
// ...
Ok(())
}
使用特定的随机数生成器
use peroxide::fuga::*;
use rugfield::{grf_with_rng, Kernel::SquaredExponential};
fn main() -> Result<(), Box<dyn Error>> {
let n = 100;
let kernel = SquaredExponential(0.1);
let mut rng = stdrng_from_seed(42);
let grf_data = grf_with_rng(&mut rng, n, kernel);
// ...
}
上述代码生成多个具有平方指数核的GRF并绘制结果数据。以下是一个示例输出
文档
有关详细文档和API参考,请参阅 Rustdoc 文档。
许可证
Rugfield 在 MIT 许可证 下授权。
贡献
欢迎贡献!如果您发现任何问题或对改进有建议,请在 GitHub 仓库 上打开问题或提交拉取请求。
致谢
Rugfield 受到Grace Chan(1999年)的论文《一种有效的模拟高斯随机场的方法》的启发。我们衷心感谢 rustfft
库的作者们出色的作品,这对Rugfield的开发至关重要。
依赖项
~7.5MB
~148K SLoC