最优化方法Python计算:一元函数搜索算法

您所在的位置:网站首页 二次函数极值公式推导方法 最优化方法Python计算:一元函数搜索算法

最优化方法Python计算:一元函数搜索算法

2024-04-09 16:32| 来源: 网络整理| 查看: 265

已知连续函数 f ( x ) f(x) f(x)在 x ∗ x^* x∗近旁存在最优解 x 0 x_0 x0​。对博文《最优化方法Python计算:连续函数的单峰区间计算》讨论的 f ( x ) f(x) f(x)单峰区间的包围算法稍加修改,可算得 f ( x ) f(x) f(x)包含 x 0 x_0 x0​的单峰区间 [ a , c ] [a,c] [a,c]及含于 ( a , c ) (a,c) (a,c)内的满足 f ( a ) > f ( b ) < f ( c ) f(a)>f(b)f(b)ya: #s为上升方向 a,b=b,a #交换a,b ya,yb=yb,ya s=-s #调整s为下降方向 c=b+s #c置为b+s yc=f(c) while ycc: #若a大c小 a,c=c,a #交换a,c return a,b,c

令 y a = f ( a ) y_a=f(a) ya​=f(a), y b = f ( b ) y_b=f(b) yb​=f(b)及 y c = f ( c ) y_c=f(c) yc​=f(c)。构造通过点 ( a , y a ) (a,y_a) (a,ya​), ( b , y b ) (b,y_b) (b,yb​)及 ( c , y c ) (c,y_c) (c,yc​)的二次函数 q ( x ) = p 0 + p 1 x + p 2 x 2 q(x)=p_0+p_1x+p_2x^2 q(x)=p0​+p1​x+p2​x2,即 { y a = p 0 + p 1 a + p 2 a 2 y b = p 0 + p 1 b + p 2 b 2 y c = p 0 + p 1 c + p 2 c 2 . \begin{cases} y_a=p_0+p_1a+p_2a^2\\ y_b=p_0+p_1b+p_2b^2\\ y_c=p_0+p_1c+p_2c^2 \end{cases}. ⎩ ⎨ ⎧​ya​=p0​+p1​a+p2​a2yb​=p0​+p1​b+p2​b2yc​=p0​+p1​c+p2​c2​. 解出 p 0 p_0 p0​, p 1 p_1 p1​和 p 2 p_2 p2​: { p 0 = b c y a ( b − a ) ( c − a ) − a c y b ( b − a ) ( c − b ) + a b y c ( c − a ) ( c − b ) p 1 = − ( b + c ) y a ( b − a ) ( c − a ) + ( a + c ) y c ( b − a ) ( c − b ) − ( a + b ) y c ( c − a ) ( c − b ) p 2 = y a ( b − a ) ( c − a ) − y b ( b − a ) ( c − b ) + y c ( c − a ) ( c − b ) . \begin{cases} p_0=\frac{bcy_a}{(b-a)(c-a)}-\frac{acy_b}{(b-a)(c-b)}+\frac{aby_c}{(c-a)(c-b)}\\ p_1=-\frac{(b+c)y_a}{(b-a)(c-a)}+\frac{(a+c)y_c}{(b-a)(c-b)}-\frac{(a+b)y_c}{(c-a)(c-b)}\\ p_2=\frac{y_a}{(b-a)(c-a)}-\frac{y_b}{(b-a)(c-b)}+\frac{y_c}{(c-a)(c-b)}\end{cases}. ⎩ ⎨ ⎧​p0​=(b−a)(c−a)bcya​​−(b−a)(c−b)acyb​​+(c−a)(c−b)abyc​​p1​=−(b−a)(c−a)(b+c)ya​​+(b−a)(c−b)(a+c)yc​​−(c−a)(c−b)(a+b)yc​​p2​=(b−a)(c−a)ya​​−(b−a)(c−b)yb​​+(c−a)(c−b)yc​​​. 二次式 q ( x ) = p 0 + p 1 x + p 2 x 2 q(x)=p_0+p_1x+p_2x^2 q(x)=p0​+p1​x+p2​x2 称为 f ( x ) f(x) f(x)在 a , b , c a,b,c a,b,c处的二次插值多项式。由于 q ( a ) = f ( a ) q(a)=f(a) q(a)=f(a), q ( b ) = f ( b ) q(b)=f(b) q(b)=f(b), q ( c ) = f ( c ) q(c)=f(c) q(c)=f(c),故 q ( a ) > q ( b ) < q ( c ) q(a)>q(b)q(b) f ( b ) < f ( c ) f(x)>f(b)f(b)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3