精确一维搜索算法(直接法)

本网所有内容文字、图片和音视频资料,版权均属个人所有,仅供个人呢学习参考,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。

*本文不讲概念*,直接干货例题
## 黄金分割法
eg:
1.求解minf(x)=2x²-x-1,初始区间[a1,b1]=[-1,1],精度ε<=0.16。


解:

1. 带入a1,b1,解得λ1,μ1,再带入f(x)求解
2. 取min{f(λk),f(μk)},最小值更接近原问题解
3. 将另一个f(x)所对应的 ak/bk,λk/μk替换,进行迭代
4. 如下表:
k ak bk λk μk f(λk) f(μk)
1 -1 1 -0.236 0.236 -0.653 -1.125
2 -0.236 1 0.236 0.528 -1.125 -0.970
3 -0.236 0.528 0.056 0.236 -1.050 -1.125
4 0.056 0.528 0.236 0.348 -1.125 -1.106
5 0.056 0.348 0.168 0.236 -1.112 -1.125
6 0.168 0.348 0.236 0.279 -1.125 -1.123
7 0.168 0.279
5. ∵b7-a7=0.111<0.16
∴取x=1/2(0.168+0.279)=0.23,即为所求解。


## 斐波那契数列法(Fibonacci)
斐波那契数列:
k 0 1 2 3 4 5 6 7 8 9 10 11 12
f(k) 1 1 2 3 5 8 13 21 34 55 89 144 233……

eg:
试用斐波那契数列法求函数f(x)=x²-x+2的近似极小值点和极小值,要求缩短
后的区间不大于初始区间[-1,3]的0.08倍。辨别常数δ=0.01.

解:
容易验证在区间[-1,3]上函数为单峰函数
求解过程如下表:
k ak bk λk μk f(λk) f(μk)
1 -1 3 0.538 1.462 1,751 2.675
2 -1 1.462 -0.077 0.538 2.083 1,751
3 -0.077 1.462 0.538 0.846 1,751 1.870
4 -0.077 0.846 0.231 0.538 1.822 1,751
5 0.231 0.846 0.538 0.538 1,751 1,752
6 <font color= red>0.231 0.548

∵λ5=μ5,∴另μ5=λ5+δ=0.548
求得f(λ5),f(μ5),此时在区间(0.231,0.548)内,
由于f(a6)=1.822>f(b6)=1.752,可取近似极小值点为0.548,近似极小值为1.752。
初始区间0.08倍=0.32,缩短后区间长度为0.548-0.231=0.317<0.32,满足条件。
所以近似极小值点为0.548,近似极小值为1.752。

posted @ 2020-07-07 10:46  明教张公子  阅读(465)  评论(0编辑  收藏  举报