| Autor | Beitrag | 
| Spaceguide 
          Beiträge: 552
 
 
 (D3/D7/D8) Prof.
 
 | 
Verfasst: Do 13.01.05 00:56 
 
Probiers doch mal mit einer Potenzreihe.
 Hint: Sowas wie ln(x):=sum((-1)^(k+1)*(x-1)^(k)/k,k=1..infinity);
 | 
|  | 
| st-matze 
          Beiträge: 138
 
 Win 3.11, Win 95, Win 98, Win XP
 D7 Ent, D6 Pers, (D5 Pers)
 
 | 
Verfasst: Do 13.01.05 08:20 
 
Berechnung für den natürlichen Logarithmus
   oder die Näherung
   in beiden fällen gilt: je höher n, desto genauer
more ... st-matze | 
|  | 
| st-matze 
          Beiträge: 138
 
 Win 3.11, Win 95, Win 98, Win XP
 D7 Ent, D6 Pers, (D5 Pers)
 
 | 
Verfasst: Do 13.01.05 08:33 
 
hier noch mal ein Codeschnipsel zu einem Logarithmus berechnungs verfahren:
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 
 | function log(x: Double; n: Integer): Double;var
 p,q: Extended;
 i: Integer;
 begin
 p:=1; q:=x;
 for i:=1 to n do
 begin
 q:=sqrt(q);
 p:=p*2/(q+1/q);
 end;
 log:=p*(x-1/x)/2;
 end;
 |  Hinweis: für n >= 30 ist die abweichung zur eingebauten delphifunktion irrelevant.
more ... st-matze | 
|  | 
| Spaceguide 
          Beiträge: 552
 
 
 (D3/D7/D8) Prof.
 
 | 
Verfasst: Do 13.01.05 10:22 
 
Also eine Wurzelfunktion zum Berechnen des ln zu verwenden ist nicht wirklich zu empfehlen. | 
|  | 
| st-matze 
          Beiträge: 138
 
 Win 3.11, Win 95, Win 98, Win XP
 D7 Ent, D6 Pers, (D5 Pers)
 
 | 
Verfasst: Do 13.01.05 10:33 
 
niemand hat gesagt, dass es effektiv ist, aber es funktioniert     | 
|  | 
| raziel 
          Beiträge: 2453
 
 Arch Linux
 JS (WebStorm), C#, C++/CLI, C++ (VS2013)
 
 | 
Verfasst: Do 13.01.05 12:25 
 
Und wenn man den ganzen thread gelesen hätte, hätte man gesehen, dass der Link bereits von mir gepostet wurde...  _________________JSXGraph | 
|  | 
| st-matze 
          Beiträge: 138
 
 Win 3.11, Win 95, Win 98, Win XP
 D7 Ent, D6 Pers, (D5 Pers)
 
 | 
Verfasst: Do 13.01.05 12:31 
 
@raziel
 nich gleich beleidigt sein.    les mir halt nicht alles exakt durch.
 und einen neuen link hab ich ja auch gebracht   | 
|  | 
| ScorpionKing  
          Beiträge: 1150
 
 Win XP
 
 
 | 
Verfasst: Do 13.01.05 13:07 
 
ja, ich habe es eingesehen, es gibt also keine formel für den logarithmus, genauso wenig wie für wurzeln.
danke an alle!
 _________________Aus dem Urlaub zurück! | 
|  | 
| tommie-lie 
          Beiträge: 4373
 
 Ubuntu 7.10 "Gutsy Gibbon"
 
 
 | 
Verfasst: Do 13.01.05 13:17 
 
	  | ScorpionKing hat folgendes geschrieben: |  	  | ja, ich habe es eingesehen, es gibt also keine formel für den logarithmus | 
 Wieso? Oben hat doch st-matze sogar die Vorschrift einer Reihe als Bild eingefügt  _________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert | 
|  | 
| jasocul 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Do 13.01.05 13:21 
 
Reihen werden in der 8. Klasse aber noch nicht behandelt. Und wenn unser König damit noch nie was zu tun gehabt hat, ist das nicht ganz einfach zu verstehen. Zumal es hier auch eine nicht endliche Reihe ist. | 
|  | 
| tommie-lie 
          Beiträge: 4373
 
 Ubuntu 7.10 "Gutsy Gibbon"
 
 
 | 
Verfasst: Do 13.01.05 13:30 
 
	  | jasocul hat folgendes geschrieben: |  	  | Reihen werden in der 8. Klasse aber noch nicht behandelt. | 
 Sind aber nicht wirklich kompliziert.
 	  | jasocul hat folgendes geschrieben: |  	  | Und wenn unser König damit noch nie was zu tun gehabt hat, ist das nicht ganz einfach zu verstehen. Zumal es hier auch eine nicht endliche Reihe ist. | 
 Nuja, sie geht bis n    Aber selbst wenn er mit der Folge nicht zurechtkommt, in der Näherung kommt nichts vor, was sonderlich schwer ist, und ich glaube Wurzeln gab's schon in der 8.
 Und 'n Codeschnipsel hatter ja auch noch gepostet._________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert | 
|  | 
| IngoD7 
          Beiträge: 629
 
 
 D7
 
 | 
