Seite 2 von 2

Verfasst: 15.03.2008 00:25
von STARGÅTE
also, wenn du eine Kurve hast, wo es sich lohnt das ganze logerithmisch aufzutragen, dann gibt es keine 0 (zerfall einer Schaumkrone).
Deine werte werden ja halt nur sehr klein.
Du kannst also deine Werte nicht von 0 bis 1 Skalieren, nur vllt von 1 bis 10 oder 0,01 bis 1 ....

Wenn du die Skala aber gleich so beschriftst das die die werte schon LOG() machst, dann kannst du halt dein 0 bis 1 machen, wobei damit alle werte zwischen 1 und 10 enthalten sind.

Wenn dein Größter Wert zB 236 ist und du willst das er später bei 1 ist, nimmst du halt den LOG236(236)
Wenn du keine 10er oder e-Basis hast errechnest du den LOG mit :
Log(Wert)/Log(Basis)

PS: haben deine Werte eine Einheit, und du nimmst den LOG davon, entfällt die Einheit

Verfasst: 15.03.2008 16:58
von Froggerprogger
So lässt sich die y-Achse mit beliebigen Werten logarithmisch stauchen:

Code: Alles auswählen

Procedure.f LogStauch(y.f)
  If y >= 0
    ProcedureReturn Log10(1 + y)
  Else
    ProcedureReturn -Log10(1 - y)
  EndIf
EndProcedure

Debug LogStauch(0)
Debug LogStauch(1)
Debug LogStauch(-1)
Debug LogStauch(12000)
Debug LogStauch(-12000)
Man nutzt zur Stauchung also nur den Teil >= 1 der Logarithmusfunktion.
Um auf Bereich [-1, 1] zu normieren einfach durch Abs(LogStauch(AbsMaxWert)) dividieren.