Python黄金分割法求极值加画图

python 做积分图       import scipy.integrate as sci import numpy as np import matplotlib.pyplot as plt import matplotlib from matplotlib.patches import Polygon myfont=matplotlib.font_manager.Font... 阅读详情
函数是3x^2-2tan(x)
import math
import numpy as np
from matplotlib import pyplot as plt

def func(x):
    return 3*x**2 -2*math.tan(x)
a = 0
b = 1
x1= a + 0.382 * (b - a)
funcx1 = func(x1)
x2= a + 0.618 * (b - a)
funcx2 = func(x2)
plt.scatter(0,3*0**2 -2*math.tan(0))
plt.scatter(1,3*1**2 -2*math.tan(1))
while (1):
    if (funcx1 <= funcx2):
        if (x2 - a <= 0.0001):
            print("最优解:",x1)
            print("最优值:",3*x1**2 -2*math.tan(x1))
            print("终止条件为:(b-x1)<=0.0001")

            plt.scatter(x1,3*x1**2 -2*math.tan(x1))

            break
        else:
            b = x2
            x2= x1
            funcx2 = funcx1
            x1 = a + 0.382 * (b - a)
            funcx1 = func(x1)
            print("x1=",x1)
            print(3*x1**2 -2*math.tan(x1))
            print("x2=",x2)
            print("f(x2)=",3*x2**2 -2*math.tan(x2))
            print("f((x1+x2)/2)=",3*((x1+x2)/2)**2 -2*math.tan(((x1+x2)/2)))
            plt.scatter(x1,3*x1**2 -2*math.tan(x1))
            plt.scatter(x2,3*x2**2 -2*math.tan(x2))



    else:
        if (b - x1 <= 0.0001):
            print("最优解:",x2)
            print("最优值:",3*x2**2 -2*math.tan(x2))
            print("终止条件为:(b-x1)<=0.0001")
            plt.scatter(x2,3*x2**2 -2*math.tan(x2))
            break
        else:
            a = x1
            x1 = x2
            funcx1= funcx2
            x2 = a + 0.618 * (b - a)
            funcx2 = func(x1)
            print("x1=",x1)
            print(3*x1**2 -2*math.tan(x1))
            print("x2=",x2)
            print("f(x2)=",3*x2**2 -2*math.tan(x2))
            print("f((x1+x2)/2)=",3*((x1+x2)/2)**2 -2*math.tan(((x1+x2)/2)))
            plt.scatter(x1,3*x1**2 -2*math.tan(x1))
            plt.scatter(x2,3*x2**2 -2*math.tan(x2))


x=np.arange(0,1,0.0001)
func=3*x**2-2*np.tan(x)
plt.xlabel('x')
plt.ylabel('func')
plt.plot(x,func)
plt.show()

 

 

python实现最速下降法求二元函数极值并绘制3D图像 目标 原函数: f(x) = 2x1x1 + x2x2 -2x1*x2 - 4x1 + 4 起始点 为(0,0) 精度 :误差要求小于 10**(-3) 过程: 直接上代码看注释吧() import numpy as np import math import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D def f(x): return 2*x[0]**2 + x[1]**2 - 2*x[0]*x[1]-4* 阅读详情

相关推荐

用黄金分割法(Golden Section Search Method)求函数最大值的python程序

代码: 求函数A = 4*sinx *(1+cosx) 的最大值(x是角度) x的范围是0~90° 迭代到误差小于10^-6为止 代码: from sympy import * a = 0 b = 90 dx = 0.05 x,xg = symbols('x,xg') def func(x): A = 4*sin(x*pi.evalf()/180)*(1+cos(x*pi.evalf()/180)) return A def gold_func(a,b): return solv

Fo*(Bi)的博客 1万+

Python+matplotlib可视化自定义轴域大小和位置

推荐图书:《Python可以这样学》,ISBN:9787302456469,董付国,清华大学出版社,第9次印刷图书详情(京东):董付国老师17本Python系列图书均提供配套教学资源。=...

Python小屋 952

工程优化作业——成功失败法和黄金分割法

西电工程优化作业编程题,写篇博客是为了熟悉MarkDown公式编写的方式。

上善若水 2933

黄金分割(0.618)法求解函数极值(附代码)

目录 黄金分割法 迭代公式 算法步骤: 例题 C++代码: 黄金分割法也称为中外比,指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。其比值是一个无理数,取其前三位数字的近似值是0.618,所以也称为0.618法。 黄金分割法 迭代公式 算法步骤: step1.给定初始搜索区间和允许精度 step...

hser-chen的博客 9810

优化理论14----二分法、二分法与黄金分割法比较、python实现

💖💖感谢各位观看这篇文章,💖💖点赞💖💖、收藏💖💖、你的支持是我前进的动力!💖💖 💖💖感谢你的阅读💖,专栏文章💖持续更新!💖关注不迷路!!💖 一维搜索——二分法 文章目录一维搜索——二分法二分法二分法与黄金分割法比较python实现参考资料 二分法

