微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

最小化依赖于两个数组的函数

如何解决最小化依赖于两个数组的函数

是否可以使用 Scipy 最小化器最小化依赖于两个数组的函数 fun(x,y)

(x 和 y 是两个不同长度的一维数组,例如 x=np.array([1,2,3,1,52,5])y=np.array([4,8,9]))

我正在考虑类似的事情:

minimize(fun,[x,y],method="Powell",tol=1e-3)

这是正确的方法吗?

谢谢。

解决方法

定义一个函数来显示 minimize 提供的参数及其形状:

In [300]: def fun(x):
     ...:     print(x,x.shape)
     ...:     return np.sum(x)**2
     ...: 
     ...: 

使用二维数组调用最小化:

In [301]: minimize(fun,np.arange(6).reshape(2,3))
[0. 1. 2. 3. 4. 5.] (6,)
[1.49011612e-08 1.00000000e+00 2.00000000e+00 3.00000000e+00
 4.00000000e+00 5.00000000e+00] (6,)
[0.         1.00000001 2.         3.         4.         5.        ] (6,)
[0.         1.         2.00000001 3.         4.         5.        ] (6,)
[0.         1.         2.         3.00000001 4.         5.        ] (6,)
[0.         1.         2.         3.         4.00000001 5.        ] (6,)
[0.         1.         2.         3.         4.         5.00000001] (6,)
....

请注意,最初的 x0 (2,3),已经分解为 (6,)。

我想你是从那里开始的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。