【发布时间】:2021-09-29 13:52:42
【问题描述】:
在以下来自 Openturns FORM 示例的代码中:
import openturns as ot
model = ot.SymbolicFunction(['x1', 'x2'], ['x1^2+x2'])
R = ot.CorrelationMatrix(2)
R[0,1] = -0.6
inputDist = ot.Normal([0.,0.], R)
inputDist.setDescription(['X1', 'X2'])
inputVector = ot.RandomVector(inputDist)
创建输出随机向量 Y=model(X)
Y = ot.CompositeRandomVector(model, inputVector)
创建事件 Y > 4
threshold = 4.0
event = ot.ThresholdEvent(Y, ot.Greater(), threshold)
创建 FORM 算法
solver = ot.Cobyla()
startingPoint = inputDist.getMean()
algo = ot.FORM(solver, event, startingPoint)
运行算法并检索结果
algo.run()
result_form = algo.getResult()
print(result_form)
创建分析后重要性采样模拟算法
algo = ot.PostAnalyticalImportanceSampling(result_form)
algo.run()
print(algo.getResult())
result = algo.getResult()
创建分析后受控重要性采样模拟算法
algo = ot.PostAnalyticalControlledImportanceSampling(result_form)
algo.run()
print(algo.getResult())
优化过程中是否可以看到X1、X2和Y的值?
我希望在需要几分钟才能运行的模拟中实现这一点 - 因此可以很好地观察优化过程的步骤。
谢谢:-)
【问题讨论】:
标签: forms sampling reliability openturns