gpt4 book ai didi

python - 获取 sympy 解决方案的某些部分

转载 作者:行者123 更新时间:2023-12-01 03:47:48 24 4
gpt4 key购买 nike

我在表单上有一个巨大的象征性同情表达

expression = factor * (f1*a + f2*b + f3*c + f4*d + f5*e)

其中所有因子 a 到 e 均由多项组成。即:

a = exp(2x) + exp(3x) + sin(Ix). 

我想在表单上创建数组

array = factor * [a,b,c,d,e] 

但没有找到更有效的方法来做到这一点。我尝试使用因子函数,但它只给出了上面“表达式”形式的表达式。

到目前为止我已经使用

print(expression)

然后对因子 a 到 e 进行了一些强力复制粘贴。由于我将获得比本示例中包含更多术语的表达式,因此我想在不使用复制粘贴例程的情况下执行此操作。有什么想法吗?

最佳答案

这是一个简单的示例,您可以推断出更多术语

import sympy as sp

x = sp.var('x')
f1, f2 = sp.symbols('f1:3')
factor = sp.symbols('factor')

a = x**2 + sp.sin(x) + sp.exp(sp.I * x)
b = sp.log(x)/(x+1)**2

# example expression:
expression = (factor * (f1 * a + f2 * b)).expand()
print(expression)

# collect coefficients of f1 and f2
coeffs = sp.collect(expression.expand(),[f1,f2], evaluate=False)
print(coeffs)

# show the coefficients w/o the factor factor
[(coeffs[f]/factor).simplify() for f in (f1,f2)]
f1*factor*x**2 + f1*factor*exp(I*x) + f1*factor*sin(x) + f2*factor*log(x)/(x**2 + 2*x + 1)
{f2: factor*log(x)/(x**2 + 2*x + 1), f1: factor*x**2 + factor*exp(I*x) + factor*sin(x)}

[x**2 + exp(I*x) + sin(x), log(x)/(x**2 + 2*x + 1)]

关于python - 获取 sympy 解决方案的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38721014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com