[VB.NET] MathExpressionLib

    • Beta
    • Open Source

    Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von faxe1008.

      [VB.NET] MathExpressionLib

      Beschreibung:

      MathExpressionLib ist eine dynamische Bibliothek, die den Umgang mit mathematischen Funktionen erleichtern soll. Sie enthält eine Klasse Function, mit der unterschiedliche Eigenschaften einer Funktion berechnet werden können, und eine Klasse BrokenRationalFunction, die dieselben Grundfunktionen beinhaltet, allerdings bietet sie zusätzlich die Möglichkeit die senkrechte Asymptote der Funktion zu berechnen. Die Berechnungen, die in beiden Klassen durchgeführt werden, basieren auf einem Parser, der ebenfalls in der Library enthalten ist. Der Parser verwendet den sogenannten Shunting-yard-Algorithmus, zur Berechnung der Ausdrücke. An dieser Stelle möchte ich mich bei @Artentus bedanken, der mir diesen Algorithmus freundlicherweise erklärte :thumbup: .

      Klassendiagramm(da keine GUI vorhanden):


      Changelog:
      Spoiler anzeigen
      Version 1.0
      • Erster offizieler Release
      • Parser, Function, BrokenRationalFunction Class enthalten
      Version 1.1
      • Fehler der Zero-Funktion behoben
      • Verhindern eines nicht reellen Ergebnisses bei Integralberechnung bei gebrochenrationaler Funktion
      • Umbenennung der BrokenRationalFunction Klasse in RationalFunction


      Verwendete Programmiersprache:
      VB.NET (IDE: Visual Studio 2013 Professional)

      Systemanforderungen:
      .NET Framework 3.5 (kein Xp-Support mehr)

      Github:

      github.com/faxe1008/MathExpressionLib

      Lizens/Weitergabe:

      Opersource

      Download (Library + Quellcode + XML-Dokumentation):

      (siehe Anhang)


      Ich hoffe auf konstruktive Kritik und Erweiterungsideen für die beiden Function Klassen, um das Projekt einen Schritt weiter zu bringen. Vielleicht werde ich demnächst eine Testform anhängen, die das Testen der Funktionen erleichtert, je nachdem wie groß die Nachfrage hierzu ist. Wenn ihr irgendwelche Verbesserungen der verwendeten Annährungsverfahren kennt, postet diese bitte.
      Dateien

      8-) faxe1008 8-)

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „faxe1008“ () aus folgendem Grund: Testprojekt eingefügt

      Hallo ponmalka,

      Vielen Dank, ich werde es berichtigen(mit der nächsten Version). Wenn sonst noch jemand etwas findet, bitte melden ;) .

      Mir ist soeben aufgefallen, dass ich beim Testprojekt einen Zahlendreher hatte und dass deswegen die VerticalAsyptote Funktion der RationalFunction Class nicht funktionierte. Der Fix wird in ein paar Minuten hochgeladen. Außerdem besteht ein Problem mit der Zero-Funktion wenn keine Nullstelle existiert, Problem wurde behoben und kommt im nächsten Update.

      EDIT//: Testprojekt korregiert. Änderung der Zero-Funktion im nächsten Update, bis dahin nicht darüber wundern, dass z.B. f(x)=2 eine Nullstelle bei 2 hat.

      8-) faxe1008 8-)

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „faxe1008“ ()

      Kann man das Integral gebrochenrationaler Funktionen einfach ausrechnen? Das Integral einer ganzrationalen Funktionen ist ja recht einfach zu berechnen,... aber bei dem anderen fällt mir so schnell nichts ein. Wie hast du das denn gelöst?
      Aktualisierung auf Version 1.1
      • Fehler der Zero-Funktion behoben
      • Verhindern eines nicht reellen Ergebnisses bei Integralberechnung bei gebrochenrationaler Funktion
      • Umbenennung der BrokenRationalFunction Klasse in RationalFunction

      Wie immer würde ich mich über Bugreports und Kritik freuen.

      8-) faxe1008 8-)