Mathematik mit Python oder C, oder gar was ganz anderem?



  • Kannst du etwas konkreter werden? Mathematik ist ein weites Feld.

    C ist recht umständlich bei komplizierteren mathematischen Verfahren und es gibt nicht allzu viele Bibliotheken, verglichen mit den "typischen" Sprachen. Python könnte zu langsam sein, je nachdem, was du machen willst.

    Die Standardsprache wäre Matlab, das kostet allerdings ziemlich viel Geld. GNU Octave ist eine freie Implementierung mit ähnlicher Syntax und ähnlichen Bibliotheken.

    Falls du die Matlab/Octave Syntax nicht magst, könntest du dir auch R angucken. Ich persönlich verwende R, es bietet eigentlich für alles was man sich wünschen kann entsprechende Bibs, die Syntax ist angenehmer und die Visualisierung von Daten klappt genauso einfach, wie mit Matlab.

    Und falls du der Sache auf den Grund gehen willst: Guck dir Fortran an. Viele Verfahren, die in Matlab, R, Python usw. als Bibs zur Verfügung stehen, basieren auf alten Fortran Codes.



  • was-tun schrieb:

    Hi
    Ich kenne mich sehr gut mit der Programmiersprache C aus.
    Jezze möchte ich aber ein bisschen in der Welt der Mathematik herumexperimentieren. Sollte ich besser Python dafür nehmne oder lieber ganz was anderes ?
    Danke schon mal!

    :happy new year:

    WxMaxima bzw. maxima



  • RonjaRaeuber schrieb:

    Die Standardsprache wäre Matlab, das kostet allerdings ziemlich viel Geld. GNU Octave ist eine freie Implementierung mit ähnlicher Syntax und ähnlichen Bibliotheken.

    Falls du die Matlab/Octave Syntax nicht magst, könntest du dir auch R angucken.

    Du mischst da Dinge zusammen, die nicht zusammengehören.

    Matlab/Octave ist für numerische Berechnungen. Das nutzt man, wenn es auf Genauigkeit nicht ankommt, man also bereit ist Genauigkeit zu verlieren und wenn man ein Ergebnis in numerischer Form, also als Zahl haben will und das möglichst schnell berechnet und effizient.

    R ist für die Statistik. Also alles was mit statistischem rechnen zu tun hat.
    Das nimmt man nicht für andere Dinge.

    Maxima bzw. WxMaxima ist ein CAS, das nimmt man für das symbolische rechnen, als der Mathematik wie sie in der Mathematik allgemein üblich ist und was der TS haben will.
    Hier sind die Ergebnisse mathematisch exakt und Symbolisch. D.h. Pi bleibt z.B. Pi und wird nicht auf irgendeine ungenaue Stelle aufgedrösselt wie es ein numerisches Programm wie Octave machen würde.



  • Maxima schrieb:

    Maxima bzw. WxMaxima ist ein CAS, das nimmt man für das symbolische rechnen, als der Mathematik wie sie in der Mathematik allgemein üblich ist und was der TS haben will.
    Hier sind die Ergebnisse mathematisch exakt und Symbolisch. D.h. Pi bleibt z.B. Pi und wird nicht auf irgendeine ungenaue Stelle aufgedrösselt wie es ein numerisches Programm wie Octave machen würde.

    Woher weißt du, was der TS will? er hat nicht gesagt, dass er etwas beweisen will. Er hat auch nicht gesagt, dass er keine Statistik machen will. Und natürlich ist Statistik auch mathematik.



  • RonjaRaeuber schrieb:

    C ist recht umständlich bei komplizierteren mathematischen Verfahren

    Stimmt schon, andererseits ist C wegen seines geringen Abstraktionsniveaus prima geeignet, um numerische Algorithmen auf Von-Neuman-Architekturen zu testen bzw. dafür zu entwickeln.

    Mathe-Tools wie Mathematica, Matlab, etc. haben oft einen versteckten Button "Generate C-Code". 🙂



  • was-tun schrieb:

    Ich kenne mich sehr gut mit der Programmiersprache C aus.

    Ernsthaft? Na wie auch immer...

    http://www.xsc.de/ ist vielleicht noch eine Ergänzung, und Assembler (auf jeden Fall!). (und natürlich http://www.nvidia.de/object/cuda-parallel-computing-de.html )

    Alternativ? Generell egal, es empfehlen sich vielleicht
    Fortran
    C++
    Haskell
    Java
    aber viele gute Schülerartikel/Programme gibt es immer noch in z.B. in Logo oder Basic.
    Ganz nett übrigens (weil hier noch nicht genannt):
    http://webuser.hs-furtwangen.de/~dersch/jasymca2/index.html



  • 92 schrieb:

    was-tun schrieb:

    Ich kenne mich sehr gut mit der Programmiersprache C aus.

    Ernsthaft? Na wie auch immer...

    http://www.xsc.de/ ist vielleicht noch eine Ergänzung, und Assembler (auf jeden Fall!). (und natürlich http://www.nvidia.de/object/cuda-parallel-computing-de.html )

    Alternativ? Generell egal, es empfehlen sich vielleicht
    Fortran
    C++
    Haskell
    Java
    aber viele gute Schülerartikel/Programme gibt es immer noch in z.B. in Logo oder Basic.
    Ganz nett übrigens (weil hier noch nicht genannt):
    http://webuser.hs-furtwangen.de/~dersch/jasymca2/index.html

    Die Frage war nicht, welche Programmiersprachen kennst du. 🙄



  • wenn es darum geht, Resultate zu erzielen, würde ich auf jeden Fall vorhandene Software nehmen, je nach Aufgabenstellung octave, R, numpy oder (für symbolische Rechnungn) ein computer algebra System u.v.a.m.

    wenn es um das Programmieren an sich geht, ist die Auswahl der Programmiersprache nahezu unbegrenzt. Selbst mit forth oder logo lassen sich eine Menge mathematischer Aufgaben lösen.

    es kann auch sehr lehrreich sein, mathematische Software vollständig "from scratch" selbst aufzubauen, also erstmal einen Datentyp für Arithmetik von "unbegrenzter" Länge, darauf aufbauend dann rationale Arithmetik (Bruchrechnung), das wiederum läßt sich verallgemeinern zu Arithmetik in Körpern, und spätestens, wenn man in F_{p^n} rechnen will, braucht man Basisdarstellung und damit lineare Algebra
    u.s.w.

    Allerdings gibt es das alles schon in x-facher Ausführung für fast alle erdenklichen Zwecke. Lehrreich ist es trotzdem, man lernt eine Menge über Effizienzfragen und Algorithmen (z.B. Schönhage-Strassen Algorithmus für Multiplikation von langen Zahlen oder Gröbner Basen für symbolisches Rechnen in Restklassenringen).



  • Python bietet mit Numpy/Scipy/Sympy/Matplotlib usw. eine ganze Menge Tools die man prima kombinieren kann. Zudem lassen sich externe Libraries (lineare Algebra, High Performance Computing, ...) gut integrieren. Ich arbeite fast überhaupt nicht mehr mit Matlab, Mathematica o.ä. weil die Python-Libs immer mächtiger werden und man ja oft wirklich nur einen Bruchteil der teuren Pakete braucht.



  • SAGE?


Anmelden zum Antworten