You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Numpy对Python数组做二阶polyfit并求拟合多项式的最大值

Numpy二阶多项式拟合并求最大值实现方法

完整实现代码

import numpy as np

# 输入采样点数组
y = np.array([0.04625943, 0.04646331, 0.04636401, 0.04636489, 0.04651253,
              0.0462647 , 0.04549576, 0.04484105, 0.04463366], dtype=np.float32)
# 构造x轴坐标,默认取采样点的索引0~8,有自定义x采样值可直接替换该行
x = np.arange(len(y))

# 二阶多项式拟合,返回系数顺序为二次项、一次项、常数项,对应多项式y = a*x² + b*x + c
coeff = np.polyfit(x, y, 2)
a, b, c = coeff

# 二阶多项式顶点x坐标为固定解析解x0=-b/(2a),采样点先升后降拟合的a为负,开口向下,该点为最大值点
x0 = -b / (2 * a)
# 计算最大值
max_value = np.polyval(coeff, x0)

# 可选逻辑:要求最大值仅在采样区间[0, 8]内取值时,增加如下区间判断
if x0 < 0 or x0 > len(y)-1:
    max_value = max(np.polyval(coeff, 0), np.polyval(coeff, len(y)-1))

print(f"拟合二阶多项式:y = {a:.6f}x² + {b:.6f}x + {c:.6f}")
print(f"最大值点x坐标:{x0:.2f},最大值:{max_value:.6f}")

代码说明

  • 若有自定义的x轴采样坐标,直接替换x = np.arange(len(y))即可
  • 采用二阶多项式的解析顶点公式计算最大值,无需遍历采样点,计算效率更高
  • 可选的区间判断逻辑可避免极值点落在采样范围外时,得到不符合预期的结果

内容的提问来源于stack exchange,提问作者GNZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:39:03