Verfasst: Do 13.01.05 13:34 
 
	  | ScorpionKing hat folgendes geschrieben: |  	  | ja, ich habe es eingesehen, es gibt also keine formel für den logarithmus, genauso wenig wie für wurzeln. 
 | 
 Huch, fast genau mein  Wortlaut.    Wo ich doch schon die ganze Zeit überlege, wie ich mich am besten wegen dieser unpräzisen (wenn nicht sogar falschen) Aussage rausreden kann.      Ausdrücken wollte ich eigentlich, dass das, was es dazu an "Bestimmungsalgorithmen" gibt, niemals das sein kann, was ScorpionKing gesucht hatte (mühsame Näherungen, möglichst unendliche Reihen und dergleichen). Daraus aber gleich die Aussage zu kreieren, dass es keine Formeln gäbe, wie ich es im Wortlaut getan habe, ist im besten Falle als nicht ganz korrekt zu bezeichnen.    Bekenne mich also auch schuldig.        | 
|  | 
| Vertigo Hält's aus hier
 Beiträge: 1
 
 Win XP
 D6 Pers
 
 | 
Verfasst: Sa 12.03.05 12:40 
 
Ja, der Thread ist zwar jetzt etwas älter, aber für die Berechunung eines beliebigen Logarithmus gilt doch:
 logex=ln(x)/ln(e)
 
 ...ist vielleicht die einfachste Möglichkeit (aber sicher nicht die effektivste), um einen Logarithmus in Delphi zu berechnen.
 | 
|  | 
| BenBE 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Sa 12.03.05 15:20 
 
Wenn man den beliebigen Logarithmus in ASM implementiert, kommt man besser mit der Nutzung des Dualen Logarithmus, da die FPU diesen intern zur Berechnung hernimmt.
 		                       OMathGeneral.pas der Omorphia-Bibliothek 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 
 | Function LogN(Var Base, X: Extended): Extended;
 Asm
 FLD1
 FLD     TBYTE PTR [X]
 FYL2X
 FLD1
 FLD     TBYTE PTR [Base]
 FYL2X
 FDIVP
 End;
 |  Für den natürlichen Logarithmus wären zwar keine Zusatzschritte notwendig, jedoch dauert das Abfragen der Konstante FLDLN2 länger als das laden der Zahl 1._________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 | 
|  | 
| zemy 
          Beiträge: 207
 
 Win XP Prof.
 D7
 
 | 
Verfasst: Mi 16.03.05 16:35 
 
	  |  IngoD7 hat folgendes geschrieben: |  	  | Es gibt für "Logarithmus" ebensowenig eine Formel, wie es eine für "Wurzel" gibt. Es ist - wie erklärt man das bloß?? - eine eigenständige mathematische Funktion. Die hat keine Übersetzung in Form einer Formel. Wie gesagt, genau so, wie beim Wurzelziehen. | 
 Die Multiplikation kann man auch über eine Addition darstellen, obwohl es eine eigene Operation ist... Genauso gibt es Formeln für den Logarythmus, auch wenn die Berrechnung umständlich ist und auf Zahlenfolgen basiert. Ist eigentlich nicht Wikipedia die erste Seite der Wahl bei solchen Themen? Da gibts auch die komplette Lösung inkl. Berrechnungsverfahren. (de.wikipedia.org/wiki/Logarithmus ) Trotzdem sollte man das nur mal zum Test proggen, 1 ASM-Befehl im Vetrgleich zu dieser Rechenvorschrift... Nja OK  _________________ LifeIsToShortToThinkAboutTheShortness
 | 
|  | 
| Allesquarks 
          Beiträge: 510
 
 Win XP Prof
 Delphi 7 E
 
 | 
Verfasst: Mo 21.03.05 14:25 
 
Natürlich ist der eine asm Befehl schneller. Die Fpu rechnet aber mit einer 64 Bit Mantisse. Da kommen dann rund 20 gültige Stellen im Dezimalsystem raus. Für die meisten Fälle sollte das genug sein, aber eben nicht immer.
 Randnote: Der Sinus,tangens etc lässt sich auch über Reihen berechnen.
 Probier mal aus den Tangenswert nahe pi zu berechnen einmal mit der math-unit in Delphi und einmal mit dem windows taschenrechner und dann noch einmal über so eine Reihe. Der Fehler liegt dann schon in der 6-7 Dezimalstelle ist also nicht nur ein Rundungsfehler?!  | 
|  | 
| IngoD7 
          Beiträge: 629
 
 
 D7
 
 | 
Verfasst: Mo 21.03.05 15:25 
 
	  |  zemy hat folgendes geschrieben: |  	  | Genauso gibt es Formeln für den Logarythmus, [...]	  |  IngoD7 hat folgendes geschrieben: |  	  | Es gibt für "Logarithmus" ebensowenig eine Formel, wie es eine für "Wurzel" gibt. | 
 | 
 Hättest du den Thread aufmerksam durchgelesen, so hättest du gemerkt, dass wir (so also auch ich) schon lange zu der Erkenntnis gekommen waren. | 
|  | 
| D-Developer Hält's aus hier
 Beiträge: 6
 
 
 
 
 | 
Verfasst: Mo 21.03.05 15:33 
 
	  |  Spaceguide hat folgendes geschrieben: |  	  | Also eine Wurzelfunktion zum Berechnen des ln zu verwenden ist nicht wirklich zu empfehlen. | 
 So weit ich weiß berechnet Delphi Potenzen mit dem ln... | 
|  | 
| zemy 
          Beiträge: 207
 
 Win XP Prof.
 D7
 
 | 
Verfasst: Mo 21.03.05 18:40 
 
_________________ LifeIsToShortToThinkAboutTheShortness
 | 
|  |