共需要三个M文件,主程序为randlp.m

randlp.m:

function [sol,r1,r2]=randlp(a,b,n)          %随机模拟解非线性规划
debug=1;
a=0; %试验点下界
b=10; %试验点上界
n=1000; %试验点个数
r1=unifrnd(a,b,n,1); %nx1阶的[a,b]均匀分布随机数矩阵
r2=unifrnd(a,b,n,1);
sol=[r1(1) r2(1)];
z0=inf; for i=1:n
x1=r1(i);
x2=r2(i);
lpc=lpconst([x1 x2]);
if lpc==1
z=mylp([x1 x2]);
if z<z0
z0=z;
sol=[x1 x2];
end
end
end
z=z0

  mypl.m:

function z=mylp(x)
z=2*x(1)^2+x(2)^2-x(1)*x(2)-8*x(1)-3*x(2);

  lpconst.m:

function lpc=lpconst(x)
if 3*x(1)+x(2)-10<=0.5 & 3*x(1)+x(2)-10>=-0.5
lpc=1;
else
lpc=0;
end

 结果:x1=2.524,x2=2.8397,z=15.0735

用蒙特卡罗方法解非线性规划MATLAB的更多相关文章

  1. MCMC(一)蒙特卡罗方法

    MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链(待填坑) MCMC(三)M-H采样和Gibbs采样(待填坑) 作为一种随机采样方法,马尔科夫链蒙特卡罗(Markov Chain Monte Ca ...

  2. 蒙特卡罗方法、蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)初探

    1. 蒙特卡罗方法(Monte Carlo method) 0x1:从布丰投针实验说起 - 只要实验次数够多,我就能直到上帝的意图 18世纪,布丰提出以下问题:设我们有一个以平行且等距木纹铺成的地板( ...

  3. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)

    1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...

  4. 蒙特卡罗方法 python 实现2

    如果不考虑作图,这里的两个例子可以改写成下面的样子: 求圆周率 import random ''' 蒙特卡罗模拟 投点法计算圆周率 ''' # 投点游戏 def play_game(): # 圆 r ...

  5. 蒙特卡罗方法 python 实现

    蒙特卡罗(Monte Carlo)方法的精髓:用统计结果去计算频率,从而得到真实值的近似值. 一.求圆周率的近似值,采用 投点法 import numpy as np import matplotli ...

  6. 【RL系列】从蒙特卡罗方法步入真正的强化学习

    蒙特卡罗方法给我的感觉是和Reinforcement Learning: An Introduction的第二章中Bandit问题的解法比较相似,两者皆是通过大量的实验然后估计每个状态动作的平均收益. ...

  7. 白话马尔科夫链蒙特卡罗方法(MCMC)

    前言 你清茶园不是人待的地方! 里面的个个都是人才,说话又好听--就是我太菜了啥也听不懂,这次期中还考的贼**烂,太让人郁闷了. 最近课上讲这个马尔科夫链蒙特卡罗方法,我也学得一塌糊涂.这时我猛然想起 ...

  8. 机器学习笔记----Fuzzy c-means(FCM)模糊聚类详解及matlab实现

    前言:这几天一直都在研究模糊聚类.感觉网上的文档都没有一个详细而具体的讲解,正好今天有时间,就来聊一聊模糊聚类. 一:模糊数学 我们大家都知道计算机其实只认识两个数字0,1.我们平时写程序其实也是这样 ...

  9. 遗传学详解及Matlab算法实现

    遗传学算法概述 从之前转载的博客<非常好的理解遗传算法的例子>中可以知道,遗传学算法主要有6个步骤: 1. 个体编码 2. 初始群体 3. 适应度计算 4. 选择运算 5. 交叉运算 6. ...

随机推荐

  1. zimage 和bzimage 有什么区别

    在网络中,不少服务器采用的是Linux系统.为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核.编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的 ...

  2. 3.Spring框架中的标签与配置文件分离

    1.Spring框架中标签的配置 1. id属性和name属性的区别 * id -- Bean起个名字,在约束中采用ID的约束,唯一 * 取值要求:必须以字母开始,可以使用字母.数字.连字符.下划线. ...

  3. idea debug技巧

    1 给对象设置值

  4. 前缀数组O(n^3)做法

    前缀数组O(n^3)做法 s.substr()的应用非常方便 令string s = "; ); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789&quo ...

  5. UITableViewHeaderFooterView can't change custom background when loading from nib

    down voteforite I've created a custom UITableViewHeaderFooterView and successfully load from nib int ...

  6. 在Linux下使用gcc运行C语言程序

    Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具.本教程毫不犹豫地使用GCC来编译C程序. ...

  7. Zookeeper教程

    由于zookeeper使用java语言编写,因此我们运行zookeeper需要保证你的服务器上已经安装了jdk. 安装zk 本文介绍的前提是已经默认安装好了jdk,Linux安装JDK教程https: ...

  8. 使用alibaba的json工具将String类型转为JSONArray类型

    转化流程:先将输入流转为String类型,再使用alibaba的json转换工具,将字符串转化为json数组 SensorDevices sensorDevices = new SensorDevic ...

  9. Leetcode401Binary Watch二进制手表

    二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 给定一个非负整数 n 代表当前 LED 亮着 ...

  10. 巧用tar命令

    tar命令可以对文件进行归档.它最初设计是用来将数据存储在磁带上.tar可以将多个文件和文件夹保存为单个文件,同时还能保留所有的文件属性,如所有者.权限等.由tar创建的文件通常称为Tarball.下 ...