rozwiniecie w szereg funkcji arctan, program w C
-
- Użytkownik
- Posty: 63
- Rejestracja: 18 sty 2009, o 21:53
- Płeć: Mężczyzna
- Podziękował: 37 razy
- Pomógł: 5 razy
rozwiniecie w szereg funkcji arctan, program w C
Prosze o pomoc w napisaniu tego programu, siedze nad tym juz pare dni, lecz moje umiejetnosci i zasob wiedzy nie pozwalaja mi na rozwiazanie tego zadania. Bede niezmiernie wdzieczny za pomoc.
Zadanie:
Rozwinięcie w szereg Maclaurina funkcji arctan(x) dane jest następującą formułą:
\(\displaystyle{ arctan(x)= \sum_{n=0}^{ \infty } (-1)^{n} \frac{x ^{2n+1} }{2n+1}}\)
Oblicz liczbę π(pi) z dokładnością do k miejsc po kropce dziesiętnej ( k<10 – parametr
wczytaj z klawiatury) stosując rozwinięcie wokół punktu x=1 .
Zadanie:
Rozwinięcie w szereg Maclaurina funkcji arctan(x) dane jest następującą formułą:
\(\displaystyle{ arctan(x)= \sum_{n=0}^{ \infty } (-1)^{n} \frac{x ^{2n+1} }{2n+1}}\)
Oblicz liczbę π(pi) z dokładnością do k miejsc po kropce dziesiętnej ( k<10 – parametr
wczytaj z klawiatury) stosując rozwinięcie wokół punktu x=1 .
-
- Użytkownik
- Posty: 63
- Rejestracja: 18 sty 2009, o 21:53
- Płeć: Mężczyzna
- Podziękował: 37 razy
- Pomógł: 5 razy
rozwiniecie w szereg funkcji arctan, program w C
Nie potrafie tego rozwiazac, na zajeciach robilismy dotychczas sortowanie i napisalismy dwie funkcje pokazujace czy dana wartosc jest: cyfra, litera, mala litera, duza litera, itp. Na podstawie moich notatek z cwiczen nie umiem napisac tej funkcji. Szukam jakiegos przykladu,podobnego zadania, aby miec jakis punkt odniesienia. Sam nie mam pomyslu na rozwiazanie tego zadania.
Pozdrawiam.
Pozdrawiam.
-
- Użytkownik
- Posty: 735
- Rejestracja: 7 lis 2005, o 23:56
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 2 razy
- Pomógł: 133 razy
rozwiniecie w szereg funkcji arctan, program w C
Podobne masz: obliczyć wartość sumy:
\(\displaystyle{ \sum\limits_{n=1}^{10}\frac{1}{n}}\)
to wtedy:
Zastanów się, co trzeba zmienić, żeby obliczyć Twój szereg
\(\displaystyle{ \sum\limits_{n=1}^{10}\frac{1}{n}}\)
to wtedy:
Kod: Zaznacz cały
float suma = 0; // zeby sie poczatek zgadzal
for(int i = 1; i <= 10; i++)
suma += 1.0/i;
-
- Użytkownik
- Posty: 63
- Rejestracja: 18 sty 2009, o 21:53
- Płeć: Mężczyzna
- Podziękował: 37 razy
- Pomógł: 5 razy
rozwiniecie w szereg funkcji arctan, program w C
Chodzi o to:
Nie za bardzo rozumiem tego polecenia (o co chodzi z ta liczba π(pi), arctan(x) ma byc rowny π(pi) tak?) i niewiem jak kontrolowac parametr k:
Oblicz liczbę π(pi) z dokładnością do k miejsc po kropce dziesiętnej ( k<10 – parametr
wczytaj z klawiatury) stosując rozwinięcie wokół punktu x=1 .
Kod: Zaznacz cały
int i;
float suma = 0; // zeby sie poczatek zgadzal
for(i = 0; i <= 10; i++)
suma += pow(-1,i)*(pow(x-1,2*i+1))/(2*i+1);
printf("%lf",suma);
Oblicz liczbę π(pi) z dokładnością do k miejsc po kropce dziesiętnej ( k<10 – parametr
wczytaj z klawiatury) stosując rozwinięcie wokół punktu x=1 .
- Szemek
- Użytkownik
- Posty: 4819
- Rejestracja: 10 paź 2006, o 23:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 43 razy
- Pomógł: 1407 razy
rozwiniecie w szereg funkcji arctan, program w C
\(\displaystyle{ \arctan 1 = \frac{\pi}{4}}\), bo \(\displaystyle{ \tg \frac{\pi}{4} = 1}\)
Podaję kod, jak policzyć sumę \(\displaystyle{ n}\) - wyrazów tego szeregu
Zastanów się jak dokonać kontroli precyzji.
Podaję kod, jak policzyć sumę \(\displaystyle{ n}\) - wyrazów tego szeregu
Ukryta treść:
-
- Użytkownik
- Posty: 63
- Rejestracja: 18 sty 2009, o 21:53
- Płeć: Mężczyzna
- Podziękował: 37 razy
- Pomógł: 5 razy
rozwiniecie w szereg funkcji arctan, program w C
Ma to wygladac w ten sposob:
Kod: Zaznacz cały
petla{
if (k == warunek na dana liczbe miejsc po przewcinku)
break;
}
printf("wynik: %lg",&wynik);
-
- Użytkownik
- Posty: 735
- Rejestracja: 7 lis 2005, o 23:56
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 2 razy
- Pomógł: 133 razy
rozwiniecie w szereg funkcji arctan, program w C
Poszukaj sobie na necie o rozwinięciu funkcji w szereg (choćby wpisanie "szereg taylora" na wikipedii). Tam jest też oszacowanie błędu, prosty wzór (szukaj reszty w postaci Lagrange'a).
-
- Użytkownik
- Posty: 63
- Rejestracja: 18 sty 2009, o 21:53
- Płeć: Mężczyzna
- Podziękował: 37 razy
- Pomógł: 5 razy
rozwiniecie w szereg funkcji arctan, program w C
Nie wiem jak moge porownywac wynik, aby petla zakonczyla sie z dokladnoscia do k miejsc po przecinku. Czy musze obliczac do tego celu reszte? Czy mozna to zapisac w prostszy sposob?
Np. Czy mozna porownywac wynik ze stala M_PI zapisana w bibliotece <math.h>, tylko nie wiem jak mam wprowadzic ten parametr k aby porownanie odbywalo sie do danej liczby po przecinku.
Np. Czy mozna porownywac wynik ze stala M_PI zapisana w bibliotece <math.h>, tylko nie wiem jak mam wprowadzic ten parametr k aby porownanie odbywalo sie do danej liczby po przecinku.
-
- Użytkownik
- Posty: 63
- Rejestracja: 18 sty 2009, o 21:53
- Płeć: Mężczyzna
- Podziękował: 37 razy
- Pomógł: 5 razy
rozwiniecie w szereg funkcji arctan, program w C
Dobra dzieki, a powiedz mi jak juz bede mial to reszte to jak ja bede mogl porownac, bo to jest dla mnie ciagle zagadka?
Jak mam wykorzystac parametr k w porownywaniu (Jak mam zapisac ta potrzebna dokladnosc z parametrem k)??
Jak mam wykorzystac parametr k w porownywaniu (Jak mam zapisac ta potrzebna dokladnosc z parametrem k)??
-
- Użytkownik
- Posty: 63
- Rejestracja: 18 sty 2009, o 21:53
- Płeć: Mężczyzna
- Podziękował: 37 razy
- Pomógł: 5 razy
rozwiniecie w szereg funkcji arctan, program w C
Udalo mi sie napisac taki kod, nie wiem czy jest on poprawny. Nie udalo mi sie napisac reszty w postaci Lagrange'a, mam nadzieje ze wartosc reszty obliczonej w ten sposob rowniez jest poprawna. Bede wdzieczny za sprawdzenie i poprawienie bledow. Pozdrawiam.
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n=1000000000,i,a=1,k;
do{
scanf("%d", &k);
fflush(stdin);
}while(k>=10);
double suma = 0.0,precyzja=pow(10,-k),reszta;
for(i=0; i<n; i++)
{
suma += (double) a / ((double) (2*i+1));
a = -a;
if(suma*4.0<=M_PI)
reszta = M_PI- suma*4.0;
else
reszta = suma*4.0- M_PI;
if(precyzja > reszta)
break;
}
printf("%1.9lf", 4.0*suma);
printf("\n%1.9lf", M_PI);
printf("\n%1.9lf", reszta);
printf("\n%1.9lf", precyzja);
system("pause");
}