Ein anderes ( EDIT : Ich habe es jetzt vereinfacht. EDIT2 : Ich habe es noch weiter vereinfacht, obwohl das Bild jetzt nicht wirklich diese exakte Gleichung widerspiegelt):
f(x)=13⋅α⋅log(cosh(α⋅a)+cosh(α⋅x)cosh(α⋅b)+cosh(α⋅x))
Klobig, ich weiß, aber hier habe ich die Tatsache ausgenutzt, dass sich einer Linie nähert, wenn zunimmt.xlog(cosh(x))x
Grundsätzlich haben Sie die Kontrolle darüber, wie glatt der Übergang ist ( ). Wenn und garantiere ich, dass es eine gültige Wahrscheinlichkeitsdichte ist (summiert sich zu 1). Wenn Sie andere Werte wählen, müssen Sie diese neu normieren.a = 2 b = 1alphaa=2b=1
Hier ist ein Beispielcode in R:
f = function(x, a, b, alpha){
y = log((cosh(2*alpha*pi*a)+cosh(2*alpha*pi*x))/(cosh(2*alpha*pi*b)+cosh(2*alpha*pi*x)))
y = y/pi/alpha/6
return(y)
}
f
ist unsere Distribution. Zeichnen wir es für eine Sequenz vonx
plot(0, type = "n", xlim = c(-5,5), ylim = c(0,0.4))
x = seq(-100,100,length.out = 10001L)
for(i in 1:10){
y = f(x = x, a = 2, b = 1, alpha = seq(0.1,2, length.out = 10L)[i]); print(paste("integral =", round(sum(0.02*y), 3L)))
lines(x, y, type = "l", col = rainbow(10, alpha = 0.5)[i], lwd = 4)
}
legend("topright", paste("alpha =", round(seq(0.1,2, length.out = 10L), 3L)), col = rainbow(10), lwd = 4)
Konsolenausgabe:
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = NaN" #I suspect underflow, inspecting the plots don't show divergence at all
#[1] "integral = NaN"
#[1] "integral = NaN"
Und Handlung:
Sie könnten ändern a
und b
ungefähr den Anfang bzw. das Ende der Steigung, aber dann wäre eine weitere Normalisierung erforderlich, und ich habe es nicht berechnet (aus diesem Grund verwende ich a = 2
und b = 1
im Plot).