[C] dwumian newtona i szereg nieskończony

Tomix91
Użytkownik
Użytkownik
Posty: 175
Rejestracja: 8 sty 2009, o 19:12
Płeć: Mężczyzna
Lokalizacja: Stalowa Wola
Podziękował: 26 razy
Pomógł: 12 razy

[C] dwumian newtona i szereg nieskończony

Post autor: Tomix91 »

Witam !
Mam do zrobienia projekt (treść dana przez wykładowce) który będzie liczył sumę takiego szeregu przy danym \(\displaystyle{ x}\) i \(\displaystyle{ eps}\)
\(\displaystyle{ (1+x) ^{ \frac{1}{2} } =\sum_{ i=0 }^{ \infty } { \frac{1}{2} \choose i} \cdot x ^{i} =1+ \frac{1}{2} \cdot x- \frac{1}{8} \cdot x^{2}+ \frac{1}{16} \cdot x^{3}...}\) gdzie \(\displaystyle{ x \in (-1,1)}\)
Mam kilka pytań po pierwsze czy nie ma błędu w samym szeregu ? (Czy "n" w dwumianie nie powinno być całkowite ). Może ktoś zna ten szereg i wzór poprawny ? Co to jest ten eps ( wiem że przybliżenie ale jak je zastosować w programie) ?
Xitami

[C] dwumian newtona i szereg nieskończony

Post autor: Xitami »

\(\displaystyle{ \sqrt{1+x}=1
+ \frac{1}{2} x
- \frac{1}{8} x^2
+ \frac{1}{16} x^3
- \frac{5}{128} x^4
+ \frac{7}{256} x^5
- \frac{21}{1024} x^6
+ \frac{33}{2048} x^7
+ \dots\\\\
{n\choose i}=\frac{n\cdot(n-1)\dots \cdot (n-i+1)}{i!}}\)

n nie musi być całkowite

Kod: Zaznacz cały

int main(void) {
	double a,s,x,j,eps; int i;
	
	x=0.11; eps=0.0001;

	s=a=i=1; j=0.5;
	while( fabs(a)>eps )
		s += a *= -j--*x/i++;	
	printf("1-s^2 %+0.10f
", 1-s*s);
	printf("x     %+0.10f
", x);
	printf("eps   %+0.10f
", eps);
	printf("a     %+0.10f
", a);
	printf("iter. %2d    
", i);}
Tomix91
Użytkownik
Użytkownik
Posty: 175
Rejestracja: 8 sty 2009, o 19:12
Płeć: Mężczyzna
Lokalizacja: Stalowa Wola
Podziękował: 26 razy
Pomógł: 12 razy

[C] dwumian newtona i szereg nieskończony

Post autor: Tomix91 »

Dzięki ale nie rozumiem jeszcze tego warunku "while( fabs(a)>eps )" dlaczego pętla ma taki warunek ?
Xitami

[C] dwumian newtona i szereg nieskończony

Post autor: Xitami »

zrobiłem tak bom głąb i nie potrafiłem inaczej.
mam szczęście bo szereg zbiega się całkiem szybko i po organoleptycznych badaniach wyszło, że tak jest mniej a raczej więcej OK

-- 6 grudnia 2011, 09:08 --

nie nie było OK, bo gdy x zbliża się do promienia wynik jest do d...
a przecie jak byk widać co należy sprawdzać

Kod: Zaznacz cały

   do  s += a *= -j--*x/i++;
   while( fabs(1-s*s-x)>eps );
uf głąb żem, ale nie do końca

jak w nieedytowalnym już poście choćby wskazać błąd?
ODPOWIEDZ