Mathematische Funktion gesucht f(x)=? Versuch 2

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.552
Hi,

leider sind im letzten Thread keine Antworten mehr möglich. Ich vermute, es besteht die Angst, dass ich meine Hausaufgaben outsource. Daher traue ich mich hier, erneut einen Thread aufzumachen.

Vielleicht beruhigt es den einen oder anderen, dass ich entsprechend meines Profils schon seit April 2009, also seit 12 Jahren dabei bin und 1400 Beiträge geschrieben habe. Wenn ich mich also nicht schon in der ersten Klasse mit Programieren auseinandergesetzt habe, ist Hausaufgabenoutsourcing unwahrscheinlich.

Zurück meiner Frage. Die cosinus-Funktion gefällt mir hier schon ganz gut, auch wenn ich mir einen eher exponentiellen Verlauf des Anstiegs gewünscht hätte. Ideal wäre eine Funktion, die bis x=0 als -e^x+2 und ab x=0 als e^(-x) weiterverläuft. Die würde ich dann noch durch 2 Teilen und nach rechts verschieben (wegen der Übersichtlichkeit hier noch nicht erfolgt). Kann man diese beiden Funktionen in eine Funktion stecken. Meine Mathekentnisse sind leider etwas eingerostet, da mein Abitur schon 12 Jahre zurückliegt. :)

Screenshot_2021-01-13 Funktionsgraphen zeichnen - Plotter.png


Vielen Dank aber für die vielen gut gemeinten Tips.
 
  • Gefällt mir
Reaktionen: 0-8-15 User, DaHans und nullPtr
Eine andere Variante, auf die ich noch gekommen bin, erfüllt nur leider nicht m=0 bei x=0. Sieht aber ziemlich ähnlich (bis auf die Skalierung) zu deinem neuen Wunsch aus.

1610543684705.png
 
Zuletzt bearbeitet:
@lordg2009 :
Bitte nochmal exakt die Anforderung an den Rändern spezifizieren. Muss die Steigung bei x=0 exakt 0 sein, oder nur "nahe" Null? Deine e-Funktion erfüllt das nicht. Und am rechten Rand? "Darf" der Graph die x-Achse berühren, oder darf er sich "nur" annähern? Wenn der Graph von links nach rechts betrachtet z.B. bei x=3 die x-Achse berührt, genügt es, dass man den Definitionsbereich bei x=3 enden lässt?

Was ist denn der Einsatzbereich konkret?
 
Peek 2021-01-13 14-27.gif
 
  • Gefällt mir
Reaktionen: BAGZZlash, 0-8-15 User und Tenferenzu
Der ArcTan (skalier wie ihn @Bagbag vorschlägt) sollte sehr gut passen. Evtl. innen noch ein x² oder x³, dann nähert der sich noch besser an "0" bzw. "1" an.
 
Hast du dir die Sigmoidfunktion angeschaut? https://de.wikipedia.org/wiki/Sigmoidfunktion

Figure_1.png


Python:
Python:
import math
import random

# importing the required module
import matplotlib.pyplot as plt

def f(y: float):
    return -1 / (1 + math.pow(math.e, -y)) + 1

def plot_f():
    x: [float] = []
    y: [float] = []
    for i in range(-20, 20, 1):
        a = i / 2.0
        b = f(a)
        x.append(a)
        y.append(b)
    plt.plot(x, y)
    plt.xlabel("x")
    plt.ylabel("y")
    plt.title("-1 / (1 + math.pow(math.e, -y)) + 1")
    plt.show()

plot_f()
 
Kurzgesagt:
Jegliche complementary cumulative distribution function mit support im Bereich der positiv reelen Zahlen erfüllt deine Ansprüche sofern für die dazugehörige Dichteverteilung auch f(0) = 0 gilt.

Länger & vereinfacht (teilweise salopp - KEIN Anspruch auf mathematische Korrekheit !) gesagt:

-) Die cumulative distribution function (CDF) jeglicher "standardmäßigen, nicht komplett-schrägen" Wahrscheinlichkeitsverteilung ergibt einen Wert in [0, 1], wobei bei der CDF der "niedrigstmögliche x-Wert" 0 als Funktionswert ergibt, und der "größtmögliche x-Wert" 1

-) die complementary cumulative distribution function (complementary CDF) dreht das einfach um indem sie "bei 1 beginnt und bei 0 aufhört". Sie ist einfach 1 - CDF.

-) der support ist der Bereich wo die Dichtefunktion Werte von nicht-0 annimmt, also "wo sich was tut".
Bsp. für Verteilungen mit support im Bereich der positiv reele Zahlen:
Exponentialverteilung
Gammaverteilung
Log-Normalverteilung
Betaverteilung (support in [0, 1])

-) Die Dichtefunktion (probability density function, PDF) ist die 1. Ableitung der CDF. Um deine Randbedingung bei x = 0 zu erfüllten, suchst du also eine Wahrscheinlichkeitsverteilung wo für die PDF gilt: f(0) = 0.

Da bleiben als Beispiele nun zahlreiche Parameterisierungen der Gammaverteilung, Log-Normalverteilung oder Betaverteilung über, wie z.B.:
Lognormal(0, 1), also eine Lognomalverteilung mit Mu = 0 und Sigma = 1
Beta(2, 2), also eine Betaverteilung mit Alpha = 2 und Beta = 2
Gamma(3, 1), also eine Gammaverteilung mit Shape = 3 und Scale = 1

Die exakte Funktionsform bastelst du dir dann durch a) die Auswahl der entsprechenden Verteilung und b) die exakten Parameterwerten für die Verteilung zusammen
 
  • Gefällt mir
Reaktionen: CyborgBeta
Zurück
Oben