[linux-l] [OT] Gewichtete Wahrscheinlichkeit, Random

Volker Grabsch vog at notjusthosting.com
Mo Feb 19 10:24:31 CET 2007


On Sun, Feb 18, 2007 at 05:51:33PM +0100, Steffen Dettmer wrote:
> * Volker Grabsch wrote on Sun, Feb 18, 2007 at 17:05 +0100:
>
> > R /|\ 1           ***
> >    |            **   
> >    |           *   
> >    | 0,5       *  
> >    |           * 
> >    |         **   
> >    |  0   ***        
> >    |      0   0,5   1
> >     ---------------------> z
> > 
> > z = irgendein Zufallswert, R(z) = Regenstärke
> 
> Boah geiles Diagram! Händisch gemacht oder war das ein Tool?

Per Hand gemalt. Und *vor* der Formel gemalt ... du weißt schon,
erst Testfälle, dann Code. Erst Kurve skizzieren, dann Formel suchen.
:-)

>     1 ++------------+-------------+-------------+-------------+----**********
>       +             +      0.5 + 0.5 * atan(a*(z-0.5)) / atan(a*0.5) ****** +
>       |                                              *****                  |
>       |                                           ***                       |
>   0.8 ++                                        **                         ++
>       |                                       **                            |
>       |                                      **                             |
>       |                                     *                               |
>   0.6 ++                                   *                               ++
>       |                                   *                                 |
>       |                                  *                                  |
>       |                                 *                                   |
>   0.4 ++                               *                                   ++
>       |                               *                                     |
>       |                             **                                      |
>       |                            **                                       |
>   0.2 ++                         **                                        ++
>       |                       ***                                           |
>       |                  *****                                              |
>       +         *********         +             +             +             +
>     0 **********----+-------------+-------------+-------------+------------++
>       0            0.2           0.4           0.6           0.8            1
> 
> hingekriegt. Sieht ja nicht sooo schick aus (z.B. keine Pfeile).

Kannst ja einen Patch schreiben. Davon abgesehen: Bei mir öffnet gnuplot
im X ein Fenster mit Grafik-Ausgabe. Mit der hab ich gearbeitet. Wusste
gar nicht, dass gnuplot auch ASCII-Plotting unterstützt.

> > Die obige Funktion sieht aus wie eine Arcustangens-Funktion, man muss
> > sie nur ein wenig zurecht schieben und normieren. Mein Vorschlag:
> > 
> >     R(z) = 0.5 + 0.5 * atan(a*(z-0.5)) / atan(a*0.5)
> > 
> > wobei a ein Parameter ist, mit dem du die Steilheit steuern kannst.
> > Für a=1 sieht's fast wie eine diagonale Linie aus. Bei a=100 hast du
> > in der Mitte fast einen senkrechten Anstieg.
> 
> Ja, das klingt plausibler nach "Wetter" finde ich... Die 0.5 für die
> beiden Verschiebungen, insbesondere für die parallel zur z Achse, könnte
> man noch parametrieren oder ein "z-b" machen.

Dachte ich auch zuerst, aber dann kommst du in Teufels Küche mit der
Normierung (sie soll ja bei (0,0) beginnen und bei (1,1) aufhören).
Würde die Formel ca. aufs Doppelte aufblähen. Kann ich aber gern
zusammenbasteln, wenn Interesse besteht.

> Oder es sogar hinkriegen,
> den "Wendepunkt" zu verschieben, ohne 100% als Möglichkeit zu verlieren,
> was mein Vorstellungsvermögen gerade übersteigt :)

Genau das meine ich mit Normierung. Ein alternativer Weg wäre
übrigens, das Ding in 2 Funktionen aufzuspalten. Eine, die ne
monoton wachsene Funktion liefern muss, mit dem Wendepunkt an
der korrekten Stelle. Eine andere, die das Zeug normiert. Kann
ich auch gern mal basteln, ist nicht schwer, aber nur wenn's Olaf
wirklich gebrauchen kann.

> > Dort gibst du ein:
> > 
> >     plot [z=0:1] 0.5 + 0.5 * atan(a*(x-0.5)) / atan(a*0.5), a=10
> 
>     plot [z=0:1] 0.5 + 0.5 * atan(a*(z-0.5)) / atan(a*0.5), a=10
>                                   ---^
> :)

Was ist an dem "z" so lustig? Die Formel funktioniert jedenfalls,
hab extra z und nicht x genommen, damit's mit den obigen Begriffen
im Einklang steht.

> > wobei du den hinteren Wert "a=10" mal gegen "a=1" oder "a=100" ersetzen
> > kannst. Dann die Ausgabe beobachten.
> > 
> > Ist es etwa das, was du suchst? Sorry, was einfacheres als dieser
> > verzerrte Arcustangens ist mir nicht eingefallen.
> 
> coole Funktion - aber ist das Regen? :)

Keine Ahnung. Aber mit ordentlichem a und eventuell anderer Verschiebung
ist die Funktion zumindest "gut genug".


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l