当前位置: 首页 > news >正文

企业网站开发价钱低信阳seo公司

企业网站开发价钱低,信阳seo公司,wordpress设置logo和公司名,wordpress使用实例最优化基础知识(2) 无约束优化问题,一维搜索 一、一维搜索 一维搜索的意思是在一个方向上找到最小点。 用数学语言描述,X*Xk tPk,从Xk沿着Pk方向行走t到达最小点X*。 1、收敛速度: 线性收敛&#xff1…

最优化基础知识(2)

无约束优化问题,一维搜索

一、一维搜索

一维搜索的意思是在一个方向上找到最小点。

用数学语言描述,X*=Xk +tPk,从Xk沿着Pk方向行走t到达最小点X*

1、收敛速度:

请添加图片描述

  1. 线性收敛:p=1,0<beta<1
  2. 超线性收敛: p>1或者beta=0
  3. 次线性收敛:p=1,beta=1
  4. p阶收敛:p>1
2、二次终止性:

能够在有限步内找到具有正定矩阵的二次函数的极小点。

f (X) = 1/2 XTAX + bTX + c

3、终止准则

什么时候停机,什么时候停止搜索。通常有以下五种:

请添加图片描述

1、黄金分割法

给定每次迭代区间缩小比例,如果做才能搜索次数最少?

黄金分割法的python代码:

import mathdef golden_section_search(f, a, b, tol=1e-6):golden_ratio = (math.sqrt(5) - 1) / 2length = b - ax1 = a + (1 - golden_ratio) * lengthx2 = a + golden_ratio * lengthwhile x2-x1>tol:print(x1,x2)if f(x1) < f(x2):b = x2x2 = x1x1 = a + (1 - golden_ratio) * (b - a)else:a = x1x1 = x2x2 = a + golden_ratio * (b - a)return (a + b) / 2# 示例用法
def f(x):# 定义函数 f(x)return x*math.log(x)# 在区间 [0, 5] 中寻找函数的极小值点
result = golden_section_search(f, 0, 5)
print(f"极小值点的位置为: {result}")
print(f"函数极小值为: {f(result)}")

2、fibonacci搜索

给定迭代次数,如何在迭代次数内达到最好的搜索效果(最后一次迭代完成,搜索区间最小)?

这个问题可以反过来理解,假设最后一次迭代完成,搜索区间长度为1,那么最开始的搜索区间最大为多少?

python代码:

import mathdef fibonacci_search(f, a, b, n):# 计算Fibonacci数列fibonacci = [0, 1]for i in range(n):fibonacci.append(fibonacci[-1] + fibonacci[-2])# 计算初始区间长度length = b - a# 计算初始比例ratio = (fibonacci[-3] / fibonacci[-1]) if len(fibonacci) > 2 else 0# 初始化区间端点x1 = a + ratio * lengthx2 = a + (1 - ratio) * length# 迭代搜索for _ in range(len(fibonacci) - 3):if f(x1) < f(x2):b = x2x2 = x1x1 = a + ratio * (b - a)else:a = x1x1 = x2x2 = a + (1 - ratio) * (b - a)fibonacci.pop()ratio = (fibonacci[-3] / fibonacci[-1])print(fibonacci[-3],fibonacci[-1],ration)# 返回最优解的位置return (a + b) / 2# 示例用法
def f(x):# 定义函数 f(x)return x*math.log(x)# 在区间 [-5, 5] 中寻找函数的极小值点
result = fibonacci_search(f, 0, 5, 30)
print(f"极小值点的位置为: {result}")
print(f"函数极小值为: {f(result)}")

