Funktion, die alle Zahlen zwischen 1 und -1 "quetscht"?

10 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Da kommt mir zuerst die Sigmoid-Funktion in den Sinn:



Bild zum Beitrag

(s. https://upload.wikimedia.org/wikipedia/commons/5/53/Sigmoid-function-2.svg)

Sie hat zwar Asymptoten bei y = 0 und y = 1, aber das kann man durch geschickte Streckung und Verschiebung nach Belieben verändern. Um 2 gestreckt und 1 nach unten verschoben, verläuft sie zwischen -1 und 1.

Es wirkt so, als wäre es dir egal, wie die Funktion genau verläuft, solange der Wertebereich zwischen -1 und 1 liegt. Dann wären natürlich noch andere Funktionen möglich:

Bild zum Beitrag

(s. https://upload.wikimedia.org/wikipedia/commons/6/6f/Gjl-t%28x%29.svg)

Ansonsten sind natürlich auch trigonometrische Funktionen wie der Sinus oder der Kosinus möglich - sie alternieren zwar, aber verlaufen trotzdem nur zwischen -1 und 1 (sogar in dem Falle inklusive -1 und 1).

Es kommt darauf an, wofür du die Funktion brauchst und was sie tun soll. Möglichkeiten gibt es wie Sand am Meer.

LG

 - (Mathematik, Informatik, Funktion)  - (Mathematik, Informatik, Funktion)

Du könntest erstmal von den Zahlen das Minimum abziehen. Dann startet die kleinste Zahl schon einmal bei 0.

Dann teilst du diese Zahlen durch das sich neu ergebene Maximum. Dadurch wird das Maximum zu 1 und alle anderen Zahlen liegen zwischen 0 und 1.

Du benötigst aber eine Spannweite von 2. Das bedeutet, du multiplizierst alle Zahlen mit 2. Jetzt fehlt nur noch ein additiver -1-Shift, um die Zahlen im Bereich [-1;1] zu haben.

Woher ich das weiß:Studium / Ausbildung – Mathematik

berndao2  08.07.2019, 16:08

sehr schöne Erklärung! Leider funktioniert das Ganze nur wenn eine obere und eine untere Grenze vorhanden sind (also sowas wie N oder R lassen sich nicht in den Bereich trimmen. Leider)

1
Suboptimierer  08.07.2019, 16:11
@berndao2

Ja, das stimmt. Die Grenzen können beliebig hoch sein, müssen aber endlich sein. 

Außerdem müssen die Grenzen bekannt sein, oder die Abbildung ändert sich mit jedem Messwert, den man der Funktion hinzu fügt.

"alle Zahlen", darunter verstehe ich alle aus einer Messreihe vorliegenden Zahlen. Ich halte die Frage für ein Skalierungsproblem.
Deswegen habe ich auch sin und cos ausgeschlossen, weil da die Eindeutigkeit flöten geht.

0
berndao2  08.07.2019, 16:14
@Suboptimierer

so muss man es zumindest verstehen damit es lösbar ist.
Ansonsten würd eman unter "Alle" eben alle annehmen, d.h. alle x aus R.
aber es geht wohl wirklich drum dass [a,b] auf [-1,1] abgebildet werden soll.

0

Einfach gesagt: Gibts nicht. Kann es auch gar nicht geben.

Etwas umfangreicher gesagt:

Kann es nur für begrenzte Zahlenbereiche geben.

Beispiel: Alle Zahlen im Bereich zwischen -99999 und 99999 sollen in den Bereich -1 bis 1 "gequetscht" werden. In dem Fall gilt für -99999 ≤ x ≤ 99999: x ÷ 99999

Ohne eine Begrenzung dieser Art hättest du das Problem, dass du durch "Unendlich" teilen müsstest, was aber zur Folge hätte, dass das Ergebnis unabhängig von x immer "Undefiniert" wäre.


paulderpupser 
Fragesteller
 08.07.2019, 15:43

Ja, natürlich, aber es reicht mir auch, wenn es mit den meisten Zahlen funktioniert...

0
Isendrak  08.07.2019, 15:50
@paulderpupser

Es funktioniert nicht nur mit den meisten, sondern mit "allen" Zahlen. Aber auch nur solange ein Bereich festgelegt ist, dessen Ober- und Untergrenze Zahlen sind.

Wenn die Ober- und/oder Untergrenze keine Zahlen sind, was z.B. bei "Unendlich der Fall wäre, dann gehts natürlich nicht.

0
sebastianla  08.07.2019, 16:04
@Isendrak

Kommt darauf an, welche Anforderungen noch an die Funktion gestellt werden. Wenn keine Monotonie gefordert wird, funktioniert es auch im Intervall -unendlich bis +unendlich. Beispiel: Sinus.

Auch wenn Monotonie gefordert wird, geht es: f(x) = 2(1+e^(-x)) - 1 zum Beispiel.

1
berndao2  08.07.2019, 16:09
@sebastianla

Naja, aber man will doch schon eine gewisse gleichmässige Verteilung.
Sieht einfach shcöner aus :-)
Ansonsten eht mit modulo Operationen ziemlich Alles :-D

1
rumar  08.07.2019, 16:13

Der Ausweg besteht darin, dass man sich von der Idee löst, dass die "Quetschung" linear (also eine einfache Proportionalität) sein soll.

1
Willibergi  08.07.2019, 17:46
Kann es nur für begrenzte Zahlenbereiche geben.

Wie meinst du das? Funktionen mit waagrechten Asymptoten bei -1 und 1 gibt es zu Hauf - und das funktioniert für alle reellen Zahlen.

1

Wenn du es ganz billig haben willst, nimm einfach

f(x) = Cos(x) oder Sin(x).

Da bekommst du für jeden Wert eine Zahl zwischen 1 und -1 raus. Wenn ich die Frage richtig verstanden habe passt das doch perfekt, oder?

Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓

paulderpupser 
Fragesteller
 08.07.2019, 16:09

https://imgur.com/a/hRan08Y

Der blaue Graph ensteht bei f(x) = 2/π * arctan(x)/10

Der orangene bei f(x) = sin(x)

Mich stört diese "Delle" ungefähr bei x = 1.5

Mir ist klar, warum und dass ich die Frage schlecht formuliert habe, aber jetzt habe ich ja eh eine Lösung...

0
MrAmazing2  08.07.2019, 16:50
@paulderpupser

Keine Ahnung was du da eingetippt hast, aber der Orange Graph ist ganz sicher nicht sin(x). Der Sinus ist nämlich Gleichmäßig - Ohne solche Dellen.

0