python实现黄金分割法的示例代码
作者:jtwty 时间:2022-08-27 19:41:17
一.问题
使用黄金分割法来计算
二.代码
#黄金分割法python求解PPT上第一个例题
#因为函数要求解最大值而这个方法一般求解最小值所以把函数取负
import numpy as np
import matplotlib.pyplot as plt
rate = 0.618034
def f(x):
#求解体积函数公式,乘1.0将结果变为浮点数
return -1.0*x*(350-2*x)*(260-2*x)
def tarceback(f,a0,b0,accuracy):
a = a0
b = b0
x2 = a+rate*(b-a)
x1 = b-rate*(b-a)
f1 = f(x1)
f2 = f(x2)
print(x1,x2)
arr = search(f,a,b,x1,x2,f1,f2,accuracy)
printFunc(f,a,b,arr[0],arr[1])
def search(f,a,b,x1,x2,f1,f2,accuracy):
if f1<=f2:
if x2-a<accuracy:
print(x1,f1)
return (x1,f1)
else:
b = x2
x2 = x1
f2 = f1
x1 = a+b-x2
f1 = f(x1)
print(x1,x2)
return search(f,a,b,x1,x2,f1,f2,accuracy)
else:
if b-x1<accuracy:
print(x2,f2)
return (x2,f2)
else:
a = x1
x1 = x2
f1 = f2
x2 = a+b-x1
f2 = f(x2)
print(x1,x2)
return search(f,a,b,x1,x2,f1,f2,accuracy)
def printFunc(f,a,b,x,y):
t = np.arange(a,b,0.01)
s = f(t)
plt.plot(t,s)
plt.plot([x],[y],'ro')
plt.plot([x,x],[y,0],'k--')
plt.plot([0,x],[y,y],'k--')
# plt.annotate(r'$(x,y)$',xy=(x,y))
plt.show()
tarceback(f,0,130,0.05)
三.结果
来源:https://blog.csdn.net/weixin_46308081/article/details/116164984
标签:python,黄金分割法
0
投稿
猜你喜欢
如何将pytorch模型部署到安卓上的方法示例
2023-03-15 15:12:12
python 获取文件下所有文件或目录os.walk()的实例
2021-10-13 03:31:01
Python生成随机验证码的两种方法
2022-06-27 02:39:56
Web Jmeter–接口测试工具详解
2022-06-27 04:24:32
一款强大的端到端测试工具Playwright介绍
2021-06-19 11:59:55
Mysql 索引 BTree 与 B+Tree 的区别(面试)
2024-01-13 03:10:32
Django模板获取field的verbose_name实例
2023-07-30 06:53:55
Mysql CONVERT函数的具体使用
2024-01-27 03:52:12
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2023-07-09 01:15:42
python使用自定义钉钉机器人的示例代码
2021-10-21 12:08:02
Python新手学习标准库模块命名
2021-01-16 05:18:06
优化你的ASP程序及优化网页
2007-10-06 23:02:00
Pandas Shift函数的基础入门学习笔记
2023-02-16 20:46:12
[翻译]网页设计中的模式窗口
2009-05-29 18:00:00
Python基于回溯法子集树模板解决全排列问题示例
2023-12-18 21:25:04
Python进行数据提取的方法总结
2022-06-23 18:02:45
Python一行代码实现自动发邮件功能
2021-04-06 06:04:38
python计算两个地址之间的距离方法
2023-09-01 01:40:59
官方是这样定义 DOCTYPE HTML PUBLIC 的
2007-05-31 09:43:00
详解Go开发Struct转换成map两种方式比较
2024-04-26 17:32:12