Perl - 35 Bytes
print!map$\-=1/($%+=$.=$%-$.),0..<>
Beispielnutzung:
$ echo 10 | perl inv-fib-sum.pl
3.34170499581934
Weitere Analyse
Es ist interessant festzustellen, dass die Summe

ist konvergent. Angenommen, wir wollten ein paar tausend Stellen oder so berechnen, ist der naive Ansatz fast ausreichend. Die Konvergenz ist zunächst recht langsam, beschleunigt sich jedoch schnell, sodass 1000 Stellen nur etwa 4800 Terme benötigen . Eine Beispiel-Python-Implementierung könnte sein:
a=[1,1]
for i in range(4800):a=[a[0]+a[1]]+a
z=10**1000
print sum(map(lambda i:z/i,a))
was nach einer Sekunde oder so ausgibt:
33598856662431775531720113029189271796889051337319684864955538153251303189966833836154162164567900872970453429288539133041367890171008836795913517330771190785803335503325077531875998504871797778970060395645092153758927752656733540240331694417992939346109926262579646476518686594497102165589843608814726932495910794738736733785233268774997627277579468536769185419814676687429987673820969139012177220244052081510942649349513745416672789553444707777758478025963407690748474155579104200675015203410705335285129792635242062267537568055761955669720848843854407983324292851368070827522662579751188646464096737461572387236295562053612203024635409252678424224347036310363201466298040249015578724456176000319551987905969942029178866949174808096746523682654086938399069873211752166957063859411814553647364268782462926166650100098903804823359519893146150108288726392887669917149304053057745574321561167298985617729731395370735291966884327898022165047585028091806291002444277017460241040417786069190065037142832933
(Die letzten vier Ziffern konvergieren nicht ganz, aber das werden wir vorerst ignorieren.)
Versuchen wir, die Konvergenz etwas zu beschleunigen. Ein Standardtrick ist die Verwendung von Eulers Transformation . Nach Erweiterung und Vereinfachung ergibt sich ein schöneres Ergebnis:

Es sollte ziemlich offensichtlich sein, warum dies schneller konvergiert; Jeder Term hat 3 Terme im Nenner und nicht nur einen. Die Berechnung von 1000 Stellen erfordert nur 1600 (ein Drittel so viele) Begriffe:
a=[1,1]
for i in range(1601):a=[a[0]+a[1]]+a
z=10**1000
print sum(map(lambda i:(-1)**i*z/(a[i]*a[i+1]*a[i+2]),range(1601)))
Ausgabe:
3598856662431775531720113029189271796889051337319684864955538153251303189966833836154162164567900872970453429288539133041367890171008836795913517330771190785803335503325077531875998504871797778970060395645092153758927752656733540240331694417992939346109926262579646476518686594497102165589843608814726932495910794738736733785233268774997627277579468536769185419814676687429987673820969139012177220244052081510942649349513745416672789553444707777758478025963407690748474155579104200675015203410705335285129792635242062267537568055761955669720848843854407983324292851368070827522662579751188646464096737461572387236295562053612203024635409252678424224347036310363201466298040249015578724456176000319551987905969942029178866949174808096746523682654086938399069873211752166957063859411814553647364268782462926166650100098903804823359519893146150108288726392887669917149304053057745574321561167298985617729731395370735291966884327898022165047585028091806291002444277017460241040417786069190065037142834500
(Auch hier konvergieren die letzten 4 Ziffern nicht.)
Wir sind noch nicht ganz fertig. Wenn wir benachbarte Begriffe kombinieren, erhalten wir Folgendes:

Das Ausklammern jedes Terms aus dem Rest der Summierung ergibt den verschachtelten Ausdruck:

Jetzt kommen wir irgendwohin. Beachten Sie, dass die Zähler von OEIS A206351 folgen (mit Ausnahme des ersten Terms, der verdoppelt wird):

und die Nenner folgen OEIS A081016 (um einen Begriff verschoben):

Jedes von diesen hat sehr einfache Wiederholungsrelationen, nämlich:

und

beziehungsweise. Alles in allem benötigen wir nur 800 Iterationen für 1000 Ziffern:
b,c=[16,3,1],[273,40,3]
for i in range(800):b,c=[7*b[0]-b[1]-4]+b,[7*c[0]-c[1]-1]+c
s=z=10**1000
for x,y in zip(b,c):s=(z+s)*x/y
print s
welche Ausgänge:
3598856662431775531720113029189271796889051337319684864955538153251303189966833836154162164567900872970453429288539133041367890171008836795913517330771190785803335503325077531875998504871797778970060395645092153758927752656733540240331694417992939346109926262579646476518686594497102165589843608814726932495910794738736733785233268774997627277579468536769185419814676687429987673820969139012177220244052081510942649349513745416672789553444707777758478025963407690748474155579104200675015203410705335285129792635242062267537568055761955669720848843854407983324292851368070827522662579751188646464096737461572387236295562053612203024635409252678424224347036310363201466298040249015578724456176000319551987905969942029178866949174808096746523682654086938399069873211752166957063859411814553647364268782462926166650100098903804823359519893146150108288726392887669917149304053057745574321561167298985617729731395370735291966884327898022165047585028091806291002444277017460241040417786069190065037142835294
(Hier konvergieren schließlich die letzten 4 Ziffern korrekt.)
Das ist aber noch nicht alles. Wenn wir die Zwischenwerte für s beobachten , stellen wir fest, dass sie vollständig auf einen anderen Wert konvergieren, bevor sie auf den tatsächlichen Konvergenzpunkt konvergieren. Der Grund dafür ist folgender:

Wenn wir nach einem stabilen s suchen, finden wir Folgendes:

Da dies eine einfache Wurzel ist, können wir die Newtonsche Methode verwenden , um den größten Teil des Weges dorthin zu finden, und dann zu einem viel späteren Zeitpunkt in der Iteration einspringen. Es sind nur etwa 400 Stellen Genauigkeit erforderlich (da die b- und c- Werte ohnehin nicht größer sind), was mit nur 7 Iterationen erreicht werden kann, während 320 Iterationen der Hauptschleife gespeichert werden:
b,c=[16,3,1],[273,40,3]
for i in range(480):b,c=[7*b[0]-b[1]-4]+b,[7*c[0]-c[1]-1]+c
z=10**1000;s=z/17
for i in range(7):s-=(s*s+s*z-z*z/16)/(2*s+z)
for x,y in zip(b,c):s=(z+s)*x/y
print s
Die Ausgabe ist identisch mit der vorherigen, die Laufzeit beträgt auf meinem System mit PyPy v2.1 etwa 0,02 Sekunden. Obwohl es ein Zehntel der Anzahl von Iterationen wie das Original benötigt, ist es aufgrund der Multiplikation und Division durch viel kleinere Begriffe deutlich schneller als das Zehnfache. Ich denke nicht, dass viel mehr daran geändert werden kann, obwohl ich froh wäre, wenn ich falsch dargestellt würde.
φeingebaut ist. (zur Abwechslung nicht APL)