• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Langzahlarithmenitk in C++

wastel

Grahams Jubiläumsapfel
Registriert
14.02.07
Beiträge
107
Hi.

Ich habe eine kleines Programm geschrieben zur Bestimmung von "5-te Wurzel 5" mit dem Bisektionsverfahren. Nun aber das Problem. Ich würde gern mehr signifikante Stellen in der Ausgabe haben, am besten in Verbindung mit einem bessern "genaueren" Datentyp als double oder float.


Code:
#include<iostream>
#include<stdlib.h>

using namespace std;


int main(){
    float fE = 0, fR = 0, fL = 0, fG=0, fF=1, fM=0;
    int n = 0;
    cout<<"Bitte geben Sie die Genauigkeit ihrer Approximation ein"<<"\n";
    cin>>fG;
    cout<<"Rechte Intervallgrenze"<<"\n";
    cin>>fR;
    cout<<"Linke Intervallgrenze"<<"\n";
    cin>>fL;
    while(fF > fG)
    {
        n = n+1;
        fF = fF / 2;
        fM = ((fR-fL)/2) + fL;
        if((fL*fL*fL*fL*fL-5)*(fM*fM*fM*fM*fM-5)>0)
        {
            fL = fM;
        }
        else
        {
            fR = fM;
        }
    }
    cout<<fM<<"\n";
    cout<<n;
    return 0;
}
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Inkludier mal <iomanip> und stelle die Ausgabegenauigkeit hoch:
Code:
unsigned int old_precision = cout.precision(10);
cout << irgendwas;
...
cout.precision(old_precision);
Bei float kannst Du günstigenfalls mit 8 Nachkommastellen rechnen, bei double mit ca. 15. Oder reicht das nicht?
 

wastel

Grahams Jubiläumsapfel
Registriert
14.02.07
Beiträge
107
reicht nicht.


Ich hätte gern 100 oder so
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Dann brauchst Du eine eigene Klasse als Ersatz für double. Google mal nach GMP oder schau hier unter "multiprecision". Aber wofür soll eine derart hohe Genauigkeit gut sein? Die Geschwindigkeit des Algorithmus wird auf jeden Fall drastisch leiden.
 

wastel

Grahams Jubiläumsapfel
Registriert
14.02.07
Beiträge
107
Aufgabe für Numerische Mathematik ;). Der Prof verlangts.....
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
... dann frag ich jetzt als Numeriker mal nicht, welcher Prof solche Aufgaben stellt. ;)
 

wastel

Grahams Jubiläumsapfel
Registriert
14.02.07
Beiträge
107
Ihm geht es ja nicht um die 1.000.000.000.000 te Stelle sondern um die Möglichkeit das es zu berechenn ist und die Genauigkeit des Algorithmus über die Lauzeit abzuschätzen ist.

Du Numeriker. In welchen Zusammenhang arbeitest du mit Numerik
 

wastel

Grahams Jubiläumsapfel
Registriert
14.02.07
Beiträge
107
Noch ne Frage.

Ich benutze Yacas for Mac, stelle jeoch fest, dass nicht alle Befehle in der Mac-Version funktionieren. Insbesondere die "Precision" Fkt. kann ich nicht benutzen um die Ergebnisse meines Programms abzuschätzen