You are not logged in.

  • Login
  • "AtroX_Worf" started this thread

Posts: 11,465

Location: Hamburg

Occupation: GER

  • Send private message

1

Tuesday, March 27th 2007, 8:28am

Kopfrechnen

Gestern hatten zwei Kollegen über alte Computer gesprochen und mir viel dabei Moores Law ein, daß sich die Computer etwa alle 18 Monate verdoppelt (das es nach Wikipedia im Original 24 Monate waren wusste ich zu dem Zeitpunkt noch nicht).

Der Computer war 8 Jahre alt, also müsste ein heutiger 2^(8*2/3) mal so schnell sein - meinte ich einfach so. Weil mich meine Kollegen dann etwas komisch angeschauten hatten, musste ich es vorrechnen.

Ich habe also gesagt x = 2^(16/3) <=> ln x = 16/3 * ln 2 ist ungefähr 16/3 * 0,7 (hatte keine Lust mit 0,693 wieterzurechnen ^^), also 16/3 * 7/10 = 112/30, was 3 ganze und 22/30 = 11/15 entspricht. 10/15 wären 2/3 = 0,667, also 1/15 = 0,067 und 11/15 demnach mit abgeschnittenen Stellen 0,734.
Jetzt musste ich nur wieder zurücktransformieren, also exp(3,734) ausrechnen.

Die Reihenentwicklung der Exponentialfunktion hilft mir da nicht wirklich weiter. Also wie jetzt am besten ausrechnen?

Wenn man auf 4 runden würde, dann würde man auf exp(4) kommen, = exp(2)^2. exp(2) ist rund 2,7^2 (wir können ja ruhig großzügig abrunden, um das vorherige aufrunden bei der Exponentialfunktion wenigstens halbwegs in den Griff zu bekommen). Also dies ist 2,5² + 1 + 0,04 = 7,29. 7,3^2 wäre 7,5^2 - 3 + 0,04 = 53,29.

Nur durch die Exponentialfunktion und das Runden von 3,734 auf 4 ist dies sicherlich viel zu groß.

Also die Frage: Wie kann man im Kopf halbwegs genau ne Exponentialfunktion abschätzen? Zu Logarithmen gibt es meineswissens auch keine wirklich guten vernüfitgen Regeln, aber ln 2 war einfach und weil ich vom Finance her oft mit exp und ln rechne, kann ich es schon halbwegs abschätzen.

btw, in dem Gespräch hatte ich exp(3,734) einfach mit 40 geschätzt - und hatte damit riesenhaftes Glück, daß es so nah an der waren Lösung lag. ^^ Aber wie gesagt, zumindest ich weiß ja, daß es mehr Glück und etwas Gefühl als ausrechnen waren, bis dahin wars einfach und man konnte es einfach hinerteinander runtersagen.

Posts: 8,654

Location: Köln

Occupation: GER

  • Send private message

2

Tuesday, March 27th 2007, 8:47am

Die Reihenentwicklung der Exponentialfktion ist schon ziemlich genau, es ist ja genau die Taylorentwicklung um 0 und es gilt die übliche Fehlerabschätzun. Andererseits hättest du zB auch um 4 dann noch taylorn können, das sollte dann auch schnell gehen.

3

Tuesday, March 27th 2007, 9:26am

Quoted

Der Computer war 8 Jahre alt, also müsste ein heutiger 2^(8*2/3) mal so schnell sein - meinte ich einfach so. Weil mich meine Kollegen dann etwas komisch angeschauten hatten, musste ich es vorrechnen.


Deine Kollegen haben doch bestimmt schonmal was von Zinsrechnung gehört oder? Da wär es doch einfacher das (8*2/3) durch 8*12Monate/18Monate zu erklären und dann sollten die das verstanden haben o0 Da ne Taylorreihenentwicklung ranzuziehn is wohl n bissl übertrieben.

  • "AtroX_Worf" started this thread

Posts: 11,465

Location: Hamburg

Occupation: GER

  • Send private message

4

Tuesday, March 27th 2007, 10:11am

@pitt: Es geht ja nicht um das kkonkrete Beispiel, sondern allgemeiner um das Kopfrechnen. Zudem geht es nicht ums verstehen, die sind schon alle durchweg intelligent hier. Es ging eher um ne schnelle Abschätzung der Größenordnung, welche möglichst genau ist.

