我试图在

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



版权声明:本文为weixin_39946313原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39946313/article/details/111447778