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

Sympy中如何定义符号与其他函数组合的自定义函数以完成表达式替换

问题原因

你调用sp.Function('h')得到的是未绑定参数的未定义函数类,属于UndefinedFunction类型,无法直接和符号运算结果(Mul类型)执行乘法操作,必须先给函数传入自变量,将其转为可参与运算的函数实例后才能正常计算。

正确实现步骤

1. 明确定义所有依赖项

你需要先指定函数对应的自变量,假设f和h都是单变量函数(自变量为t),示例定义如下:

import sympy as sp
# 定义基础符号
t = sp.Symbol('t')
x, y = sp.symbols('x y')
# 定义原函数f并绑定自变量
f = sp.Function('f')(t)
# 定义h函数并绑定自变量
h = sp.Function('h')(t)

如果你的f是多变量函数,给它传入对应的参数列表即可,h的参数列表需要和f保持一致。

2. 定义g表达式并执行替换

此时h已经是可参与运算的函数实例,可以直接构造g的表达式,再调用subs完成替换:

# 构造g的表达式
g = x + y * h
# 示例原表达式
expr = 2*f + f**2
# 执行替换
result = expr.subs(f, g)

打印result可以得到替换后的结果:2*(x + y*h(t)) + (x + y*h(t))**2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:09:02