@Napo: Hm, Talorreihenentwicklung rockt nicht so wirklich, da habe ich ja durch die ganzen Ableitungen nen haufen Exponentialfunktionen, welche ich addieren darf --> ist zwar immer die gleiche, aber die muss ich halt erstmal ausrechnen.
Um Null zu entwicklen, also quasi über die normale Reihenentwicklung zu gehen ist aber wirklich nicht so schlecht, wie von mir gedacht. Da bekomme ich erstmal mit exp(0) = 1 die Ableitungen raus, dann gehts ganz gut, weil 4 ja 2^2 ist und Potenzen von 4 sich schön als 2^(2*x) darstellen lassen.

1 + (2^2)/1 + (2^4)/2 + (2^6)/6 + (2^8)/24 + (2^10)/120
= 1 + 4 + 8 + 64/6 + 64/6 + ~102/12
= 13 + 128/6 + 51/6
= 13 + 179/6
= 13 + 29,833 (30 - 1/6, Glück das so einfach ^^)
= 42,833

Aber für größere Werte, vor allem welche, welche keine Zweierpotenzen sind, ist diese Methode wohl nicht wirklich praktikabel im Kopf. Zudem finde ich es doof sich so viele Summanden merken zu müssen. Schriftlich geht es ja, aber im Kopf addiert man dann immer drauf, und da vereinfacht es sich sicher nicht so schön. -_-

plexiq

Professional

Posts: 1,512

Location: Wien

  • Send private message

5

Tuesday, March 27th 2007, 11:15am

Wenn ich dich richtig versteh willst du nur 2^5.33 im Kopf schätzen?

kA, ich mach das in etwa so:

2^5.33 = 2^5 * 2^(1/3) = 32 * 2^(1/3)

Müssen wir nur mehr schätzen wie groß die dritte Wurzel aus 2 is. Eine obere Grenze dürftest mit 2^1/2 = 1.41 schon im Kopf haben. 1.2^3 (=6^3/5^3=218/125) is noch zu wenig, also nochmal bisserl mehr...1.25^3 das kommt dann schon gut hin. (= 5^3/4^3 = 125/64 = ~1.9)

Also 32*5/4 = ~40

(Wenns schnell gehn muss hätt ich vermutlich einfach nur 32 * "bisserl weniger als 2^1/2" gerechnet, also vielleicht 32*1.3 oder so.)

PS: Is natürlich Glück dass der Exponent in dem Fall so "schön" ist mit 1/3, ansonsten wirds deutlich ungenauer nach der Methode.

This post has been edited 1 times, last edit by "plexiq" (Mar 27th 2007, 11:20am)


6

Tuesday, March 27th 2007, 11:20am

RE: Kopfrechnen

Quoted

Original von AtroX_Worf
Gestern hatten zwei Kollegen über alte Computer gesprochen und mir viel dabei Moores Law ein, daß sich die Computer etwa alle 18 Monate verdoppelt (das es nach Wikipedia im Original 24 Monate waren wusste ich zu dem Zeitpunkt noch nicht).

Der Computer war 8 Jahre alt, also müsste ein heutiger 2^(8*2/3) mal so schnell sein - meinte ich einfach so. Weil mich meine Kollegen dann etwas komisch angeschauten hatten, musste ich es vorrechnen.


Mal bisschen spitzfindig sein:
1. Computer verdoppeln sich nicht.
2. Sie werden auch nicht alle 18 Monate doppelt so schnell. Sie werden nur doppelt so komplex/dicht.

http://de.wikipedia.org/wiki/Mooresches_Gesetz

7

Tuesday, March 27th 2007, 11:35am

Quoted

Original von plexiq
Wenn ich dich richtig versteh willst du nur 2^5.33 im Kopf schätzen?

kA, ich mach das in etwa so:

2^5.33 = 2^5 * 2^(1/3) = 32 * 2^(1/3)

Müssen wir nur mehr schätzen wie groß die dritte Wurzel aus 2 is. Eine obere Grenze dürftest mit 2^1/2 = 1.41 schon im Kopf haben. 1.2^3 (=6^3/5^3=218/125) is noch zu wenig, also nochmal bisserl mehr...1.25^3 das kommt dann schon gut hin. (= 5^3/4^3 = 125/64 = ~1.9)

