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
Logarithmus-Problem...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
So lässt sich die y-Achse mit beliebigen Werten logarithmisch stauchen:
Man nutzt zur Stauchung also nur den Teil >= 1 der Logarithmusfunktion.
Um auf Bereich [-1, 1] zu normieren einfach durch Abs(LogStauch(AbsMaxWert)) dividieren.
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)
Um auf Bereich [-1, 1] zu normieren einfach durch Abs(LogStauch(AbsMaxWert)) dividieren.
!UD2