gpt4 book ai didi

python - 将优化输出转储到数组中

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:44 24 4
gpt4 key购买 nike

我正在尝试运行 3 次跳盆模拟,并将 x 和 f(x) 的每个元组保存到 1x2 的数组中,下面的代码是我迄今为止最好的尝试。我不需要关于结果的详细信息,只需要数字中的元组,我怎样才能以一种我也可以将它们用于进一步处理的方式获得这样的数组(例如选择不同运行的最小值)

from math import *
from math import ceil
from math import floor
import time
from decimal import *
import numpy as np
from scipy.optimize import basinhopping
minimizer_kwargs = {"method": "BFGS"}

def f(x):

b = 5306246123
estimator1=(sqrt(b)+x[0])
estimator2=(sqrt(b)+x[1])
d=abs(estimator1*estimator2-b)
return d

b = 5306246123

results = []
for x in range(3): results.append(basinhopping(f, [1,1], minimizer_kwargs=minimizer_kwargs,
niter=1000, stepsize=sqrt(sqrt(b))))
print(results)

部分 (1/3) 示例输出(例如,我只需要 -6403.48941568、7020.65333737 和该元组的另外 2 个实例):

[                        fun: 2.86102294921875e-06
lowest_optimization_result: fun: 2.86102294921875e-06
hess_inv: array([[ 0.13347587, -0.13347587],
[-0.13347587, 0.13347587]])
jac: array([ 79872., 66432.])
message: 'Desired error not necessarily achieved due to precision loss.'
nfev: 463
nit: 2
njev: 113
status: 2
success: False
x: array([-6403.48941568, 7020.65333737])
message: ['requested number of basinhopping iterations completed successfully']

最佳答案

我会将解决方案放在一个独立的答案中。

因为 basinhopping() 函数的结果是 a subclass of dict , 它的元素可以像在任何字典中一样使用方括号表示法访问。例如:

results.append(basinhopping(...)['x'])

一旦所有结果都保存在 results 列表中,就可以像在任何列表中一样通过从零开始的索引访问它们。获取第一个结果的第二个元素:

results[0][1]

关于python - 将优化输出转储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com