简体   繁体   English

为什么 scipy.optimize.minimize 找不到最小值?

[英]Why does scipy.optimize.minimize not find the minimum?

I am looking to find for which (x) the following function is minimal given a parameter dim.在给定参数dim的情况下,我正在寻找以下function最小的(x)。
This is the function:这是 function:

def func(x, dim):
    return np.abs(np.abs(np.mean(np.sqrt(np.sum(np.diff(
        np.random.rand(100000,dim,2)/x, axis=2)**2, axis=1))))
        - 1/3)

And this is how it looks:这就是它的外观:

for xx in np.arange(1,5,0.1):
    plt.scatter(xx, func(xx,2), color='blue')

在此处输入图像描述

But when I try to find the x value which should be around 1.5 the result very close to my x0 guess (here around 1.0).但是当我试图找到应该在 1.5 左右的 x 值时,结果非常接近我的 x0 猜测(这里大约为 1.0)。

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize


params = minimize(func, x0=1, args=(2))

I also tried different solvers, but I cannot get it to minimize.我也尝试了不同的求解器,但我无法将其最小化。

Your function needs to be deterministic for the minimization to work.您的 function 需要确定性才能使最小化起作用。 So you need to remove your call to np.random.rand .因此,您需要删除对np.random.rand的调用。 Once solution could be to generate those random numbers once at the beginning and fix them throughout the minimization.曾经的解决方案可能是在开始时生成这些随机数并在整个最小化过程中修复它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用scipy.optimize.minimize查找全局最小值 - Find global minimum using scipy.optimize.minimize 为什么 scipy.optimize.minimize 不适用于约束和初始值 0 - Why scipy.optimize.minimize does not work with a constraint and initial value 0 为什么“ scipy.optimize.minimize”会给我这么不好的印象? - Why does “scipy.optimize.minimize” gives me such a bad fit? 为什么我的scipy.optimize.minimize失败? - Why my scipy.optimize.minimize fails? scipy.optimize.minimize返回不满足问题约束的解决方案。 为什么? - scipy.optimize.minimize returns a solution that does not satisfied constraints of the problem. Why? 为什么scipy.optimize.minimize(默认)报告成功而不移动Skyfield? - Why does scipy.optimize.minimize (default) report success without moving with Skyfield? 为什么我的优化(scipy.optimize.minimize)不起作用并返回初始值? - Why does my optimization (scipy.optimize.minimize) not work and return the initial values instead? 当scipy.optimize.minimize可能用于相同的事物时,为什么存在scipy.optimize.least_squares? - Why does scipy.optimize.least_squares exist when scipy.optimize.minimize could potentially be used for the same things? scipy.optimize.minimize 不会在 maxiter 或回调处停止 - scipy.optimize.minimize does not stop at maxiter or callback 哪个变量通过scipy.optimize.minimize最小化/如何工作? - Which variable is minimized by scipy.optimize.minimize/How does it work?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM