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

使用Numpy实现指定二元高度函数单点梯度的方法咨询

单点梯度计算实现思路指引

核心原理

梯度是多元函数对各自变量的偏导数组成的向量,针对本题的二元高度函数h(x,y),梯度就是(∂h/∂x, ∂h/∂y),即分别求x方向、y方向的偏导后,代入当前(x,y)取值得到的两个数值组成的数组。

h(x,y) = x*y**2*(sin(π*x) + cos(2π*y))

高度函数h(x,y)可视化图

实现方案选择说明

不推荐的方案:适配np.gradient

np.gradient是为离散数组设计的数值梯度计算工具,需要至少连续3个点的采样值才能通过差分计算梯度。如果只有单个点,硬造适配的数组反而需要额外生成周边采样点,步骤冗余、精度不可控,完全没必要。

可选方案1:解析法(优先推荐)

手动推导两个偏导数的显式表达式,直接代入x、y计算即可:

  • 利用乘积求导法则、三角函数导数规则、链式法则推导∂h/∂x和∂h/∂y的公式
  • 直接用numpy提供的np.sin、np.cos、np.pi等工具实现公式计算
  • 优势:精度最高、计算速度最快,适合本题有明确函数表达式的场景

可选方案2:数值差分法

如果不想推导公式可以用该方案,通过微小扰动近似计算偏导:

  • 取一个极小的扰动值epsilon(推荐取值1e-6~1e-8)
  • x方向偏导近似为:(h(x+epsilon, y) - h(x-epsilon, y)) / (2*epsilon)
  • y方向偏导近似为:(h(x, y+epsilon) - h(x, y-epsilon)) / (2*epsilon)
  • 优势:不需要推导公式,适合黑盒函数的梯度计算;劣势:精度受epsilon取值影响,计算速度略慢

函数实现框架

import numpy as np
def gradient(x,y):
    # 自行选择上述两种方案之一实现,返回dx, dy组成的数组即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:24:09