我对MatLab很新。因此,如果这是非常基本的话,我很抱歉。
我使用一个名为fmincon的函数来找到最小化函数的解决方案。为什么我会为运行fmincon获得不同的解决方案?
我想知道使用fmincon获得不同解决方案的令人满意或令人信服的数学或编程解释。
答案 0 :(得分:1)
检查MATLAB文档中的these limitations。
fmincon是一种基于梯度的方法,旨在解决目标和约束函数都是连续的并且具有连续的一阶导数的问题。
功能非常精致,最好能避免它。它只能在整齐定义的问题上巧妙地运作。任何偏差都可能导致局部而非全局最小值,并且这些偏差可能(取决于其他因素)取决于您的初始解决方案估计值或起点。
答案 1 :(得分:0)
由于router.post('/', function (req, res, next) {
console.log("hi");
if (JSON.stringify(req.body) == "{}") {
return res.status(400).json({ Error: "Login request body is empty" });
}
if (!req.body.username || !req.body.password) {
return res.status(400).json({ Error: "Missing fields for login" });
}
User.find({ where: { username: req.body.username,password: req.body.password} })
.then(function (user) {
return res.status(200).json({ message: "loged in!" });
}).catch(function (err) {
return res.status(400).json({ Error: "There is no user with those fields" });
});
});
对初始点敏感,如果为fmincon
设置不同的起点,则每次应用可能会得到不同的解决方案。您可以找到fmincon
here的其中一种算法。