UQpy, "Uncertainty Quantification with Python,"是一个通用的 Python 工具箱,用于对物理和数学系统模拟中的不确定性进行建模。该代码被组织为一组以不确定性量化(UQ)的核心功能为中心的模块,如下所示。这些模块各不相同,但设计为易于扩展(可以轻松添加新功能并将其集成到代码中)并易于相互调用。
UQpy 的核心是 RunModel 模块,它充当第三方软件的 UQpy API。RunModel 模块的开发非常灵活,因此可以简单高效地与任何商业软件和定制软件进行交互。RunModel 既可以用作转换实用程序(将 UQpy 中的信息转换为软件输入),也可以用作计算分析的驱动程序(它将执行代码,并在必要时重复执行,就像在蒙特卡洛分析中一样)。
UQpy 中的所有主要功能都根据上面说明的模块进行分类。这些模块包括:
-
SampleMethods: SampleMethods 模块包含一组根据不同技术生成随机变量样本的类。SampleMethods 用于基于统计的方法(即蒙特卡罗类型)以及数值方法(例如随机搭配)。SampleMethods 中的当前类包括:
-
MCS - Monte Carlo Sampling
-
LHS - Latin Hypercube Sampling
-
STS - Stratified Sampling
-
MCMC - Markov Chain Monte Carlo
-
Correlate - Impose correlation on standard normal samples
-
Decorrelate - Remove correlation from correlated standard normal samples
-
Nataf - Transform standard normal samples to a non-Gaussian distribution
-
InvNataf - Transform non-Gaussian samples to a standard normal distribution
-
-
Reliability: 可靠性模块包含一组用于执行可靠性分析/估计失效概率的类。可靠性中的当前类包括:
-
SubsetSimulation - Subset simulation using Metropolis-Hastings, Component-wise Modified Metropolis-Hastings, or Affine Invariant Ensemble Sampler.
-
TaylorSeries - Reliability analysis based on a Taylor Series expansion of the limit surface, specifically including First Order Reliabilty Method (FORM) and Second Order Reliability Method (SORM).
-
-
Inference (Coming soon): 推理模块包含一组用于模型选择(贝叶斯和信息理论)和贝叶斯参数估计的类。
-
Surrogate: Surrogate 模块包含一组用于开发代理模型的类。UQpy 目前提供两种代理建模选项:
-
SROM - Stochastic Reduced Order Models
-
Kriging - Gaussian Process Regression / Kriging
-
PCE - Polynomial Chaos Expansion
-
-
Optimization (Coming soon): 优化模块包含一组用于优化的类。
-
StochasticProcess: StochasticProcess 模块包含一组用于模拟(合成生成)随机过程和随机场的类。StochasticProcess 中的当前类包括:
-
SRM - Spectral Representation Method
-
BSRM - Bispectral Representation Method (Generalized third-order spectral representation method)
-
KLE - Karhunen-Loeve Expansion
-
Translate - Translation Process
-
Inverse Translate - Identify the underlying Gaussian random process from a known non-Gaussian random process
-
-
Sensitivity (Coming soon): 灵敏度模块包含一组用于执行全局和局部灵敏度分析的类。
UQpy 还包含两个支持模块:
-
Distributions: Distributions模块指定预定义的概率分布,并允许用户定义概率分布以供在 UQpy 中使用。
-
Utilities: 实用程序模块包含一组广泛用于支持多种核心功能的函数和类。
更多有关UQpy工具箱内容可点查看UQpy’s documentation。