2016-03-31 6 views
0

Das Integral in Frage:Verwirrung ein integrales in R geben Fehler in Bezug auf „Das Integral ist wahrscheinlich divergent“

integrand<-function(y){ 
    exp(-sqrt(2*y + alpha^2)*abs(x))/ (pi^2 * y * ((besselJ(delta*sqrt(2*y), lambda))^2) 
    + (besselY(delta*sqrt(2*y), lambda))^2) 
} 

integral<-function(x){integrate(integrand, lower=0, upper=Inf, subdivisions=20000)$value} 

Aus irgendeinem Grund, wenn ich versuche, diese (speziell für sehr kleine Werte von x) zu laufen , Bekomme ich den Fehler "Das Integral ist wahrscheinlich divergent." Ich nahm an, dass das, weil ich durch "y" geteilt habe, den Fehler verursacht hat. Allerdings, wenn ich die Gleichung drehen, dh

integrand<-function(y){ 
    (1/y)*(exp(-sqrt(2*y + alpha^2)*abs(x))/ (pi^2 * ((besselJ(delta*sqrt(2*y), lambda))^2) 
    + (besselY(delta*sqrt(2*y), lambda))^2)) 
} 

integral<-function(x){integrate(integrand, lower=0, upper=Inf, subdivisions=20000)$value} 

Wenn ich nicht irre (was ich sehr wahrscheinlich bin) sollte dies immer noch die gleiche Gleichung ausgeführt werden. (Da die Multiplikation mit '1/y' das gleiche Ergebnis wie die Division durch 'y' ergeben sollte). Wenn ich jedoch das Integral so laufe, bekomme ich den Fehler "Das Integral ist wahrscheinlich divergent" nicht. Ich bin sehr verwirrt, und klar, ich mache hier etwas schrecklich falsch!

Edit: Dies war in der Tat nicht ein Duplikat einer anderen Frage. Der Grund, warum ich den Fehler erhalten habe, war auf ein fehlendes Klammerpaar zurückzuführen, nicht auf die Toleranz der anderen Frage.

Antwort

0

Okay, also habe ich alles alleine gelöst!

Es gab ein Paar Klammern, die um den Zusatz der Bessel-Funktionen fehlen; Die Funktion sollte folgendermaßen lauten:

integrand<-function(y){ 
    exp(-sqrt(2*y + alpha^2)*abs(x))/ (pi^2 * y * (((besselJ(delta*sqrt(2*y), lambda))^2) 
    + (besselY(delta*sqrt(2*y), lambda))^2)) 
} 

integral<-function(x){ 
    integrate(integrand, lower=0, upper=Inf, subdivisions=20000)$value 
} 
Verwandte Themen