steffi: Programmiertechnik zum Auflösen von Formeln

hi
könnt Ihr mir ein allgemeines tutorial nennen, womit ich dann anhand einer funktion nachvollziehen kann, wie man in einer anwendung eine formel auf eine bestimmte variable auflösen kann?
als sprachen kommen für mich folgende in frage: vb, delphi, c++ und php .

wäre cool, wenn ihr nen tipp für mich habt.
also z.b. sollte die ausgabe dann so aussehn:
eingabe: ax^3+bx^2+cx+x^(1/2)+2=d
lösungsweg:
schritt 1...
....
Lösung1 für x in Abhängigkeit von (1,b,c,d) =...

Vielen Dank für links, tipps usw

  1. Hi,

    könnt Ihr mir ein allgemeines tutorial nennen, womit ich dann anhand einer funktion nachvollziehen kann, wie man in einer anwendung eine formel auf eine bestimmte variable auflösen kann?

    meine Güte. Das Thema beschäftigt Wissenschaftler Tag für Tag, Programme werden für hunderte, sogar tausende von Euro verkauft, und Du verlangst ein _allgemeines_ _Tutorial_? Oh je.

    wäre cool, wenn ihr nen tipp für mich habt.

    Ein Tipp: Zerlege die Formel zunächst einmal in ihre Atome. Dann hast Du zumindest etwas, das mal nutzbar werden kann.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      könnt Ihr mir ein allgemeines tutorial nennen, womit ich dann anhand einer funktion nachvollziehen kann, wie man in einer anwendung eine formel auf eine bestimmte variable auflösen kann?

      Ja, sowas nennt sich Mathematikunterricht und wird unter Umständen auch von der Volkshochschule in Deinem Städtchen angeboten. Ansonsten wird's teuer.

      meine Güte. Das Thema beschäftigt Wissenschaftler Tag für Tag, Programme werden für hunderte, sogar tausende von Euro verkauft,

      Ich widerspreche Dir ja wirklich ungern ... deshalb tu' ich's natürlich auch nicht.
      Aber ich möchte in diesem Zusammnehang doch Maxima wärmstens empfehlen. Da die Weiterentwicklung lange Zeit stagnierte dürfte der Funktionsumfang nur noch bei etwa 95% im Vergleich zu Matlab o.ä. liegen. Ja, ich weiß: mit Sicherheit sind diese fehlenden 5% genau das, was man brauchte, aber mich hat das Programm schon einiges an Zeit erspart, insbesondere bei "Fleißaufgaben" oder bei Extrema-Suche und noch vieles mehr.

      und Du verlangst ein _allgemeines_ _Tutorial_? Oh je.

      Ja, ne, gipps doch, oder etwa nich? >;->

      so short

      Christoph Zurnieden

  2. Hallo steffi,

    Ein Programm zu schreiben, dass mehr oder weniger alle Gleichungen, die sich analytisch lösen lassen, löst, ist nicht so ganz einfach. Wenn Du so etwas brauchst, solltest Du etwas fertiges nehemen.
    Die Programme haben meist eine eigene Programmiersprache sowie eine API mit der man sie in eigene Programme einbinden kann.
    Ich verwende MuPAD: < http://mupad.com/>
    Da gibt es eine kostenlose Version (für Ausbildung und für nicht kommerziellen Einsatz)

    Wenn Du das innerhalb eines Programmes brauchst solltest Du Dir aber überlegen, ob Du wirklich eine exakte Lösung brauchst, oder ob es vielleicht auch ein Näherungsverfahren tut.
    Ein Näherungsverfahren für Nullstellen kann man z.B. noch recht schnell selber implementieren.
    Wenn Du den Typ der Gleichung sehr stark einschränken kannst (z.B. nur Polynome 3. Grades wie in Deinem Beispiel) kannst Du natürlich auch die allgemeine Lösung ausrechnen und daraus die Lösung für konkrete Prameter ganz einfach bestimmen.

    Grüße

    Daniel

    1. Hi Daniel,
      die sache ist nunmal so, dass mich vielmehr interessiert, wie das in einer anwendung zu lösen ist.
      es muss ja nicht alles (log, usw) unterstützen... aber die wichtigsten dinge eben schon.
      dass der erste schritt wäre, die elemente der angabe zu zerteilen usw. leuchtet mir auch ein. danach müsste wohl etwas nach dem motto punkt vor strich befolgt werden usw...
      und eben diese vorgehensweise würde mich sehr interessieren...
      danke

      1. Hallo steffi,

        dass der erste schritt wäre, die elemente der angabe zu zerteilen usw. leuchtet mir auch ein. danach müsste wohl etwas nach dem motto punkt vor strich befolgt werden usw...

        Ja, man darf da natürlich nicht mit den Zahlen rechnen sondern muss symbolische Umformungen machen.

        Ein Rezept gibt es da sicher nicht, wenn Du so etwas basteln willst, musst Du Dir überlegen, welche Gleichungstypen Du lösen können willst und dann das entsprechende Lösungsverfahren raussuchen.
        Viel anders als man das von Hand macht, wird das die Software auch nicht machen.

        Ich weiß jetzt nicht was Du so als "die wichtigsten Dinge" ansiehst, aber wenn man sich zum Beispiel auf Polynome beschränkt, würde ich so vorgehen:
        Die Gleichungen haben die Form p(x) = 0

        1. Schritt: p(x) in Faktoren zerlegen, soweit das geht. Evt wurde ja schon eine teilweise faktorisierte Form eingegeben, oder es werden nur gerade Exponenten benutzt und man kann gleich ein x Ausklammern. Das sind zwar recht tiviale Schritte, aber wenn man sie nicht berücksichtigt, macht man sich das Problem komplizierter als es ist.

        2. Jeden Faktor den man so erhalten hat einzeln gleich 0 setzen. Diese Gleichungen kann man dann per Lösungsformel lösen.
        Das klappt bis zum Grad 5, dann kommt man nur noch mit Näherungsverfahren weiter.

        Grüße

        Daniel