gpt4 book ai didi

sympy - 查找表达式列表的序列算法?

转载 作者:行者123 更新时间:2023-12-01 04:35:06 24 4
gpt4 key购买 nike

是否可以使用 sympy 来查找表达式序列的算法?

例如,如果我有以下列表:

s = [ fraction(1/1), fraction(1/2), fraction(1/4), ... ]

sympy 可以提取代表这个表达式列表的表达式吗?

>> fraction(1/(2**(x-1)))

最佳答案

如前所述,这不是一个明确定义的任务。公式 1/(1+x*(x-1)/2) 也适合给定的数据。更一般地说,对于任何有限的数据点集,都有无限多个与所有点完全匹配的公式;应该返回哪一个作为答案?

SymPy 确实有插值例程 interpolaterational_interpolate;前者返回多项式,后者返回通过给定点的有理函数。 ( Reference 。)在您的示例中可以使用多项式插值如果您知道指数函数应该适合,因此取数据的对数,如下所示:

s = [Rational(1, 1), Rational(1, 2), Rational(1, 4)]
x = Symbol('x', real=True)
result = exp(interpolate([log(y) for y in s], x)).simplify()
print(result)

这会打印 2**(-x + 1)。这个想法是取对数将指数函数变成线性的,可以用interpolate构造。

但一般来说,将某种形式的曲线拟合到给定数据的问题可以通过 scikit-learn 等软件包以数值方式解决。

关于sympy - 查找表达式列表的序列算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44976216/

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