函数的最小值点为0时却无法求出为0?

标签: 问题反馈——使用问题

Frtgl 2025-11-08 17:57:32

截图 2025-11-08 17-51-58.png

变量里是-0.0000000000000009, 改x的次数还会导致误差变[很]大

截图 2025-11-08 17-56-17.png

301 2 0 收藏 回复

回复

该函数返回的是最小值所在的位置,即坐标,并不是函数值

邱彼郑楠 2025-11-15 #2

这个是给的初始点 x2 = 15 不合理,对于 1000 次幂,s(x2) 得到的是 Inf,所以 fminbnd 求解过程中应该只迭代了一次,从 15 变成了 14.9999。

从这个结果也可以看出,fminbnd 是从上界开始搜索的,所以需要把上界调小。

建议把 x2 换成 1 或者更小的数。幂次太高,自变量越大就超出计算范围了。fminbnd(s, -1, 1) 或者 fminbnd(s, -15, 1) 算出来都是绝对值小于 1 的。

初值的选取对结果的影响很大。

回复

重置 提交