matlab : Nelder mead simplex 单纯形直接搜索算法;
function [ param ] = NeldSearch( param )
%NERDSEARCH 此处显示有关此函数的摘要
% nelder mead simplex 单纯形直接搜索算法;
%param r,g,b 初始三角形顶点;
%%
initPts = [param.b;param.g;param.w];
if(sum(max(initPts) - min(initPts)) < 1e-5)
param.solve = mean(initPts);
return;
end
if( ~isfield(param,'b') || ~isfield(param,'g') || ~isfield(param,'w') )
disp('输入参数不正确');
return;
end %先排序;
fvals = [func(param.b) func(param.g) func(param.w)];
[newSort,Index]= sort(fvals); %默认升序;
%确定b,g,w;
param.b = initPts(Index(1),:);
param.g = initPts(Index(2),:);
param.w = initPts(Index(3),:); param.m = (param.b + param.g)/2;
param.r = 2 * param.m - param.w; if( func(param.r) < func(param.g) )
param = CaseI(param);
else
param = CaseII(param);
end
param = NeldSearch(param); %递归;
disp('--END--');
end function param = CaseI(param)
if(func(param.b) < func(param.r) )
param.w = param.r;
else
param.e = 2 * param.r - param.m;
if(func(param.e) <func(param.b))
param.w = param.e;
else
param.w = param.r;
end
end
end function param = CaseII(param)
if( func(param.r) < func(param.w) )
param.w = param.r;
end
param.c = (param.w + param.m)/2;
if( func(param.c) < func(param.w) )
param.w = param.c;
else
param.s = (param.b + param.w)/2;
param.w = param.s;
param.g = param.m;
end
end function f = func(point)
x= point(1);
y= point(2);
f = x * x - 4 * x + y * y - y - x * y;
end
Nelder mead simplex为单纯形直接搜索算法,可以对无约束多元函数进行寻优,不过该方法找到的解为局部最优解,优点在于能够对无导多元函数进行
优化处理;
matlab : Nelder mead simplex 单纯形直接搜索算法;的更多相关文章
- 线性规划(Simplex单纯形)与对偶问题
线性规划 首先一般所有的线性规划问题我们都可以转换成如下标准型: 但是我们可以发现上面都是不等式,而我们计算中更希望是等式,所以我们引入这个新的概念:松弛型: 很显然我们最后要求是所有的约束左边的变量 ...
- c#编程模仿的1stopt界面
* Levenberg-Marquardt法 (LM)+ 通用全局优化算法(Universal Global Optimization - UGO) * Quasi-Newton法 (BFGS)+ 通 ...
- 单纯形方法(Simplex Method)
最近在上最优理论这门课,刚开始是线性规划部分,主要的方法就是单纯形方法,学完之后做了一下大M算法和分段法的仿真,拿出来与大家分享一下.单纯形方法是求解线性规划问题的一种基本方法. 线性规划就是在一系列 ...
- 最优化理论-Simplex线性规划
Sorry,各位,现在这里面啥也没,之所以开这篇文章,是防止以后用得到:现在研究这些,总感觉有些不合适,本人还不到那个层次:如果之后有机会继续研究simplex-线性规划问题,再回来参考下面的链接进 ...
- Gym101158 J 三分 or 模拟退火 Cover the Polygon with Your Disk
目录 Gym101158 J: 求圆与给定凸多边形最大面积交 模拟退火 三分套三分 模拟退火套路 @ Gym101158 J: 求圆与给定凸多边形最大面积交 传送门:点我点我 求 $10 $ 个点组成 ...
- PP: UMAP: uniform manifold approximation and projection for dimension reduction
From Tutte institute for mathematics and computing Problem: dimension reduction Theoretical foundati ...
- 单纯形算法 matlab
%单纯形 %目标函数标准化 % min x1-3x2+2x3 %输入参量 N=[3 -1 2;-2 4 0;-4 3 8]; B=eye(3); A=[N B]; cn=[1;-3;2]; cb=ze ...
- 人工水母搜索算法—matlab代码
clc clear foj = @ Sphere; Lb = -100; % 搜索空间下界 Ub = 100; % 搜索空间上界 N_iter = 1000; % 最大迭代次数 n_pop = 50; ...
- 非线性规划的Matlab 解法
编写M 文件fun1.m 定义目标函数 function f=fun1(x); % 定义目标函数 f=sum(x.^)+; % .^2是矩阵中的每个元素都求平方.^2是求矩阵的平方或两个相同的矩阵相乘 ...
随机推荐
- H5 history.pushState 在微信内修改url后点击用safari打开/复制链接是修改之前的页面
解决方案:url参数增加随机参数 function wxRefresh() { var replaceQueryParam = (param, newval, search) => { var ...
- Spring 使用介绍(一)—— 概述
一.Spring设计原则 1.约定大于配置的契约式编程 2.非侵入式设计 从框架角度可以这样理解,无需继承框架提供的类,这种设计就可以看作是非侵入式设计,如果继承了这些框架类,就是侵入设计 3.面向接 ...
- windows新增/修改/删除系统环境变量bat示例,一键配置JAVA_HOME
setx JAVA_HOME "C:\Program Files\java\jdk1.6.0_27" /m setx classpath = ".;%JAVA_HOME% ...
- python3.7之12306抢票脚本实现
悲催的12306,彻底沦为各路抢票软件的服务提供方.元旦伊始,纯粹12306官网及APP抢票,愈一周的时间,仅到手一张凌晨3:55回家的站票.为远离脑残,无奈选择抢票软件,预购年后返沪车票.BTW,研 ...
- PHP——判断数组中是否有重复值并找出重复值
可以用来测试需要唯一凭据号码的,是否有重复值,不过一般直接使用uuid了,简单粗暴就解决问题,这个就简单的测试生成的数据是否有重复值吧 <?php /* * @Author: wyy * @Da ...
- python中的map函数
def f(x): return x * x """将一个全是数字的list变成平方形式""" def f2(): ls = [1, 2, ...
- MT【244】调和分割
已知椭圆方程:$\dfrac{x^2}{4}+\dfrac{y^2}{3}=1$,过点$P(1,1)$的两条直线分别与椭圆交于点$A,C$和$B,D$,且满足$\overrightarrow{AP}= ...
- SCOI2016幸运数字(树剖/倍增/点分治+线性基)
题目链接 loj luogu 题意 求树上路径最大点权异或和 自然想到(维护树上路径)+ (维护最大异或和) 那么有三种方法可以选择 1.树剖+线性基 2.倍增+线性基 3.点分治+线性基 至于线性基 ...
- 洛谷CF1071E Rain Protection(计算几何,闵可夫斯基和,凸包,二分答案)
洛谷题目传送门 CF题目传送门 对于这题,我无力吐槽. 虽然式子还是不难想,做法也随便口胡,但是一些鬼畜边界情况就是判不对. 首先显然二分答案. 对于每一个雨滴,它出现的时刻我们的绳子必须落在它上面. ...
- Hdoj 2084.数塔 题解
Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大 ...