Fibonacci法的matlab实现,即实例
最优化方法(Matlab)实验报告
—— Fibonacci法
一、实验目的:
用MATLAB程序实现一维搜索中用Fibonacc法求解一元单峰函数的极小值问题。 二、实验原理:
(一)、构造Fibonacci数列:设数列{Fk},满足条件:
1、F0
F1 1
2、Fk 1 Fk Fk 1
则称数列{Fk}为Fibonacci数列。 (二)、迭代过程:
首先由下面的迭代公式确定出迭代点:
k ak
uk ak
Fn k 1Fn k 1Fn kFn k 1
(bk ak),k 1,...,n 1
(bk ak),k 1,...,n 1
易验证,用上述迭代公式进行迭代时,第k次迭代的区间长度缩短比率恰好为
F1F2
Fn kFn k 1
。故可设迭代次数为n,因此有
F1F2
F2F3
F1F2
F2F3
Fn 1Fn
1Fn
bn an (bn 1 an 1)
(bn 2 an 2) ...
...
(b1 a1) (b1 a1)
bn an L
若设精度为L,则有第n次迭代得区间长度
1Fn
1Fn
(b1 a1) L
,即
就是
(b1 a1) L
,由此便可确定出迭代次数n。