炫云云 1899

优化理论13----黄金分割法、单峰函数、python实现及验证

💖💖感谢各位观看这篇文章,💖💖点赞💖💖、收藏💖💖、你的支持是我前进的动力!💖💖 💖💖感谢你的阅读💖,专栏文章💖持续更新!💖关注不迷路!!💖 一维搜索——黄金分割法 文章目录一维搜索——黄金分割法无约束一维极值问题单峰函数定义:形象地描述如

炫云云 766

MATLAB数值分析学习笔记:黄金分割法

在工程上,最优化就是使被研究对象尽可能高效的过程,比如使时间花费最少,设计出最多的产品。在数学上,最优化就是寻找函数在某一区间上的局部极值,这些函数具有一个或多个变量,具有单自变量的函数,该过程被称为一维优化问题,否则称之为多维优化问题。对于一维优化问题,在数学上往往是通过求解函数的导数,极值点导数为0,来求解的,这就变成了导数求根的问题了,可以使用划界法和开方法。在划界法中,有一种方法被广泛应用,它就是。......

ZPS2021112344的博客 7185

python实现黄金分割法求函数极值

用python语言实现进退法和黄金分割方法求函数极值及所在区间

最优化算法python实现篇(3)——无约束一维极值(黄金分割法)

最优化算法python实现篇(3)——无约束一维极值(黄金分割法)算法适用问题python实现示例运行结果 算法适用问题 搜索给定单峰区间的极值问题,一般对凸优化问题比较适用。 python实现 # ******************************** 无约束一维极值——黄金分割法 ******************************** import pandas as pd...

Cyrus_May的博客 3272

STM32 Modbus-RTU从零到实战:手把手教你用HAL库实现工业通信(附完整代码)

本文详细介绍了如何使用STM32 HAL库从零开始实现Modbus-RTU从机通信。内容涵盖RS485硬件设计、CubeMX串口与定时器配置、基于空闲中断的高效数据接收、协议栈状态机设计、CRC16校验实现以及常用功能码处理。文章提供了完整的代码框架和调试方法,帮助开发者快速构建稳定的工业通信节点。

weixin_28278377的博客 186

PX4笔记系列(二)vtol_att_control中的tiltrotor解析

update_vtol_state() 注释:采用两段切换的简单逻辑来进行过渡 当切换过渡开关后,飞机将会开始倾转动力,逐渐加速,当飞机获得足够速度后动力将会完全打到向前的位置。对于过渡返回阶段动力则是简单地倾转回来。 如果(不在向前过渡指令下): 当前vtol飞行模式: 1、旋翼模式 无操作 2、固定翼模式 令vtol飞行模式切换到过渡返回模式 3、P1过渡模式 进入过渡失败安全返回至旋翼模式 4、P2过渡模式 进入过渡失败安全返回至旋翼模式 5、过渡返回模式 记录过渡返回时间=当前时间-过渡开始

hypersonicss的博客 1878

黄金分割法求极值点

我们先来了解什么是黄金分割算法: 黄金分割法也称0.618算法,属于区间收缩法,首先找出包含极小点的初始搜索区间,然后黄金分割点通过对函数值的比较不断缩小搜索区间(当然要保证极小点在搜素区间),当定义域的长度缩小的一定长度时候,就可以用当前区间的端点值的平均近似代替极小值点。 注:适用范围是单谷函数(就是只有一个极大值(转化成求极小值问题)或者极小值点) 通俗点讲就是讲先给...

dechebiao6765的博客 2831

【Gin框架入门到精通系列01】Gin框架介绍与环境搭建

本文是Gin框架入门到精通系列的第一篇,系统介绍Gin框架的基本概念、核心特性以及环境搭建。无论你是Go语言新手还是有经验的开发者,都能通过本文快速掌握Gin框架的基础知识,创建并运行你的第一个Gin应用。

GopherTribe的博客 1560

黄金分割法(Python)

黄金分割法:(Golden Section Method):又叫做做0.618法,是用于单峰函数区间上求极小值的一种方法。 **基本思想:**通过去试探点和进行函数值比较,使包含极小点的探索区间不断减小,当区间达到一定的程度时,就得到了函数极小点的近似值。 取点法则: 对称取点 等区间收缩率 留点可用 步骤: 设置初始探索区间[a,b],并设置精度e,并计算左右试探点 ​ a1 = a+0.382(b-a) ​

weixin_46327567的博客 1万+

ESP32—C3实现网页跳转

用户点击HTML页面中的按钮。浏览器根据按钮的href属性向服务器发送HTTP GET请求。服务器根据请求的URL调用相应的回调函数。服务器发送包含新页面HTML内容的HTTP响应。浏览器解析并显示新的HTML页面。这个过程对于用户来说是无缝的,看起来就像是直接从一个页面跳转到另一个页面。实际上,背后发生了HTTP请求和响应的过程。

qq_59527512的博客 1022

