使用要求值的“dummy”变量创建数学函数

2024-04-25 09:50:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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值的数组。你知道吗

我肯定我走错了方向…但我似乎不知道该怎么做。你知道吗

请帮帮我。谢谢!你知道吗


Tags: 函数teststepnppitransformfunction数组
1条回答
网友
1楼 · 发布于 2024-04-25 09:50:57

我相信你要找的是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

相关问题 更多 >