使用MATLAB软件编程,利用蒙特卡洛法的基本思想求解非线性规划问题
工具/原料
电脑
MATLAB软件
用蒙特卡洛法求解的基本思想
1、在估计的区域内随机取若干试验点。
2、然后从实验点中找出可行点。
3、再从可行点中选择最小点。
基本假设
1、试验点的第j个分量xj服从[aj,bj]内的均匀分布.
求解过程
1、先产生一个随机数作为初始试验点,以后则将上一个试验喘揲塾疖点的第j个分量随机产生,其它分量不变而产生一新的试验点.这样,每产蟮烫忿垴生一个新试验点只需一个新的随机数分量.当K>MAXK或P>MAXP时停止迭代.
2、符号说明:P:试验点总数; MAXP:最大试验点总数;K:可行点总数; MA哗收鳜借XK:最大可行点数;X*:迭代产生的最优点; Q:迭代产生的最小值f(X*),其初始值为计算机所能表示的最大数.
MATLAB编程步骤:
1、确定求解的非线性规划问题,如图所示。
2、依次编写三个m文件,首先编写目标函数的m文件,如图所示。
3、然后编写约束条件的m文件,如图所示。
4、再依据蒙特卡洛法求解的基本思想编写主程序的m文件。先初始化,利用unifrnd函数产生服从均垮樨怯礤匀分布的随机数,作为试验点。
5、然后调用目标函数和约束条件的m文件,找出最优解,如图所示。
6、最后,显示找到的最优解,如图所示。
7、保存编好的程序,运行结果如图所示。