考虑功能:
MainPage
我想知道,是否可以使用 SciPy.optimize.minimize
在说 [0,1](单位间隔)上找到最小值(对于 x 和 y)?
这是我的尝试:
def f(x,y):
return x + 3*exp(y**2)
因此,
bound = (0,1)
bds = [bound,bound]
x_0 = [0,0] (initial guess)
但这不起作用。
我不断得到:
“换行符后出现意外字符” At \ bounds = bnds
请注意,我希望 x 和 y 在 [0,1] 上的实数上有所不同
编辑:
scipy.optimize.minimize(f,x_0,method='SLSQP', \ bounds = bds)
这个最小化函数是否只查看整数值 0 和 1?还是查看 [0,1](单位间隔?)中的所有实数。如果是第一个,我不知道如何进入第二个,我该怎么做?
答案 0 :(得分:2)
您的原始代码不起作用,因为
<块引用>""行继续符后出现意外字符" At \ bounds = bnds":
告诉您“行继续符”(反斜杠)导致了问题。在那个角色之后你不能有任何东西。在反斜杠后插入换行符,或完全删除反斜杠
一旦你解决了这个问题,你会得到一个错误提示
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.upload(data, data.length, { blobHTTPHeaders: { blobContentType: contentType }});
let blobUrl = `https://${process.env.STORAGE_ACCOUNT}.blob.core.windows.net/${container}/${blobName}`;
const sasOptions = {
containerName: containerClient.containerName,
blobName: blobName,
expiresOn: new Date(new Date().valueOf() + 86400),
permissions: BlobSASPermissions.parse('r'),
protocol: SASProtocol.https
};
const sharedKeyCredential = new StorageSharedKeyCredential(process.env.STORAGE_ACCOUNT, process.env.STORAGE_ACCOUNT_KEY);
const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
blobUrl += `?${sasToken}`;
这是因为 TypeError: f() missing 1 required positional argument: 'y'
想要一个接受 one 输入的函数(请阅读 documentation 的“参数:有趣的部分”)。该输入可以是一个形状数组minimize
。当你想要一个多变量最小化时,所有的 n 个变量都进入你函数的单个参数
回复:“这个最小化函数是只查看整数值 0 和 1?还是查看 [0,1](单位间隔?)中的所有实数?如果是第一个,我不是确定如何进入第二个。”
如果它只检查边界值,那将是一个非常无用的优化器,你不觉得吗?
不过,这很容易检查!您当前的函数在 (n, )
处具有最小值,因此这不是测试函数功能的好方法。让我们定义一个具有不同数字的最小值的函数。例如,让我们定义一个函数,其最小值为 [0, 0]
[0.5, 0.5]
运行你的代码给出结果:
def f(X):
return abs(X[0] - 0.5) * abs(X[1] - 0.5)
这清楚地表明 fun: 0.0
jac: array([0., 0.])
message: 'Optimization terminated successfully.'
nfev: 8
nit: 2
njev: 2
status: 0
success: True
x: array([0.5, 0.5])
在整个区间内查找。
它并没有真正查看区间内的所有实数(这是不可能的,因为在任何区间都有无限实数)。相反,它使用您在 minimize()
参数中指定的优化算法。
答案 1 :(得分:-1)
表示为 OptimizeResult 对象的优化结果。重要的属性是: x 解决方案数组,success 一个布尔标志,指示优化器是否成功退出,以及描述终止原因的消息。