Program do obliczania sumy szeregów
Ostatnio zmodyfikowano 2015-11-08 14:19
hemicrania Temat założony przez niniejszego użytkownika |
Program do obliczania sumy szeregów » 2015-11-06 22:34:24 Witam. Napisałam program do wyliczania sumy szeregów, jednak pojawiają mi się kosmiczne wyniki typu 3.84026e-006. Nie wiem gdzie mógłby być błąd i jak to naprawić. Dodatkowo pytanie - czy program ogólnie wygląda ok? Wstawiam treść zadania: Obliczyć wartość funkcji podanej w postaci rzędu Wyniki obliczeń zapisać do pliku tekstowego. goo.gl/IfU42h#include <iostream> #include <fstream> #include <cmath> #include <iomanip> #include <conio.h>
using namespace std;
int main() { double x =( - 1 ), s, y; fstream plik( "data.dat" ); while( x <=( - 0.9 ) ) { int k = 2; s = 0; do { y =(( pow( - 1, k ) * cos( k * x ) ) /( pow( k, 2 ) - 1 ) ); s += y; k++; } while( fabs( y ) >= 0.001 ); cout << x << "\t" << s << "\t" << y << endl; plik << x << "\t" << s << endl; x += 0.01; } plik.close(); getch(); return 0; }
|
|
docentpp |
» 2015-11-07 00:27:56 int k = 2; s = 0; int zn = - 1, do { zn = - zn; y = 1.0 * zn * cos( 1.0 * k * x ) /( 1.0 * k * k - 1.0 ); s += y; k++; } while( fabs( y ) >= 0.001 );
|
|
hemicrania Temat założony przez niniejszego użytkownika |
» 2015-11-08 13:06:43 Po wprowadzeniu zmian, program nie generuje żadnych wyników #include <iostream> #include <fstream> #include <cmath> #include <iomanip> #include <conio.h>
using namespace std;
int main() { double x =( - 1 ), s, y; fstream plik( "data.dat" ); while( x <=( - 0.9 ) ) { int k = 2; s = 0; int zn = - 1; do { zn = - zn; y = 1.0 * zn * cos( 1.0 * k * x ) /( 1.0 * k * k - 1.0 ); s += y; k++; } while( fabs( y ) >= 0.001 ); } plik.close(); getch(); return 0; }
|
|
docentpp |
» 2015-11-08 14:19:08 Szereg oscyluje w graniach [-1.0 ; 1.0] i jest silnie zbieżny do zera (mianownik gwałtownie rośnie). Ma wyrazy naprzemienne ( dodatbie , ujemne) i szybko suma dąży do zera. Przetestuj sumę ( przy ustalonym x) nie dla zadanego eps , ale np dla k=15 , k=50. |
|
« 1 » |