Palantir 凭什么两年涨 20 倍?深度解析解决 AI 幻觉的 “本体论“ 核心原理

本文深度解析了Palantir本体(Ontology)的核心原理及其在企业AI应用中的革命性价值。本体通过构建结构化的语义层与动态执行层,将企业分散的数字资产(数据集、虚拟表、模型)映射为现实世界的数字孪生,使大模型能够在**严格的业务规则与数据边界内**进行推理与决策,从而从架构层面彻底解决AI幻觉问题。这一技术架构不仅帮助Palantir实现股价两年增长20倍、市值突破4000亿美金的商业成功,更成为SAP、Salesforce等ERP巨头争相模仿的下一代企业智能标准范式。通过航空业飞机故障应急处理等实

program哲学 224

黄金分割法实战:如何用Python快速求解单峰函数极值(附完整代码)

本文详细介绍了黄金分割法在Python中求解单峰函数极值的实战应用,包括算法原理、代码实现及性能优化技巧。通过完整的Python代码示例,展示了如何高效地应用这一一维最优化方法于工程优化和数据分析领域,特别适合导数难以计算的场景。

2a4s6d8f0g的博客 665

使用Navicat连接Oracle数据库及ORA-12541: TNS: 无监听程序、ORA-28547:connection to server failed、ORA-12514:TNS报错解决方案

使用Navicat连接Oracle数据库及ORA-12541: TNS: 无监听程序、ORA-28547:connection to server failed、ORA-12514:TNS报错解决方案。

蓝多多的小仓库 5217

Python实战:用黄金分割法优化你的函数极值搜索(附完整代码)

本文详细介绍了如何使用Python实现黄金分割法进行函数极值搜索。通过完整的代码示例,从算法原理、动态函数求值器构建到可视化分析,手把手教你掌握这一经典的一维优化方法。该方法无需计算导数,适用于单峰函数优化,是数据科学和工程设计中参数调优的实用工具。

weixin_29300931的博客 225

27、物联网中的量子密钥分发:安全通信新范式

本文探讨了物联网(IoT)快速发展所带来的安全挑战,并提出量子密钥分发(QKD)作为应对新兴威胁的新范式。文章详细介绍了QKD的基础原理、BB84协议的实现流程以及其在物联网中的应用前景,同时强调了安全专业人员提升技能、制定标准化指南以及跨学科合作的重要性。通过利用量子力学特性,QKD能够提供更高的通信安全性,抵御量子计算等未来威胁,为物联网的安全发展提供保障。

tequila的博客 156

基于Python的军事装备数据爬取与分析:从网页抓取到数据可视化实战

本文将详细介绍如何使用Python最新技术栈构建一个完整的军事装备数据爬虫系统。我们将从爬虫基础讲起,逐步深入到异步爬取、反反爬策略、数据存储与分析等高级主题,最终实现一个能够自动抓取、清洗、存储和分析军事装备数据的完整解决方案。文章包含大量实战代码示例,涉及requests-html、aiohttp、Playwright等现代爬虫库,以及MongoDB存储、Pandas分析和Pyecharts可视化等技术。关键词:Python爬虫、军事数据、异步爬取、反反爬、数据可视化。

2201_76125261的博客 1188

Python实现二分法和黄金分割法

  运筹学课上,首先介绍了非线性规划算法中的无约束规划算法。二分法和黄金分割法是属于无约束规划算法的一维搜索法中的代表。   二分法:$$x_{1}^{(k+1)}=\frac{1}{2}(x_{R}^{(k)}+x_{L}^{(k)}-\Delta)$$$$x_{2}^{(k+1)}=\frac{1}{2}(x_{R}^{(k)}+x_{L}^{(k)}+\Delta)$$   黄...

思念殇千寻的博客 1733

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python实现黄金分割法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33935777的博客 3002

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

0.618(黄金分割法)求解极值点开源代码

0.618方法(黄金分割法)作为单峰函数寻找极值点的简单常用方法,其特点:简单,易上手,缺点:迭代速度慢,耗时长,所以写个代码快速解决

weixin_43617646的博客 2781

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【python】最优化方法之一维搜索(黄金分割法+斐波那契法)

最优化方法——一维搜索 本文着重介绍了2种一维搜索的算法原理(配图),Python的程序迭代(配合matplotlib标注迭代点坐标)和算法的比较。

体会编程语言独到的美 1万+

Python实战:用黄金分割法优化函数极值(附完整代码)

本文通过Python实战案例,详细介绍了黄金分割法这一经典线搜索技术在函数极值优化中的应用。针对导数难以计算或函数形态复杂的场景,文章提供了从基础实现到工业级增强的完整代码,并探讨了其作为步长搜索器与其他优化方法结合的进阶技巧,为学习最优化方法和解决实际工程问题提供了实用工具与思路。

weixin_29213655的博客 110
下一篇: Java程序设计实用教程实验三3-38
css1ad
博客等级 码龄5年 2粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值