【发布时间】:2015-10-05 01:16:10
【问题描述】:
我有一个函数,我需要对(对所有整数)进行无限求和。总和并不总是需要收敛,因为我可以更改内部参数。函数看起来像,
m(g, x, q0) = sum(abs(g(x - n*q0))^2 for n in Integers)
m(g, q0) = minimize(m(g, x, q0) for x in [0, q0])
使用 Pythonic 伪代码
使用 Scipy 积分方法,我只是将 n 铺平并像固定 x 一样积分,
m(g, z, q0) = integrate.quad(lambda n:
abs(g(x - int(n)*q0))**2,
-inf, +inf)[0]
这工作得很好,但是我必须对 x 作为 x 的函数进行优化,然后对产生积分优化的积分进行另一次求和。这几乎需要很长时间。
您知道更快的求和更好的方法吗?手动编码似乎速度较慢。
目前,我正在与
g(x) = (2/sqrt(3))*pi**(-0.25)*(1 - x**2)*exp(-x**2/2)
但解决方案应该是通用的
本文来自 Daubechies (IEEE 1990) 的“The Wavelet Transform, Time-Frequency Localization and Signal Analysis”
谢谢
【问题讨论】:
-
beta(s)只是一个标量常数吗?s参数似乎没有做任何事情。 -
另外,
g(x)是什么? -
哦,对不起,我复制了一个方程的一半和上面一个方程的另一半。让我解决这个问题。 g(x) 是任意的,目前在我的代码中它是高斯的二阶导数。
标签: python numpy scipy mathematical-optimization integral