J o: Mathematik zum Wochenanfang

Guten Morgen,

jetzt mal eine mathematische Aufgabe von mir.

Gesucht ist eine Funktion f(x,y) = ?.
Für die Wertebereiche der Variablen gilt:

  • 0 < x < 1
  • -∞ < y < ∞
  • 0 < f(x,y) < 1.

Weiterhin soll gelten:

  • für 0 < x <~ 0.9f(x,y) ~ 1
  • für x >~ 0.9 und y < 0f(x,y) ~ 1
  • für x >~ 0.9 und y > 0f(x,y) ~ 0

Benutzt werden dürfen trigonometrischen Funktionen, die e-Funktion, Wurzel-Funktionen, und Logarithmen. Weiterhin sollen sehr hohe Potenzen > 10 sowie Beträge vermieden werden.

Gruß
Jo

  1. Hallo J o,

    ich nehme an, du meinst nicht ~ (steht in Relation zu), sondern ≅ (ungefähr gleich) oder ≈ (beinah gleich).

    Kannst Du ein ε angeben, bei dem Du $$x_1 \approx x_2 \Longleftrightarrow \vert x_1-x_2 \vert <\epsilon $$ sehen würdest?

    Die Funktion ist im größten Teil des Definitionsbereichs bei 1, und in dem "Eck", das durch y>0 und x⪆0.9 beschrieben ist, bei 0.

    Welche "Flankensteilheit" erwartest Du an den Übergängen?

    Ist es mathematisches Rätsel oder eine technische Anforderung? Weil - wenn es um eine Programmierlösung geht, würde ich jederzeit ein IF einer wilden Formel vorziehen. Es sei denn, du brauchst aus irgendwelchen Gründen ein stetiges und differenzierbares Verhalten.

    Rolf

    --
    sumpsi - posui - clusi
    1. Hey,

      ich nehme an, du meinst nicht ~ (steht in Relation zu), sondern ≅ (ungefähr gleich) oder ≈ (beinah gleich).

      Richtig. Wenn du magst könntest du das einmal editieren.

      Kannst Du ein ε angeben, bei dem Du $$x_1 \approx x_2 \Longleftrightarrow \vert x_1-x_2 \vert <\epsilon $$ sehen würdest?

      Ähm 42?

      Versteh gerade nicht worauf du hinaus möchtest.

      Die Funktion ist im größten Teil des Definitionsbereichs bei 1, und in dem "Eck", das durch y>0 und x⪆0.9 beschrieben ist, bei 0.

      Genau.

      Welche "Flankensteilheit" erwartest Du an den Übergängen?

      Eine direkte Erwartung oder Anforderung hatte bzw habe ich an die Ableitung garnicht.

      Ist es mathematisches Rätsel oder eine technische Anforderung? Weil - wenn es um eine Programmierlösung geht, würde ich jederzeit ein IF einer wilden Formel vorziehen. Es sei denn, du brauchst aus irgendwelchen Gründen ein stetiges und differenzierbares Verhalten.

      Reine mathematische Anforderung. Die Programmierlösung funktioniert leider nicht mit if{}else{} da es bei mir eine Randbedingung eines Differenzialgleichungssystems ist, welches mit der Runge-Kutta-Fehlberg-Methode gelöst wird und so instabil würde.

      Gruß
      Jo

      1. Hallo Jo,

        wären diese Funktionswerte akzeptabel? Ich brauche dafür zwei Arcustangens.

        Ich kann den "Kipppunkt", an dem die 0,5 liegt, und auch die Steilheit nach Wunsch justieren 😀

        Idee: f(x) = arctan(x) hat einen Definitionsbereich von -∞ bis ∞, und einen Wertebereich von $$-\frac{\pi}{2}$$ bis $$-\frac{\pi}{2}$$. Die Funktion $$g_{kt}(x) = \frac{1}{2}-\frac{f(k(x-t))}{\pi}$$ hat demnach bei -∞ den Wert 1, bei ∞ den Wert 0 und - wenn t=0 - bei 0 den Wert 0,5. Je größer man k wählt, desto steiler ist der Übergang von 1 zu 0. Der Wert von t spezifiziert den Umschaltpunkt, d.h. für t=0,9 springt die Funktion bei 0,9 von 1 nach 0.

        Verwendest Du nun zwei dieser Funktionen, $$h_1(x) = g_{k\ 0{,}9}(x)$$ und $$h_2(y) = g_{k\ 0{,}9}(y)$$, dann hat $$h(x,y) := h_1(x)\cdot h_2(y)$$ das gewünschte Verhalten.

        Rolf

        --
        sumpsi - posui - clusi
        1. Hey,

          wären diese Funktionswerte akzeptabel? Ich brauche dafür zwei Arcustangens.

          Ich kann den "Kipppunkt", an dem die 0,5 liegt, und auch die Steilheit nach Wunsch justieren 😀

          Sieht sehr elegant aus.

          Schick mir mal die Funktion, Vielleicht ist sie mit 2 verknüpften Arcustangens Funktionen gar nicht so unähnlich von meiner Lösung.

          Gruß
          Jo

          1. Hallo Jo,

            ...steht doch da; eventuell hast Du meinen Edit übersehen.

            f ist der Arcustangens. Habe mich nur bei $$h_2$$ verschrieben, da muss t natürlich 0 sein.

            In meiner Exceltabelle, wo ich probiert habe, steht

            (0,5-ARCTAN(1000*(X-0,9))/PI())*(0,5-ARCTAN(1000*Y)/PI())

            t=1000 führt zu einem ziemlich steilen Übergang. Für deine Anforderungen musst Du $$x_0=0{,}9$$ setzen.

            $$\begin{align}f(x,y) &= \biggl(0{,}5-\frac{\arctan{k(x-x_0)}}{\pi}\biggr)\biggl(0{,}5-\frac{\arctan{ky}}{\pi}\biggr)
            &=\biggl(\frac{\pi/2-\arctan{k(x-x_0}}{\pi}\biggr)\biggl(\frac{\pi/2 - \arctan{ky}}{\pi}\biggr)
            &=\biggl(\frac{\operatorname{arccot}{k(x-x_0)}}{\pi}\biggr)\biggl(\frac{\operatorname{arccot}{ky}}{\pi}\biggr) \end{align}$$

            Argh - \arccot{1000y} geht nicht, man muss es mit \operatorname{arccot} escapen

            Rolf

            --
            sumpsi - posui - clusi
            1. Hey,

              ...steht doch da; eventuell hast Du meinen Edit übersehen.

              Das habe ich wirklich noch nicht gesehen, oder du warst gerade noch am editieren als ich schon geantwortet habe.

              f ist der Arcustangens. Habe mich nur bei $$h_2$$ verschrieben, da muss t natürlich 0 sein.

              In meiner Exceltabelle, wo ich probiert habe, steht

              (0,5-ARCTAN(1000*(X-0,9))/PI())*(0,5-ARCTAN(1000*Y)/PI())

              t=1000 führt zu einem ziemlich steilen Übergang. Für deine Anforderungen musst Du $$x_0=0{,}9$$ setzen.

              $$\begin{align}f(x,y) &= \biggl(0{,}5-\frac{\arctan{k(x-x_0)}}{\pi}\biggr)\biggl(0{,}5-\frac{\arctan{ky}}{\pi}\biggr)
              &=\biggl(\frac{\pi/2-\arctan{k(x-x_0}}{\pi}\biggr)\biggl(\frac{\pi/2 - \arctan{ky}}{\pi}\biggr)
              &=\biggl(\frac{\operatorname{arccot}{k(x-x_0)}}{\pi}\biggr)\biggl(\frac{\operatorname{arccot}{ky}}{\pi}\biggr) \end{align}$$

              Schöne Funktion :)
              Ich habe eine andere, bin gespannt auf welche Lösungen andere kommen.

              Gruß
              Jo

  2. Guten Morgen,

    Schade das die Beteiligung sehr gering ist. Ich habe meine Lösung auch mal in einer Exceltabelle aufgetragen:

    Ergebnisse der gesuchten Funktion

    Erst dabei ist mir aufgefallen das Rolf Bs Lösung nicht die Bedingungen erfüllt.

    • $$ 0 < x <~ 0.9 $$ und $$ \forall y → f(x,y) ≅ 1 $$
    • $$ x >~ 0.9 $$ und $$ y < 0 → f(x,y) ≅ 1 $$
    • $$ x >~ 0.9 $$ und $$ y > 0 → f(x,y) ≅ 0 $$

    Ich muss zwar noch ein wenig an meinen Parametern arbeiten aber so sollte das Ergebnis aussehen. Bin also gespannt ob noch jemand den Versuch wagt.

    Gruß
    Jo

    1. Hallo J,

      autsch. Ich habe ein UND statt ein ODER gebaut und es gar nicht bemerkt.

      Aber wozu hat man mal Schaltalgebra gelernt: $$A \lor B = \overline{\overline{A} \land \overline{B}}$$

      Da false=0 und true=1, geht invertieren der AND-Parameter durch $$\overline{A} = 1-A$$

      $$ 1 - \Bigl(0{,}5-\frac{\arctan{k(x-x_0)}}{\pi}\Bigr) = 0{,}5+\frac{\arctan{k(x-x_0)}}{\pi} $$

      Für die Ausgabe macht man das auch. Bei y sehe ich noch ein y0 vor, für die Feinjustierung des Umschaltpunktes:

      $$f(x,y) = 1-\biggl(0{,}5+\frac{\arctan{k(x-x_0)}}{\pi}\biggr)\biggl(0{,}5+\frac{\arctan{k(y-y_0)}}{\pi}\biggr)$$

      Mit $$k=10^6, x_0=0{,}9001, y_0=-0{,}00005$$ bekomme ich auch ordentliche Trennschärfe hin. Die bösen 0,5 Werte sind immer noch da, aber nicht für die dargestellten Werte 😂:

      Rolf

      --
      sumpsi - posui - clusi
      1. Hey,

        $$f(x,y) = 1-\biggl(0{,}5+\frac{\arctan{k(x-x_0)}}{\pi}\biggr)\biggl(0{,}5+\frac{\arctan{k(y-y_0)}}{\pi}\biggr)$$

        Mit $$k=10^6, x_0=0{,}9001, y_0=-0{,}00005$$ bekomme ich auch ordentliche Trennschärfe hin. Die bösen 0,5 Werte sind immer noch da, aber nicht für die dargestellten Werte 😂:

        War mir klar das du die Inverte auch hinkriegst. Ist mir dann auch sofort aufgefallen als ich meine Werte gesehen habe, dass man deine nur invertieren muss.

        Ja die Trennschärfe ist mir immer noch ein Dorn im Auge ohne ausreichende Schärfe ist es logisch falsch aber mit läuft die Runge-Kutta Methode Amok. Da werden dann Schrittweiten von $$10^{-12}$$ auf einem Intervall von $$10^7$$ bis $$10^9$$ berechnet.

        Meine benutzt übrigens 2 mal den Tangens Hyperbolicus.

        Gruß
        Jo

        1. Hallo J,

          tanh

          Gute Idee, den hatte ich nicht im Auge (tut auch weh).

          In der Wikipedia steht $$ \displaystyle \tanh x = 1-\frac{2}{\mathrm{e}^{2x}+1}$$

          Und da hohe Trennschärfe für dein Verfahren eh schädlich ist... 😀

          Von DGL mit Runge Kutta habe ich keine Ahnung mehr - gegen Wissen über DGL war und bin ich imprägniert[1]. Deshalb kann ich nicht beurteilen, ob Du möglicherweise RK ungeschickt anwendest und bei besserer Implementierung doch mit if/else und hartem Übergang arbeiten könntest.

          Rolf

          --
          sumpsi - posui - clusi

          1. Es tropft rückstandslos von mir ab ↩︎