Tabelaryzacja cos(x), szereg Taylora

0

Siemka, mam do napisania taki program:

Napisać program tabelaryzujący funkcję cosinus w zadanym przedziale. Dane wejściowe: początek przedziału, koniec przedziału, krok (przyrost x). Tabela powinna zawierać 3 kolumny: wartość argumentu x, wartość cos(x) policzoną z wykorzystaniem funkcji bibliotecznej oraz wartość cos(x) policzoną z rozwinięcia w szereg Taylora.

I tak wykonałem wszystko oprócz tego szeregu Taylora. Czy ktoś mógłby mi powiedzieć w którym miejscu go najlepiej wpisać i ogólnie jak powinien taki kod wyglądać.

Z góry dzięki.

 int main () {
	double x, x_pocz, x_kon, krok;
	float n, p, y;
	printf("\n");
	printf("Podaj poczatek przedzialu: ");
	scanf("%lf", &x_pocz);
	printf("Podaj koniec przedzialu: ");   
	scanf("%lf", &x_kon);
	printf("Podaj krok: ");
	scanf("%lf", &krok);
	printf("\n");

	printf("   x   |   cos(x)   |   cos(x) Taylor  \n");
	printf("-------+------------|-------------------\n");
	for (x = x_pocz; x < x_kon; x += krok)
		printf("%5.3f  |%8.3f\n", x, cos(x));
	    printf("%5.3f  |%8.3f       |%11.3f\n", x_kon, cos(x_kon), cos);
	printf("-------+------------|-------------------\n");
	printf("\n");
	return 0;
} 
0

o_O? Napisz funkcje która liczy cos z szeregu taylora i wywołaj ją tam gdzie wypisujesz tabelkę. Niby gdzie byś to chciał zrobić?

0

Wzory masz tutaj: http://en.wikipedia.org/wiki/Trigonometric_functions#Series_definitions Przełóż je na język C. Podpowiedź: silnia jest niepotrzebna i nawet nie próbuj jej używać.

0

Dałem radę policzyć cos z szeregu Taylora tylko nie wiem za bardzo jak to zapętlić.
Moim wynikiem cos z szeregu Taylora jest zmienna "suma". Tylko przy kompilacji w kolumnie cos(x) Taylor mam dla każdego x wartość 1, a powinny być inne.
Podkresłam że zaczynam, więc nie osądzajcie mnie pod kątem tego że mogła zostać napisana jakaś głupota i tego nie widzę :)

int main () {	
	int n;
	double x, a, b, krok;
	double y, suma;
	printf("\n");
	printf("Podaj poczatek przedzialu: ");
	scanf("%lf", &a);
	printf("Podaj koniec przedzialu: ");   
	scanf("%lf", &b);
	printf("Podaj krok: ");
	scanf("%lf", &krok);
	printf("\n");
	{
	n=0;
	suma=1;
	y=1;
	while (fabs(y)>1e-20) {
          y=(-y*x*x)/( (n+1)*(n+2) );
          suma += y;
          n += 2;
		}
	
	}

	printf("   x   |   cos(x)   |   cos(x) Taylor  \n");
	printf("-------+------------|-------------------\n");
	for (x = a; x < b; x += krok)
		printf("%5.3f  |%8.3f    |%lf                   \n", x, cos(x), suma);
	    printf("%5.3f  |%8.3f       |%lf\n", b, cos(b), suma );
	printf("-------+------------|-------------------\n");
	printf("\n");
	return 0;
}
0

Zrób sobie z tego obliczania funkcje i używaj jej tak jak teraz używasz cos. Wywołanie wstawisz tam gdzie suma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1