在有的地方,直接给出的不是迭代次数,而是最终的区间长度的上界L,b1-a1是初始区间。
b n − a n = F n − 1 / F n ( b n − 1 − a n − 1 ) = F n − 1 F n F n − 2 F n − 1 ⋯ F 1 F 2 ( b 1 − a 1 ) b_n-a_n=F_{n-1}/F_{n}(b_{n-1}-a_{n-1}) = \frac{F_{n-1}}{F_{n}}\frac{F_{n-2}}{F_{n-1}}\cdots\frac{F_{1}}{F_{2}}(b_1-a_1) bnan=Fn1/Fn(bn1an1)=FnFn1Fn1Fn2F2F1(b1a1)
也就是说区间长度最小bn-an=(b1-a1)/F_n<=L,F_n是最大的fibonacci数。

关键:F[n-2]+F[n-1]=F[n],F[n-2]/F[n]+F[n-1]/F[n]=1,这样能保证每次删掉一侧的区间,比例是一样的。

当F[6]/F[7]=21/34=0.6176470588235294,和黄金分割法近似相同。

黄金分割法是fibonacci法的极限形式。

3、三点二次插值法

请添加图片描述

4、两点三次插值法

请添加图片描述

5、牛顿法

牛顿法就是在极小点附近选择一个初始点x0,在x0处二阶泰勒展开,并求其驻点。牛顿法不具有全局收敛性,因此初始点的选择很重要,它只是向初始点附近的驻点靠近。

请添加图片描述

牛顿法的python代码:

import sympy as sp
def newton_method(f, x0, tol=1e-6, max_iter=100):f_d1 = f.diff()f_d2 = f_d1.diff()# 迭代搜索for _ in range(max_iter):# 计算导数值fx = f_d1.subs({x:x0})fxx = f_d2.subs({x:x0})# 更新搜索位置x1 = x0 - fx / fxx# 检查是否满足终止条件if abs(x1 - x0) < tol:break# 更新当前点x0 = x1# 返回搜索结果return x1# 示例用法
x = sp.Symbol('x')
f=x**3-4*x+5# 选择初始点
x0 = -10# 使用牛顿法搜索函数的极小值点
result = newton_method(f, x0)
print(f"极小值点的位置为: {result.n()}")
print(f"函数极小值为: {f.subs({x:result}).n()}")

二、非精确一维搜索

1、Goldstein准则

请添加图片描述

2、Wolfe准则

请添加图片描述

3、Armijo准则

请添加图片描述

http://www.yayakq.cn/news/284965/

相关文章:

  • 济南网站建设公司电子商务网站广州室内设计培训学校
  • 网站做百度推广能获取流量吗c 做网站实例
  • 哪个网站有工笔教程网站怎么优化
  • 高端网站开发案例展示网站域名变了能查吗
  • html页面 wordpressseo优化系统哪家好
  • 杭州网站建设哪家最好北京网站营销与推广
  • 集团门户网站建设自己做传奇网站
  • 金科科技 做网站青岛做网站电话
  • 网站返利程序建设银行如何进行网站冻结
  • 杭州网站建设制作公司网站后台乱码
  • 如何推荐别人做网站昆山市建设工程交易中心网站
  • 网站的目的网站制作接单
  • 网站建设维护合同建立网站专业公司
  • 网站seo建设方案互联网营销师考证多少钱
  • 网站底部怎么做电商设计有前途吗
  • 关于电子商务网站建设的参考文献湛江做网站开发
  • 网站后续建设wordpress建站视频教程下载
  • 建设网站的市场背景织梦医疗网站
  • 深圳龙岗做网站公司网站建设课程总结
  • 广州网站优化方案手机网站 百度推广
  • 网站开发包含的项目和分工做外贸没有网站需要注意什么条件
  • 广元网站建设公司html网站实例
  • 企业中英文网站建设有关宠物方面的网站建设方案
  • 网站网页设计佛山优化推广
  • 网站摸板淘宝联盟链接的网站怎么做
  • 怎么免费网站wordpress links
  • 网站群的建设策略通信网站模板
  • 网站备案没有了宁波三优互动网站建设公司怎么样
  • inititle 网站建设网站优化升级怎么做
  • 网站建设费的摊销年限佛山网站提升排名