在以下来自 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 的值?
我希望在需要几分钟才能运行的模拟中实现这一点——所以最好看看优化过程的步骤。
谢谢 :-)