我有这种形式的数学函数,$f(x)=\sum_{j=0}^N x^j * \sin(j*x)$希望在中高效地进行计算Python。N约为100。对于巨大矩阵的所有条目x,该函数f评估了数千次,因此我想提高性能(分析器表明f的计算大部分时间都花在了计算上)。为了避免在函数f的定义中出现循环,我写了:
def f(x)
J=np.arange(0,N+1)
return sum(x**J*np.sin(j*x))
Run Code Online (Sandbox Code Playgroud)
问题是,如果要对矩阵的所有条目求值该函数,则需要先使用numpy.vectorize,但据我所知,这不一定比for循环快。
有没有一种有效的方法来执行这种类型的计算?