Also 32*5/4 = ~40

(Wenns schnell gehn muss hätt ich vermutlich einfach nur 32 * "bisserl weniger als 2^1/2" gerechnet, also vielleicht 32*1.3 oder so.)

PS: Is natürlich Glück dass der Exponent in dem Fall so "schön" ist mit 1/3, ansonsten wirds deutlich ungenauer nach der Methode.


Das ist der Physikalische Ansatz ;) . Das andere kommt von Mathematikern... Obwohl Napo ja auch Physiker ist, oder?

This post has been edited 1 times, last edit by "Klaus1337" (Mar 27th 2007, 11:35am)


Posts: 12,493

Location: Basel

Occupation: CH

  • Send private message

8

Tuesday, March 27th 2007, 11:36am

ich hätte das etwa gleich wie plexiq ausgerechnet. 2^5 ist klar und 2^1/3 kann man ja ungefähr abschätzen, irgendwas zwischen 1.3 und 1.4 halt, das reicht um eine ziemlich genaue schätzung zu erhalten.

ansonsten könnte man ja auch 2^6 noch zu betrachte ziehen und dann etwa dazwischen abschätzen, dass es zwischen 32 und 64 liegen muss. auf +/- 10% solltest du dabei schon hinkommen

9

Tuesday, March 27th 2007, 12:01pm

zur Frage von Worf wie exp abschätzen gibt's noch 'ne ganz nette Methode:

mit ln 2 ~ 0.7, ln 3 ~ 1.1 und ln 5 ~ 1.6 bastelt man sich eine erste Näherung an den gewünschten Exponenten:

für 3.734 also zB
3*0.7+1.6=3.7 macht 40
0.7+2*1.6=3.9 macht 50

und den Rest über lineare Approx, ist da für exp ganz OK:

(3.734-3.7) / (3.9 - 3.7) * (50 - 40) + 40 = 0.17 * 10 + 40 = 41.7

This post has been edited 1 times, last edit by "[AA]Hawk" (Mar 27th 2007, 12:02pm)


  • "AtroX_Worf" started this thread

Posts: 11,465

Location: Hamburg

Occupation: GER

  • Send private message

10

Tuesday, March 27th 2007, 12:31pm

Hawk hat bis jetzt die mit Abstand beste Methode. Muss ich dann mal, wenn ich bissel Zeit habe, bissel austesten.
Bei Plexiq klappt es so gut, weil die Basis 2 ist. Mein Problem war ja nur der Aufhänger, die Frage zielt wirklich nach eleganten und möglichst auch allgemeingültigen methoden, um Exponentialfunktionen abzuschätzen (oder ln's)!
Ansonsten ja, man hätte auch direkter schätzen können, aber wie schon gesagt: wenn die Zahlen nicht gut sind (Basis!), dann kommt man da in arge Probleme, 2,7^2,3 oder sowas.

plexiq

Professional

Posts: 1,512

Location: Wien

  • Send private message

11

Tuesday, March 27th 2007, 12:44pm

Ich würd mal sagen auch 2.7^2.3 is net sooo arg daneben ;)

Der ganzzahlige Teil des exponenten is sowieso kein Problem, und den Rest kann man sich mit Quadratwurzel+linearer Approx gut zusammenschätzen.

2.7^2 = 7.29
2.7^0.3=?

2.7^0.5 = ~ 1.65 (lässt sich mit 1.6^2 und 1.7^2 leicht abschätzen)
1*0.4 + 1.65 * 0.6 = 1.39 (lin approx 2.7^0 & 2.7^0.5)

7.29*1.39 = 10.1 (korrekt: 9.8)

(Man kann sicher "böse" Fälle konstruiern in denen der Fehler viel größer is, aber imo funktioniert das im Regelfall recht gut. Wobei ich mir noch nie genauer Gedanken drüber gemacht hab o_O)

This post has been edited 2 times, last edit by "plexiq" (Mar 27th 2007, 12:53pm)


  • "AtroX_Worf" started this thread

Posts: 11,465

Location: Hamburg

Occupation: GER

  • Send private message

12

Tuesday, March 27th 2007, 2:41pm

Ich habe bewußt 2,7^2,3 gewählt. ^^ 2,7 ist doch recht nah bei e. :P