scipy.optimize.minimize两个相同的(?)输入的两个不同的输出

时间:2019-03-09 14:35:08

标签: python scipy minimize

我有一个函数List<Integer> finalList = (2,2,2,4,2,1)。我想知道func(x)的{​​{1}}。因为没有确切的真实答案,所以我认为x是个好主意。

func(x)-7=0

最后一个minimize给了我from scipy.optimize import minimize def func(x): # testing function which leads to the same behaviour return (x * 5 + x * (1 - x) * (6-3*x) * 5) def comp(x): # comparison function which should get zero return abs(((func(x)) - 7)) x0 = 0. x_real = minimize(comp, x0) # minimize comparison function to get x print(x_real.x) 。以下print ...

[ 0.7851167]

...导致不同的输出:

print

有人可以向我解释这种行为吗?

1 个答案:

答案 0 :(得分:0)

编辑:我认为我对您的问题理解有误。像在打印语句中那样对数字进行四舍五入显然会导致一些差异(差异很小(约1e-9左右))。

要查找所有x,您应该应用某种全局求解方法,或者从其他初始点开始查找所有局部最小值(如图所示)。

该方程式有两个解。

def func(x): # testing function which leads to the same behaviour
    return (x * 5 + x * (1 - x) * (6-3*x) * 5)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-0.1,1,100)
plt.plot(x, func(x)-7)
plt.plot(x, np.zeros(100))
plt.show()

功能:

enter image description here