function [xo,fo] = Nelder0(f,abc,fabc,TolX,TolFun,k)
%二维空间中的多边形逼近
if nargin < 6
k = 100;
end
if nargin < 5
TolFun = 1e-8;
end
if nargin < 4
TolX = 1e-5;
end
%%%%确定三个顶点a,b,c并且其函数值按从小到大排列
[fabc,I] = sort(fabc); %将二维空间中的多边形三个顶点的函数值按从小到大顺序排列
a = abc(I(1),:);
b = abc(I(2),:);
c = abc(I(3),:);
fa = fabc(1);
fb = fabc(2);
fc = fabc(3);
%%%判断三点或三点函数值的距离是否小于给定阈值.若小于阈值停止循环,得最优解x0=a
fba = fb - fa; %a,b点函数值之差
fcb = fc - fb; %b,c点函数值之差
if k <= 0 | abs(fba) + abs(fcb) < TolFun | abs(b - a) + abs(c - b) < TolX
xo = a;
fo = fa; %小于阈值
else %大于阈值,更新多边形顶点
m = (a + b)/2;
e = 3*m - 2*c; %扩展(expansion)
fe = feval(f,e);
if fe < fb
c = e;
fc = fe;
else
r = (m+e)/2; %反射(reflection)
fr = feval(f,r);
if fr < fc
c = r;
fc = fr;
end
if fr >= fb
s = (c + m)/2; %内收缩(inside contraction)
fs = feval(f,s);
if fs < fc
c = s;
fc = fs;
else
b = m;
c = (a + c)/2; %变小(shrink)
fb = feval(f,b);
fc = feval(f,c);
end
end
end
[xo,fo] = Nelder0(f,[a;b;c],[fa fb fc],TolX,TolFun,k - 1);
end
没有合适的资源?快使用搜索试试~ 我知道了~
nelder_mead优化算法
共3个文件
m:3个
需积分: 49 15 下载量 35 浏览量
2015-11-01
21:55:40
上传
评论 1
收藏 2KB RAR 举报
温馨提示
nelder_mead优化算法求多维函数极值的一种算法,不利用任何求导。利用多面体逼近
资源推荐
资源详情
资源评论
收起资源包目录
nelder-mead.rar (3个子文件)
Opt_Nelder.m 624B
Nelder0.m 1KB
ex1203.m 299B
共 3 条
- 1
资源评论
sooAnderson
- 粉丝: 225
- 资源: 57
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现文档+程序边缘计算任务卸载与资源调度的算法,是论文的源代码,具有价值.rar
- 什么是学生成绩管理系统c++以及学习学生成绩管理系统的意义
- 什么是词向量-以及学习关于了解词向量的意义
- 什么是mybatis动态sql以及学习mybatis动态sql的意义
- 华为数据治理方法论,包括:数据治理框架、数据治理组织架构、数据治理度量评估体系以及华为数据治理案例分享
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功