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

如何向sympy生成的导数函数中代入数值计算结果?

实现方法分为两种常见场景:

1. 单次少量数值代入:使用subs方法

直接对求导得到的符号表达式调用.subs(变量名, 数值)即可得到计算结果,示例代码如下:

import sympy 

def ham():
    x = sympy.Symbol("x")
    return x**3 + x**2 + 1
# 求导得到符号形式的导数表达式
deriv_expr = sympy.diff(ham())
# 代入x=3计算结果
res = deriv_expr.subs('x', 3)
print(deriv_expr) # 输出:3*x**2 + 2*x
print(res) # 输出:33

如果需要同时代入多个变量,可传入字典格式:deriv_expr.subs({x:3, y:2})。

2. 多次代入/批量数值计算:使用lambdify转成可调用函数

如果需要频繁代入不同数值计算,subs执行效率较低,推荐用sympy.lambdify将符号表达式转换为普通Python可调用函数,调用方式和普通函数完全一致,还支持传入numpy数组批量计算:

import sympy
import numpy as np

x = sympy.Symbol("x")
origin_expr = x**3 + x**2 + 1
deriv_expr = sympy.diff(origin_expr)
# 转换为可调用函数
deriv_func = sympy.lambdify(x, deriv_expr)
# 单次调用
print(deriv_func(3)) # 输出:33
# 批量传入数组计算
print(deriv_func(np.array([1,2,3]))) # 输出:[ 5 16 33]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:45:05