harmonische Reihe c++ |
21.11.2015, 17:12 | Auf diesen Beitrag antworten » | |||||
Marcell99 | harmonische Reihe c++ Meine Frage: Die harmonische Reihe s = lim sn mit n?? s n = ( n) sigma (k=1) 1/k ist wohl die bekannteste divergente s = ? Reihe in der Mathematik. a) Schreiben Sie ein C/C++ Programm welches für gegebenes n element N den Wert von summe = sn bestimmt. Dabei soll summe im Format float berechnet werden. Testen Sie Ihr Programm für n = 2^i mit i = 5,10,...,30. Was fällt Ihnen hierbei auf? Meine Ideen: weiß jemand wie das so laufen lassen kann damit es in fünferschritten verläuft (wird das eher mit einer while schleife gemacht ?) #include <iostream> using namespace std; int main(int argc, const char * argv[]) { float summe; int k, n; cout<<"Geben Sie n ein"<<endl; cin>>n; summe=1; for (k=1; 30>k; k=k+(n*5)) { summe=summe+1./k; } cout<<"Die Summe bträgt "<<summe<<endl; return 0; } |
|||||
|
||||||
21.11.2015, 17:52 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl |
|
|||||
21.11.2015, 18:04 | Auf diesen Beitrag antworten » | |||||
Marcell99 | k <=2<<i macht man das immer wenn der Exponent unbekannt ist ?? egal was ich für eine zahl für n einsetze stehen immer die gleichen Lösungen kann sowas sein ? |
|||||
21.11.2015, 18:31 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Ich dachte, du willst das n im Programmcode wählen:
|
|||||
Anzeige | ||||||
|
||||||
21.11.2015, 18:52 | Auf diesen Beitrag antworten » | |||||
Marcell99 | ahso okay jetzt versteh ich auch die Lösung. das muss ich jetzt auf diese Aufgabe beziehen ich muss nun die folgeglieder addieren Modifizieren Sie ihr Programm so, dass Sie das erste Folgeglied als Startwert für summe setzen und dann jeweils zuerst blockweise die Summe der Folgeglieder für Blöcke der Größe 2^k für k = 0, 1, 2, . . . , m berechnet und diese danach zu summe addiert, d.h. summe = 1 + 1/2 + (1/3+1/4) + (1/5+1/6+1/7+1/8)+ ....... 2^0 2^1 2^2 Terme Beachten Sie, dass zwischen m und n die Relation n = 2^(m+1) besteht und testen Sie ihr Programm wiederum für m = 4, 9, . . . , 29. Vergleichen Sie die Ergebnisse mit den Ergebnissen aus Teil a). Was fällt Ihnen auf und wie erklären Sie sich das unterschiedliche Verhalten? Bemerkung. Das exakte Ergebnis von sn lässt sich approximieren durch sn = log(n) + 0.5772156649. hier wird ja das Ergebnis immer mit dem anderen folgeglied addiert, aber wie kann man das darstellen der startwert ist ja hier eins summe=1; for (k=0; m <=2<<k; k++) { summe=summe+1./m; } |
|||||
21.11.2015, 20:22 | Auf diesen Beitrag antworten » | |||||
Marcell99 | weiß das niemand ?? |
|||||
21.11.2015, 20:40 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Ich habe eine Alternativhypothese: die Leute hier - in diesem Falle ich - haben noch andere Dinge zu tun.
|
|||||
21.11.2015, 20:47 | Auf diesen Beitrag antworten » | |||||
Marcell99 | tut mir leid wollte nicht nerven trotzdem danke |
|||||
21.11.2015, 21:00 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Keine Sorge, ich helfe gerne, wenn ich kann. Aber quengeln hilft nichts, entweder antworte ich, oder eben nicht. |
|||||
21.11.2015, 21:27 | Auf diesen Beitrag antworten » | |||||
Marcell99 | alles klar |
|