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

在Sympy中如何匹配两个表达式的实系数求解对应参数值

问题原因

你之前得到带x的解,是因为Sympy默认求解的是存在某个x使等式成立的参数解,而非对任意x恒成立的系数匹配解。要得到固定的A、B实数值,需要额外约束三角函数项的对应系数分别相等。

解决方法

我们可以手动提取sin(x)和cos(x)的系数构造方程组后求解,示例代码如下:

from sympy import *
var('x A B')

# 若匹配你手动推导的等式,这里sin(x)的系数改为2B即可
P1 = 2*B*sin(x) + (B + 3*A/4)*cos(x)
P2 = sin(x) + 2*cos(x)

# 移项得到差值表达式
diff_expr = P1 - P2
# 分别提取sin(x)、cos(x)的系数,构造系数等于0的方程组
eq_sin = Eq(diff_expr.coeff(sin(x)), 0)
eq_cos = Eq(diff_expr.coeff(cos(x)), 0)
# 求解方程组
result = solve([eq_sin, eq_cos], [A, B])
print(result)

运行后输出为:

{A: 2, B: 1/2}

和你手动推导的结果完全一致。

补充说明

如果不需要手动提取系数,也可以用linear_eq_to_matrix直接将恒等条件转换为线性方程组求解,本质逻辑都是匹配正交基函数的对应系数,没有额外的性能差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:51:00