Ich habe eine Funktion für mit ich muss eine unendliche Summe auf (über alle ganzen Zahlen) numerisch zu tun. Die Summierung muss nicht immer konvergieren, da ich interne Parameter ändern kann. Die Funktion sieht aus wie,Unendliche Summation in Python
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])
einen Pythonic Pseudo-Code mit
Mit Scipy Integrationsmethoden, ich war nur der n Bodenbelag und wie für eine feste x Integration
m(g, z, q0) = integrate.quad(lambda n:
abs(g(x - int(n)*q0))**2,
-inf, +inf)[0]
Dies funktioniert ziemlich gut, aber dann muss ich Optimierung auf dem x als eine Funktion von x tun, und dann eine andere Summe auf dem machen, die ein Integral einer Optimierung eines Integrals ergibt. Es dauert ziemlich lange.
Kennen Sie einen besseren Weg, die Summierung schneller zu machen? Handcodierung schien es langsamer zu gehen.
Derzeit arbeite ich mit
g(x) = (2/sqrt(3))*pi**(-0.25)*(1 - x**2)*exp(-x**2/2)
aber die Lösung sollte allgemein sein
Das Papier dieses von ist kommt „Die Wavelet-Transformation, Zeit-Frequenz-Lokalisierung und Signalanalyse“ von Daubechies (IEEE 1990)
Danke
Ist 'beta (s)' nur eine skalare Konstante? Der 's' Parameter scheint nichts zu tun. –
Also, was ist 'g (x)'? –
Oh, tut mir leid, ich habe die eine Hälfte der einen und die andere Hälfte der obigen Gleichung kopiert. Lass mich das reparieren. g (x) ist willkürlich, derzeit in meinem Code ist es die zweite Ableitung des Gaußschen. –