使用 MATLAB,我试图在 4D 空间中找到函数的鞍点。更具体地说,函数是 f(x,y,z,w),我需要找到它关于 x 和 y 的最小值以及关于 z 和 w 的最大值。换句话说,4D 空间中的鞍点在 x 和 y 中是最小值,在 z 和 w 中是最大值。变量 x、y、z 和 w 被限制在各自的域内。
我曾尝试使用 fmincon 但无济于事。函数 f(x,y,z,w) 在定义它的域中肯定有一个鞍点。我一直在做的是首先使用 fmincon 对 x 和 y 最小化 f,然后在下一步中使用 fmincon 对 z 和 w 最小化 -f,然后迭代。我还尝试使用 fmincon 最小化 f(x,y,z0,w0)-f(x0,y0,z,w),其中 (x0,y0,z0,w0) 是起点或从前一次迭代计算的起点. 后一种方法(我知道它效率很低,因为没有适当的权重)也不起作用。
如果你们对如何使这项工作有任何想法,我将不胜感激。谢谢大家。