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 单纯形直接搜索算法;的更多相关文章

  1. 线性规划(Simplex单纯形)与对偶问题

    线性规划 首先一般所有的线性规划问题我们都可以转换成如下标准型: 但是我们可以发现上面都是不等式,而我们计算中更希望是等式,所以我们引入这个新的概念:松弛型: 很显然我们最后要求是所有的约束左边的变量 ...

  2. c#编程模仿的1stopt界面

    * Levenberg-Marquardt法 (LM)+ 通用全局优化算法(Universal Global Optimization - UGO) * Quasi-Newton法 (BFGS)+ 通 ...

  3. 单纯形方法(Simplex Method)

    最近在上最优理论这门课,刚开始是线性规划部分,主要的方法就是单纯形方法,学完之后做了一下大M算法和分段法的仿真,拿出来与大家分享一下.单纯形方法是求解线性规划问题的一种基本方法. 线性规划就是在一系列 ...

  4. 最优化理论-Simplex线性规划

     Sorry,各位,现在这里面啥也没,之所以开这篇文章,是防止以后用得到:现在研究这些,总感觉有些不合适,本人还不到那个层次:如果之后有机会继续研究simplex-线性规划问题,再回来参考下面的链接进 ...

  5. Gym101158 J 三分 or 模拟退火 Cover the Polygon with Your Disk

    目录 Gym101158 J: 求圆与给定凸多边形最大面积交 模拟退火 三分套三分 模拟退火套路 @ Gym101158 J: 求圆与给定凸多边形最大面积交 传送门:点我点我 求 $10 $ 个点组成 ...

  6. PP: UMAP: uniform manifold approximation and projection for dimension reduction

    From Tutte institute for mathematics and computing Problem: dimension reduction Theoretical foundati ...

  7. 单纯形算法 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 ...

  8. 人工水母搜索算法—matlab代码

    clc clear foj = @ Sphere; Lb = -100; % 搜索空间下界 Ub = 100; % 搜索空间上界 N_iter = 1000; % 最大迭代次数 n_pop = 50; ...

  9. 非线性规划的Matlab 解法

    编写M 文件fun1.m 定义目标函数 function f=fun1(x); % 定义目标函数 f=sum(x.^)+; % .^2是矩阵中的每个元素都求平方.^2是求矩阵的平方或两个相同的矩阵相乘 ...

随机推荐

  1. 转载:关于JESD204B转换器与FPGA匹配的设计关键点

    http://www.dzsc.com/data/2014-11-27/107442.html 随着更多的模数转换器(ADC)和数模转换器(DAC)支持最新的JESD204B串行接口标准,出现了FPG ...

  2. 一般服务器端口号的反斜杠表示访问webapp下的资源

  3. JavaScript Decorators 的简单理解

    Decorators,装饰器的意思, 所谓装饰就是对一个物件进行美化,让它变得更漂亮.最直观的例子就是房屋装修.你买了一套房子,但是毛坯房,你肯定不想住,那就对它装饰一下,床,桌子,电视,冰箱等一通买 ...

  4. CSS3 flexbox 布局 ---- flex项目属性介绍

    现在介绍用在flex项目上的css 属性,html结构还是用ul, li 结构,不过内容改成1,2,3, 样式的话,直接把给 ul 设display:flex 变成flex 容器,默认主轴的方向为水平 ...

  5. hdu-5536(字典树)

    题意:给你n个数,让你在n个数中选三个,使得(a1+a2)^a3的值最大,a1!=a2!=a3(下标不等于): 解题思路:01字典树可以写,因为数据小,我们可以先把n个数建一颗字典树,然后两边for找 ...

  6. Promise实现队列

    有时候我不希望所有动作一起发生,而是按照一定顺序,逐个进行 var promise=doSomething(); promise=promise.then(doSomethingElse); prom ...

  7. vscode——配置git的path

    设置 打开设置 搜索配置 复制Json文本 编辑配置 粘贴刚才复制的json文本,并将自己git的地址写好,保存即可 完整配置 { "workbench.colorTheme": ...

  8. jwt实现

    <?phpnamespace app\admin\controller;use think\Config;use think\Controller;use think\Request;use t ...

  9. 【agc030f】Permutation and Minimum(动态规划)

    [agc030f]Permutation and Minimum(动态规划) 题面 atcoder 给定一个长度为\(2n\)的残缺的排列\(A\),定义\(b_i=min\{A_{2i-1},A_{ ...

  10. Dynamic CRM 2015学习笔记(3)oData 查询方法及GUID值比较

    本文将比较二种查询字符串在同一个oData查询方法中的不同,另外,还将介绍如何比较不同方法返回的GUID的值. 用同一个oData查询方法,如果传入查询的字符串不一样,返回结果的格式竟然完全不一样. ...