Integralsinus
aus Wikipedia, der freien Enzyklopädie
Der Integralsinus ist ein Begriff aus der Mathematik und bezeichnet eine durch ein Integral gegebene Funktion. Liouville (*1809, †1882) bewies, dass der Kardinalsinus nicht elementar integrierbar ist. Der Integralsinus ist definiert als das Integral der Sinc-Funktion:
.
Im Grenzübergang kann das Integral ausgewertet werden. Es gilt:
Die Entwicklung in eine Taylorreihe an der Stelle 0 liefert die gleichmäßig konvergente Reihe:
[Bearbeiten] Algorithmus
Diese Reihe lässt sich ziemlich leicht programmieren:
Const Epsilon=1E-10; {oder ein andere Genauigkeit} Function Si(x:Extended):Extended; Function xHochN(x:Extended;n:Byte):Extended; Var y:Extended; i:Byte; Begin y:=1; For i:=1 To n Do y:=y*x; xHochN:=y End; Function Fakultaet(n:Word):Extended; Var f:Extended; i:Word; Begin f:=1; For i:=1 To n Do f:=f*i; Fakultaet:=f End; Var ISinus,Delta:Extended; n :Word; Begin n:=0;ISinus:=0; Repeat Delta:=xHochN(-1,n)*xHochN(x,2*n+1)/((2*n+1)*Fakultaet(2*n+1)); ISinus:=ISinus+Delta;Inc(n) Until Abs(Delta)<Epsilon; Si:=ISinus End;
Diese Version ist jedoch langsam, da bei jedem Durchgang xHochN und die Fakultät neu berechnet werden müssen.
Eine schnellere Variante ergibt folgende Pascal-Funktion:
Function Si(x:Extended):Extended; Var ISinus,Fakultaet,Potenz,Delta:Extended; n :Word; Vorzeichen :-1..1; Begin ISinus:=x;n:=1;Fakultaet:=1;Potenz:=x;x:=Sqr(x);Vorzeichen:=-1; Repeat Potenz:=Potenz*x;Fakultaet:=Fakultaet*(n+1)*(n+2);Inc(n,2); Delta:=Potenz/(n*Fakultaet); ISinus:=ISinus+Vorzeichen*Delta;Vorzeichen:=-Vorzeichen Until Abs(Delta)<Epsilon; Si:=ISinus End;
[Bearbeiten] Siehe auch
- Integralcosinus
- Integraltangens
- Integralexponentialfunktion