matlab 里 编写 外点法约束优化问题程序修改程序

matlab 里 编写 外点法约束优化问题程序修改程序,第1张

找出问题所在了.

你看一下你的dd

由于你的Dd是一个三次方程,有三个解.也就是说dd有三个值.才出现上述问题.

想办法看一下怎么弄吧。

我记得梯度法求d是有公式,不要我们人工去求导的。

找找书看看吧。

另外

if(double(sqrt((a(k)-a(k-1))^2+(b(k)-b(k-1))^2))<=0.001&&double(abs((f(k)-f(k-1))/f(k-1)))<=0.001)

如果k=1的话,a(k-1)会有问题的。

1、首先在电脑中启动matlab,新建一个函数文件,用来写目标函数。

2、在编辑器窗口中写入要求的目标函数,并保存,注意使函数名与文件名相同。

3、然后再新建一个函数文件,用来编写非线性约束条件。步骤及其注意事项同上。额外需要注意的是,需要将两个函数文件放在同一个文件夹中。

4、最后,在命令行窗口处写入fmincon命令。此处需要注意的是,对于没有的线性约束条件的位置药用空矩阵代替,并且初始条件需要满足非线性约束条件。

5、敲下键盘上的enter建,结果得出。可以发现exitflag=1是大于0的,所以结果正确。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11531016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存