如何在MATLAB中用蒙特卡洛法解非线性规划问题
1个回答
推荐于2016-10-28 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517165
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
用蒙特卡洛法求解的基本思想
1
在估计的区域内随机取若干试验点。
2
然后从实验点中找出可行点。
3
再从可行点中选择最小点。
基本假设
1
试验点的第j个分量xj服从[aj ,bj]内的均匀分布.
1
先产生一个随机数作为初始试验点,以后则将上一个试验点的第j个分量随机产生,其它分量不变而产生一新的试验点.这样,每产生一个新试验点只需一个新的随机数分量.当K>MAXK或P>MAXP时停止迭代.
2
符号说明:
P: 试验点总数; MAXP:最大试验点总数;
K: 可行点总数; MAXK:最大可行点数;
X*:迭代产生的最优点; Q:迭代产生的最小值f(X*),其初始值为计算机所能表示的最大数.
MATLAB编程步骤:
1
确定求解的非线性规划问题
2
依次编写三个m文件,首先编写目标函数的m文件
3
然后编写约束条件的m文件
4
再依据蒙特卡洛法求解的基本思想编写主程序的m文件。先初始化,利用unifrnd函数产生服从均匀分布的随机数,作为试验点。
5
然后调用目标函数和约束条件的m文件,找出最优解
6
最后,显示找到的最优解
7
保存编好的程序,
1
在估计的区域内随机取若干试验点。
2
然后从实验点中找出可行点。
3
再从可行点中选择最小点。
基本假设
1
试验点的第j个分量xj服从[aj ,bj]内的均匀分布.
1
先产生一个随机数作为初始试验点,以后则将上一个试验点的第j个分量随机产生,其它分量不变而产生一新的试验点.这样,每产生一个新试验点只需一个新的随机数分量.当K>MAXK或P>MAXP时停止迭代.
2
符号说明:
P: 试验点总数; MAXP:最大试验点总数;
K: 可行点总数; MAXK:最大可行点数;
X*:迭代产生的最优点; Q:迭代产生的最小值f(X*),其初始值为计算机所能表示的最大数.
MATLAB编程步骤:
1
确定求解的非线性规划问题
2
依次编写三个m文件,首先编写目标函数的m文件
3
然后编写约束条件的m文件
4
再依据蒙特卡洛法求解的基本思想编写主程序的m文件。先初始化,利用unifrnd函数产生服从均匀分布的随机数,作为试验点。
5
然后调用目标函数和约束条件的m文件,找出最优解
6
最后,显示找到的最优解
7
保存编好的程序,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询