Ich brauche das Integral der folgenden Funktion in Bereichen zu berechnen, die so günstig wie -150
starten:Tricking numpy/Python in repräsentieren sehr große und sehr kleine Zahlen
import numpy as np
from scipy.special import ndtr
def my_func(x):
return np.exp(x ** 2) * 2 * ndtr(x * np.sqrt(2))
Das Problem ist, dass dieser Teil der Funktion
np.exp(x ** 2)
gegen unendlich geht - ich inf
für Werte von x
weniger als etwa -26
bekommen.
Und dieser Teil der Funktion
2 * ndtr(x * np.sqrt(2))
, die
from scipy.special import erf
1 + erf(x)
entspricht tendiert zu 0.
Also, eine sehr, sehr große Anzahl mal ein sehr, sehr klein Nummer sollte mir eine vernünftige Größe geben - aber stattdessen gibt python
mir nan
.
Was kann ich tun, um dieses Problem zu umgehen?
Sind Sie sicher, dass Ihr Integral keine analytischen Lösungen enthält? –
@ReblochonMasque nein, ich bin nicht. Weißt du wo ich einen finden könnte? Ich habe sicherlich nicht die Mathematikhacken, um es selbst herauszufinden. – dbliss
mathstackexchange vielleicht - oder wolframalpha - oder sympy –