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

使用Autograd计算非线性方程组雅可比矩阵结果异常,求排查

问题分析与解决

问题原因

你的函数fs将输入拆分为两个独立参数x和y,但Autograd的jacobian函数默认仅对第一个输入参数计算偏导数。因此你得到的结果是两个输出对x的偏导值(即[1, 2x],代入x=1后得到[1., 2.]),而非完整的雅可比矩阵。

修正方案

将输入合并为一个向量参数,让jacobian对整个向量的每个元素求偏导,这样就能生成包含所有偏导组合的雅可比矩阵。

修正后的代码

import autograd.numpy as np
from autograd import jacobian

x = np.array([1, 2], dtype=float)

# 将输入改为单个向量参数
def fs(v):
    x, y = v
    return np.array([x + 2*y - 2, x**2 + 4*y**2 - 4])

jacobian_cost = jacobian(fs)

# 传入整个向量
print(jacobian_cost(x))

输出结果

array([[ 1.,  2.],
       [ 2., 16.]])

该结果与你预期一致,第一行对应两个输出对x的偏导,第二行对应两个输出对y的偏导,构成完整的雅可比矩阵。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:50:26