Hallo, mal wieder meine Probleme mit der Aufgabe vom Professor - und zwar sollen wir per Newtons Methode die Quadratwurzel, in einer erweiterten Aufgabe auch die 3. Wurzel einer Zahl X ausrechnen... alles soll iterativ (welch tolles Wort, hatte ich vorher noch nie gehört) ausgerechnet und auf dem Bildschirm ausgegeben werden.
Leider kommt bei mir wenn ich die Quadratwurzel von 4 also 2² ziehen lasse nicht 2 sondern 2,5 raus
Die Formel zur Berechnung habe ich mir auch aus lauter Zeitdruck und Verzweiflung im Internet rausgefischt - nachfolgend und für mich, die Abgabefrist ist seit über einer Stunde vorbei, möchte ich das ganze aber noch korrigieren damit es funktioniert und sehen, wo mein Fehler war, damit ich ihn in der Hausaufgabe umgehen kann.
Wahrscheinlich sieht das ganze auch wieder sehr nach einer Holzhacker-Methode zum Lösen der Aufgabe aus, aber ich kann es noch nicht elegant bitte um Rücksicht, Bücher zum Selbststudium sind vorhanden bzw auf dem Postweg.
Kann mir jemand helfen und mir sagen, wo da das Problem zum einen in der Rechnung liegt und dann, wo ich mehr Schritte und iterativ in einer Schleife den Schnodder ausrechnen soll? Ich komme leider nicht weiter...
Leider kommt bei mir wenn ich die Quadratwurzel von 4 also 2² ziehen lasse nicht 2 sondern 2,5 raus
Die Formel zur Berechnung habe ich mir auch aus lauter Zeitdruck und Verzweiflung im Internet rausgefischt - nachfolgend und für mich, die Abgabefrist ist seit über einer Stunde vorbei, möchte ich das ganze aber noch korrigieren damit es funktioniert und sehen, wo mein Fehler war, damit ich ihn in der Hausaufgabe umgehen kann.
Wahrscheinlich sieht das ganze auch wieder sehr nach einer Holzhacker-Methode zum Lösen der Aufgabe aus, aber ich kann es noch nicht elegant bitte um Rücksicht, Bücher zum Selbststudium sind vorhanden bzw auf dem Postweg.
Code:
#include <iostream>
using namespace std;
#include <cmath>
using namespace std;
#include <iomanip>
using namespace std;
int integerA;
int main()
{
double x1 = 0.00, x0 = 0.00, y;
while (integerA <= 1)
{
cout << "Willkommen zu einem kleinen Programm zur Berechnung der Quadratwurzel.\n\n"
<< "Hierzu benoetige ich den Wert der Zahl x, diese muss unbedingt positiv sein.\n"
<< "Hast du deine Zahl eingegeben, bestaetige bitte mit Enter.\n";
cin >> y;
x0 = y / 4;
cout << "x0 = " << x0 << setprecision(10) << endl;
x1 = (x0 - (((x0*x0) - y) / (2 * x0)));
x0 = x1;
cout << "\n"
<< "Die Loesung ist \n"
<< "x1 =" << x1 << setprecision(10) << "\n"
<< "x0 =" << x0 << setprecision(10) << "\n"
<< endl;
cout << "Die Quadratwurzel von " << y << " ist " << x1 << "."
<< "\n\n"
<< "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
<< "Wenn du weitere Berechnungen durchfuehren moechtest, \ndann gib jetzt bitte die 1 ein, zum Beenden eine beliebige andere \nZahl und bestaetige mit Enter.\n";
cin >> integerA;
}
return 0;
}
Kann mir jemand helfen und mir sagen, wo da das Problem zum einen in der Rechnung liegt und dann, wo ich mehr Schritte und iterativ in einer Schleife den Schnodder ausrechnen soll? Ich komme leider nicht weiter...