Ankündigung

Einklappen
Keine Ankündigung bisher.

Gleichung Lösen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gleichung Lösen

    Hallo,

    Mir kam heute die vielleicht etwas verrückte Idee mit PHP gleichungen zu lösen.

    Ich stelle mir dabei z.B. eine einfach Break Even vor, z.B.

    10.000 + 6x = 12x

    Leider findet ich keinen Ansatz das in PHP zu berechnen... ist das möglich?

    Wie würdet ihr das lösen?

    MfG. phpCrow

  • #2
    Du musst erst Code schreiben der deine Gleichung parsed und dann einen Algorithmus entwickeln der diese Einzelstücke der Gleichung korrekt zu verarbeiten.
    Wie würdet ihr das lösen?
    Gar nich, dafür bin ich nicht klug genug für sowas gibt es spezialisierte Programme, Sprachen und Bibliotheken.
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      Das parsen der gleichung ist ja dann nicht nötig wenn ich die bereits in PHP schreibe.

      Ein Beispiel wäre eine schleife die solange durchläuft bis 10.000 + (6 * x) = 12 * x

      Dann hätte ich schonmal die Anzahl.

      PHP-Code:
      $fixEigenlager 50;
      $varEigenlager 6;
      $varFremdlager 12;

      for(
      $i=0;;$i++) {


          if((
      $fixEigenlager + ($varEigenlager $i)) < ($varFremdlager $i)) {
              echo 
      'Menge: ' $i '<br/>';
              echo (
      $varFremdlager $i);
              break;
          }


      Aber das ist ja nicht optimal...

      Kommentar


      • #4
        Uhm. Sind "Eigenlager" und "Fremdlager" Begriffe die ich im Matheunterricht irgendwann mal verpennt habe?
        Und ja, klar kannst du das ganze irgendwie bruteforcen... aber... naja.

        Erzähl einfach mal worum es dir eigentlich geht. Du möchtest also nicht eine Gleichung in ein Formular eingeben und die dann von PHP lösen lassen - das ist schon mal gut zu wissen.
        [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
        [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

        Kommentar


        • #5
          Zitat von phpCrow Beitrag anzeigen
          Das parsen der gleichung ist ja dann nicht nötig wenn ich die bereits in PHP schreibe.
          Löse die Gleichung doch einfach per Hand bevor du PHP verwendest. Warum brauchst du hier überhaupt PHP? Dafür würde sich doch eher Mathematica, Matlab oder ähnliches anbieten.

          Kommentar


          • #6
            Oh man... Mathematik 6 Klasse oder so? Gleichung nach x auflösen und die Formel in PHP Syntax überführen. Wenn die Zahlen Unbekannte sind müssen die gegen Variablen getauscht werden. Nach deinem PHP Code ist das die Ausgangsbasis:

            PHP-Code:

            (a, b, c sind hier $fixEigenlager, $fix... usw.) Wie gesagt nach x umstellen und aus a,b,c wieder deine Variablen machen. Fertig...

            Kommentar


            • #7
              Zitat von VPh Beitrag anzeigen
              Uhm. Sind "Eigenlager" und "Fremdlager" Begriffe die ich im Matheunterricht irgendwann mal verpennt habe?
              Und ja, klar kannst du das ganze irgendwie bruteforcen... aber... naja.

              Erzähl einfach mal worum es dir eigentlich geht. Du möchtest also nicht eine Gleichung in ein Formular eingeben und die dann von PHP lösen lassen - das ist schon mal gut zu wissen.
              Naja Eigenlager und Fremdlager weil ich hier einfach versuche die Kosten zu vergleichen. Ganz einfach gerechnet hat ein Eingenlager fixe und variable Kosten während in diesem Beispiel bei dem Fremdlager nur variable Kosten existieren. Daher die Bezeichnung.


              Per Hand kann ich es natürlich. Mir geht es nun einfach darum ob das in PHP möglich ist - was scheinbar nicht geht. Schon bei dem Punkt "Formel nach X Auflösen" wüsste ich keinen Ansatz in PHP.

              Aufgrund der Antworten gehe ich davon aus dass es tatsächlich nicht ohne weiteres in PHP möglich ist. Genau darum ging es mir ja nur - ich hab mir die Frage gestellt ob es geht, etwas probiert und keine adäquate Lösung gefunden. Damit ist das Thema dann ja wohl erledigt.

              Kommentar


              • #8
                Naja Eigenlager und Fremdlager weil ich hier einfach versuche die Kosten zu vergleichen. Ganz einfach gerechnet hat ein Eingenlager fixe und variable Kosten während in diesem Beispiel bei dem Fremdlager nur variable Kosten existieren. Daher die Bezeichnung.
                Das ist jetzt aber keine mathematische Frage mehr, sondern du hast eine einfache Kalkulation die du implementieren musst.

                Per Hand kann ich es natürlich. Mir geht es nun einfach darum ob das in PHP möglich ist - was scheinbar nicht geht. Schon bei dem Punkt "Formel nach X Auflösen" wüsste ich keinen Ansatz in PHP.
                Dann stell sie mal per Hand um.
                Und diese (umgestellte) Formel trägst du dann in deinen Quellcode mit den entsprechenden Variablen ein. Diese Variablen werden zur Laufzeit dann durch die konkreten Werte ersetzt - fertig.
                [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                Kommentar


                • #9
                  PHP-Code:
                  require_once("EquationSolver.php");

                  $equation '10000 + 6x = 12x';
                  $errors =true;

                  $equation = new Solve($equation$errors);

                  $var $equation->solution()[0];
                  $solutions $equation->solution()[1];

                  echo 
                  "Die Gleichung  $equation->equation <br>";
                  echo 
                  "liefert als Ergebnis:<br>";

                  foreach (
                  $solutions as $solution)
                  {
                      if (
                  is_nan($solution))
                      {
                          
                  $solution $solution "Ergebnis ist eine komplexe Zahl";
                      }
                      if (
                  $solution == $solutions[0])
                      {
                          echo 
                  "<b>$var = $solution</b>";
                      }
                      else
                      {
                          echo 
                  "or<br><b>$var = $solution</b>";
                      }

                  Gibt aus
                  Die Gleichung 10.000+6x=12x
                  liefert als Ergebnis:
                  x = +1666.6666666667


                  EquationSolver.php ist eine Klasse und kann hier heruntergeladen werden.

                  Kommentar

                  Lädt...
                  X