Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: C++ (alle ISO-Standards) ::  Heron-Verfahren C++ verbessern  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Quotenbanane
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.01.2017
Beiträge: 3
Beitrag Quotenbanane Mitglied 21:56:57 04.01.2017   Titel:   Heron-Verfahren C++ verbessern            Zitieren

Hallo liebe Programmierer!
Ich hab hier diesen C++ Code, ein Iterationsverfahren nach Heron
Nur leider rechnet das Programm nach der 2 Näherung nicht mehr weiter und setzt ungefähr ab der 33-37 Dezimalstelle nur noch 0'len. Kann mir jemand helfen?

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
 
using namespace std;
#include <iostream>
 
using namespace std;
 
int main(){
   
    float a, x, eq; // a  = Radikand
                       // x  = Startwert
                      // eq = Formel
    int i=0;        // Schleifenzähler
   
    printf("Bitte geben Sie den Radikand ein:\t");
                  cin >> a;
    printf("Bitte geben Sie den Startwert ein:\t");
                  cin >> x;
    //Formel
              eq = 0.5*( x + a / x );
              cout << eq << endl; // 1.Näherungswert
   
    while(eq - x > 1/1000000 || i <= 30){  // berechne...
             x = eq;
             i++;
             eq = 0.5*( x + a / x );
             
             cout << "Der " << i << ". Näherungswert ist: " << eq << endl;
             cout.precision ( 35 );
}
system("pause");
}
SeppJ
Global Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 27800
Beitrag SeppJ Global Moderator 22:08:32 04.01.2017   Titel:              Zitieren

Dein precision 35 ist reines Wunschdenken, wenn du mit Datentypen rechnest, die auf 7 Stellen genau sind....

_________________
Korrekte Rechtschreibung und Grammatik sind das sprachliche Äquivalent zu einer Dusche und gepflegter Kleidung.
Quotenbanane
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.01.2017
Beiträge: 3
Beitrag Quotenbanane Mitglied 22:31:52 04.01.2017   Titel:              Zitieren

Okay und was kann man dagegen machen?
SeppJ
Global Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 27800
Beitrag SeppJ Global Moderator 22:53:56 04.01.2017   Titel:              Zitieren

Datentypen mit größerer Präzision benutzen?

_________________
Korrekte Rechtschreibung und Grammatik sind das sprachliche Äquivalent zu einer Dusche und gepflegter Kleidung.
Quotenbanane
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.01.2017
Beiträge: 3
Beitrag Quotenbanane Mitglied 23:21:14 04.01.2017   Titel:              Zitieren

Hab's jetzt schon mit long double versucht, funktioniert aber auch nicht :/
Skym0sh0
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.03.2008
Beiträge: 3216
Beitrag Skym0sh0 Mitglied 00:21:21 05.01.2017   Titel:              Zitieren

Aber auch da wirst du früher doer später auf Grenzen stoßen.
SeppJ
Global Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 27800
Beitrag SeppJ Global Moderator 01:43:44 05.01.2017   Titel:              Zitieren

Du solltest dir auch mal angucken, was 1/1000000 wirklich ist. Wird zwar wahrscheinlich nicht das Problem beheben, aber ohne bessere Problembeschreibung (was erwartest du, was passiert stattdessen?) habe ich nicht so die Motivation alles ganz genau anzugucken.

_________________
Korrekte Rechtschreibung und Grammatik sind das sprachliche Äquivalent zu einer Dusche und gepflegter Kleidung.
temi (temp)
Unregistrierter




Beitrag temi (temp) Unregistrierter 11:54:25 05.01.2017   Titel:              Zitieren

Nur aus Interesse:

Gibt es empfehlenswerte Bibliotheken für Berechnungen mit hoher Präzision?

Gruß,
temi
wob
Unregistrierter




Beitrag wob Unregistrierter 12:20:38 05.01.2017   Titel:              Zitieren

ja.

Wolltest du auch noch wissen, welche das sind - schau mal bei Wikipedia vorbei:

https://en.wikipedia.org/ ....... sion_arithmetic_libraries

GMP / MPFR wären dann mal zwei Beispiele.

Habe allerdings selbst keine Erfahrung damit.
temi (temp)
Unregistrierter




Beitrag temi (temp) Unregistrierter 12:40:20 05.01.2017   Titel:              Zitieren

Danke, wob.

Die Betonung lag eher auf empfehlenswert, also:

Hat jemand gute Erfahrungen mit einer bestimmten Lib gemacht? Einfach anwendbar, usw.

Wie schon geschrieben, rein interessehalber, ich brauch das aktuell nicht, aber ich lerne gerne dazu.
C++ Forum :: C++ (alle ISO-Standards) ::  Heron-Verfahren C++ verbessern  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.