python – 使用’dummy’变量创建数学函数,以便稍后进行评估

我试图在
python中创建一个函数,它将添加一堆数学术语,其中包括一些任意变量名称,在构造完整的东西之后进行评估.所以举个例子

def transform(terms, xterm):
    function=.5
    step=terms
    odd=1
    while step>0:
        function+=(2/odd*np.pi)*np.sin(odd*np.pi*xterm)
        odd+=2
        step-=1
    return function

test=transform(10,somexvariable) 
print test   

这是我在力学课上必须完成的特定函数的傅立叶级数.

基本上我想,对于术语数量(比如5),创建一个如下所示的变量:

function = .5 + (2/odd*np.pi)*np.sin(odd*np.pi*xvariable) +....... 

我想要的许多术语,其中变量’odd’是唯一改变的数字.

这个问题的关键和难点是插入一些名为’xvariable’的虚拟变量,以便稍后我可以创建一个这样的数组:

x2 = np.arange(0,10,.05)
y = transform(2,x2)

结果将是在我使用’transform’创建的函数中计算的那些x值的数组.

我确信我会以错误的方式解决这个问题……但我似乎无法弄清楚这项工作的必要步骤顺序.

请帮忙.谢谢!

最佳答案 我相信你要找的是
functools.partial.它允许你创建一个带有一些预填充参数的函数.

from functools import partial

def sum_powers(x, terms):
    result = 0
    for term in terms:
        result += term ** x
    return result

sum_squares = partial(sum_powers, x=2)
sum_squares(terms=[1, 2, 3])
# 14

sum_cubes = partial(sum_powers, x=3)
sum_cubes(terms=[1, 2, 3])
# 36
点赞