Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SciPy(Python)中的minimize函数接受什么大小的参数?_Python_Numpy_Optimization_Scipy - Fatal编程技术网

SciPy(Python)中的minimize函数接受什么大小的参数?

SciPy(Python)中的minimize函数接受什么大小的参数?,python,numpy,optimization,scipy,Python,Numpy,Optimization,Scipy,我正在阅读SciPy文档并使用Python,看看是否可以实现他们谈论的东西。然而,我似乎无法理解下面的代码中发生了什么 从 在本例中,Rosenbrock函数似乎将size-4数组作为第一个变量,将size-4数组作为第二个变量。这是因为x[1:]与x[:-1]一起使用 这最终是如何给出一个包含五个结果的数组的?当然最小化函数只运行四次,每次运行一对值(分别取自x[1:]和x[:-1]) 另外,将两个变量的值存储在两个不同的数组中不是更有意义吗 对不起,如果我错过了一些非常明显的东西,请提前感谢

我正在阅读SciPy文档并使用Python,看看是否可以实现他们谈论的东西。然而,我似乎无法理解下面的代码中发生了什么

在本例中,Rosenbrock函数似乎将size-4数组作为第一个变量,将size-4数组作为第二个变量。这是因为x[1:]与x[:-1]一起使用

这最终是如何给出一个包含五个结果的数组的?当然最小化函数只运行四次,每次运行一对值(分别取自x[1:]和x[:-1])

另外,将两个变量的值存储在两个不同的数组中不是更有意义吗

对不起,如果我错过了一些非常明显的东西,请提前感谢


V

rosen
的编写方式可以接受几乎任何长度的
x
,并返回一个值,即
和。像
x[1:]-x[:-1]
这样的表达式只取连续项之间的差值


minimize
本身需要
x0
,一个1d数组,这里有5个元素长。它改变所有元素,直到
rosen
总和最小化。所以它是最小化一个向量,或一维数组。在我看来,
x0
可以有不同的长度,从
(2,)

SciPy实现的Rosenberg函数不是常用的函数

但似乎是最重要的

对于更高的维度。因此
x[1://code>和
x[:-1]
不是索引两个维度(x,y),而是以一种方便的方式实现上述功能

hpaulj回答的一个注意事项是:它不一定会像人们所能做的那样输出一个值

from scipy.optimize import rosen
points = np.array([[1, 1, 1, 1], [1, 2, 3, 4]]).T
rosen(points)

--> array([    0.,  2705.])
一次计算多个输入向量。

您所说的“第一个变量”和“第二个变量”是什么意思?只有一个参数被传递给
rosen
。它如何处理这一论点是它自己的事。
from scipy.optimize import rosen
points = np.array([[1, 1, 1, 1], [1, 2, 3, 4]]).T
rosen(points)

--> array([    0.,  2705.])