Irrationale Zahlendarstellung in irgendeiner Programmiersprache?

8

Kennt jemand eine irrationale Zahlendarstellung Typ / Objekt / Klasse / was auch immer in any Programmiersprache?

Alle Vorschläge sind willkommen.

Einfach gesagt, wenn ich zwei irrationale Objekte habe, die beide die Quadratwurzel von fünf repräsentieren, und ich diese Objekte multipliziere, möchte ich die ganze Zahl fünf zurückbekommen, nicht die 4-Punkt-Loose o '9s.

Genauer gesagt, muss die Repräsentation in der Lage sein, Begriffe zu erfassen, und nicht jedes Mal auf ein Integer / Float auflösen. Zum Beispiel, wenn ich die Quadratwurzel von fünf zu eins hinzufügen möchte, möchte ich nicht, dass es eine Näherung integer / float zurückgibt, ich möchte, dass es ein Objekt zurückgibt, das ich mit einem anderen irrationalen Objekt addieren / multiplizieren kann, so dass Ich kann dem Objekt sagen, dass es so spät wie möglich aufzulösen ist, um den Float-Näherungsfehler zu minimieren.

Vielen Dank!

    
oaklodge 23.03.2011, 15:04
quelle

6 Antworten

14

Was Sie suchen, heißt symbolische Mathematik. Vielleicht möchten Sie ein Computeralgebrasystem wie Maxima, Maple oder Mathematica ausprobieren. Zu diesem Zweck gibt es auch Bibliotheken, zum Beispiel die SymPy -Bibliothek für Python.

    
Sven Marnach 23.03.2011, 15:08
quelle
7

Sie könnten versuchen sympy zu verwenden, da Sie scheinbar nach einer symbolischen Berechnung sind und Python verwenden können.

>     
David Heffernan 23.03.2011 15:07
quelle
3

Es sieht so aus, als ob der bereits erwähnte SymPy der geeignetste Weg wäre - so wie Sie das tun könnten, was Sie tun benötigen und erfordern nicht, dass Ihre Software in einer spezifischen Zwecksprache geschrieben wird, wie von den erwähnten mathematischen Produkten.

Wenn Sie andererseits keine weiteren Abhängigkeiten einführen wollen und Ihre irrationalen Fälle auf Multiplikationen von Quadratwurzeln beschränkt sind, ist es in Python eine einfache Aufgabe:

%Vor%

Beispiel:

%Vor%

Sie können es weiter verfolgen und andere Operationen und Fälle einschließen. Aber für kompetitive Ausdrücke würden Sie schnell erkennen, dass Sie sowieso symbolische Mathematik verwenden müssen.

    
jsbueno 23.03.2011 16:14
quelle
0

Der grundlegende numerische Typ in Matlab ist eine Matrix aus komplexen Gleitkommazahlen. Genauer gesagt, wenn Sie x = 1 eingeben, ist das, was Sie wirklich x zuweisen, eine 1x1-Matrix, deren [0,0] -Element gleich 1 + 0i ist.

    
SF. 23.03.2011 15:28
quelle
0

In Ruby gibt es Ссылка , was dir das gibt, was du willst, glaube ich.

    
BeepDog 24.03.2011 20:32
quelle
0

Ich erinnere mich, dass MathMorph in Smalltalk eine Darstellung für AlgebraischeNummern (die Radikale enthält) als Wurzel eines Polynoms einer einzelnen Variablen mit ganzzahligen Koeffizienten enthält, die in einem bestimmten Intervall liegen.
Sie finden interessante Anwendungen von Sturms Theorem Ссылка Du musst ein bisschen googeln und in alten Archiven graben, MathMorph ist ein altes Projekt ...

    
aka.nice 01.07.2012 21:34
quelle

Tags und Links