蒙特卡洛非线性规划code

1.定义目标函数f 和约束向量函数g

首先编写M 文件mente. m 定义目标函数f 和约束向量函数g

function [f,g] = mente(x) ;
f=x(1)^2 + x(2)^2 +3*x(3) ^2 +4 * x(4)^2 + 2 *x(5)^2 -8*x(1) -2*x(2) -3*x(3)...
 - x(4) -2*x(5);
g = [sum(x) -400
x ( 1) +2 * x(2) +2 *x(3) +x( 4 ) +6 *x(5 ) -800
2*x(1) +x(2) +6*X(3) -200
x(3) +x(4) +5*x(5) - 200] ;

2.求问题的解

rand('state', sum(clock)) ; %初始化随机数发生器
p0 = 0 ;
tic %计时开始
for i = 1 :10^6
	x = randi[ 0,99],l,5) ; % 产生一行五列的区间[0, 99]上的随机整数
	[f,g] =mengte(x) ;
	if all (g < = 0)%g的每一个元素都小于0
		if p0 < f
		x0 = x ; pO = f ; %记录下当前较好的解
		end
	end
end
x0,p0
toc %计时结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值