matlab黄金分割算法实现与解析
2017-09-23 10:20
239 查看
% 0.618法求f(x) = x^2 - 7x + 10最小值,初始区间[1, 7],判断精度0.01
%{
学习收获:
advantage——Golden Section Method:
以0.618与0.382 作为系数考虑,相比于
其他系数经过试验发现它能有效提升求极
小值的收敛速度
具体为什么没想出来。。。
然后——参照了《关于黄金分割法的几点讨论》–刘艳
推荐可以看看
%}
lower = 1; upper = 7; f = @(x) x ^ 2 - 7* x + 10; %匿名函数 e = 0.01; tic while((upper - lower) >= e) alpha1 = lower + 0.382 * (upper - lower); alpha2 = lower + 0.618 * (upper - lower); if f(alpha1) < f(alpha2) upper = alpha2; else lower = alpha1; end end X = (lower + upper) / 2; toc disp(['最优解: X = ',num2str(X)]); disp(['此时: f(X) = ',num2str(f(X))]);
%{
学习收获:
Anonymous functions: handle = @(arglist)anonymous_function (example :) f=@(x,y)x^2+y^2; f(1,2) %ans = 5 (基本) f=@(x,y)x.^2+y.^2; a=1:1:10; b=10:-1:1; f(a,b) %ans = 101 85 73 65 61 61 65 73 85 101 (输入数组) (3)(3)>> a=1:5; >> b=5:-1:1; >> c=0.1:0.1:0.5; >> f=@(x,y)x.^2+y.^2+c; >> f(a,b) % ans = 26.1000 20.2000 18.3000 20.4000 26.5000 (包含参数) f=@(x,y)@(a) x^2+y^+a; f1=f(2,3) f1 = @(a)x^2+y^+a f2=f1(4) f2 = 85 (多重)
advantage——Golden Section Method:
以0.618与0.382 作为系数考虑,相比于
其他系数经过试验发现它能有效提升求极
小值的收敛速度
具体为什么没想出来。。。
然后——参照了《关于黄金分割法的几点讨论》–刘艳
推荐可以看看
%}
相关文章推荐
- Kmeans及其改进算法的Matlab解析与实现
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- 【图】二分图最大匹配算法的应用及Matlab实现
- 灰度图像形状的识别分类算法实现matlab
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- NSGA2 算法Matlab实现
- 使用C语言实现二维,三维绘图算法(2)-解析曲面的显示
- 数字图像去噪典型算法及matlab实现
- 几种简单常用的镜头边缘检测算法(matlab实现)
- 近邻法的快速算法-matlab实现
- 两个相交的圆形,第一个圆形内包含很多点,第二个圆内包含很多点,现在要求两个圆内相交的点是哪些,用随便的java或matlab算法如何实现呢?
- KNN算法matlab代码实现
- 简单好用的最小二乘椭圆拟合算法---MATLAB实现
- otsu算法---matlab实现,和一种改进算法
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- 多级树集合分裂(SPIHT)算法的过程详解和Matlab实现(4)编码过程——排序扫描
- matlab将孔隙空间充满毛细血管算法实现
- matlab实现ICP(3D迭代最近点算法)
- [LeetCode][14]Longest Common Prefix解析 两种算法和底层源码的深入对比-Java实现
- MATLAB实现构造Euler环游图的算法——数学建模