pierwiastek

Kategoria: Zagadnienia krolowej nauk.

Wersja archiwalna tematu "pierwiastek" z grupy pl.sci.matematyka



'Raf256' Rafal Maj
2 Sty 2002, 09:53

Witam,
mam bardzo proste zadanie (z inf.), tylko nie bardzo mogę zrozumieć jego
temat :-/ czy ktoś może mi np. podać mini przykład jak użyć poniższego
wzou do obliczenia np. pierwiastka stopnia 3-ciego z 64... tzn. nie
rozumiem w poniższym wzorze skąd się wzieła zmienna (?) 'n' i jak jej mam
użyć w obliczeniach

  Stosujac wzor iteracyjny na pierwiastek stopnia p z liczby A
                1                     A
      y(n+1) =  - ((p - 1) y(n) + ----------------- )
                p                   pow(y(n),(p - 1))
  gdzie y(0) = A, oraz "pow(x,y)" jest funkcja wyliczajaca wartosc
 "x do potegi y".
  obliczyc pierwiastki zadanego stopnia dla zadanej liczby rzeczywistej
  wiekszej od zera. W programie uzyj dyrektywy #include <math.h.

Andrzej Praszmo
2 Sty 2002, 10:15
Użytkownik 'Raf256' Rafal Maj <raf@go2.plw wiadomości do grup
dyskusyjnych napisał:Xns918AA24F0A6D0rfdfciasdsdj41@213.180.128.20...

Witam,
mam bardzo proste zadanie (z inf.), tylko nie bardzo mogę zrozumieć jego
temat :-/ czy ktoś może mi np. podać mini przykład jak użyć poniższego
wzou do obliczenia np. pierwiastka stopnia 3-ciego z 64... tzn. nie
rozumiem w poniższym wzorze skąd się wzieła zmienna (?) 'n' i jak jej mam
użyć w obliczeniach

  Stosujac wzor iteracyjny na pierwiastek stopnia p z liczby A
                1                     A
      y(n+1) =  - ((p - 1) y(n) + ----------------- )
                p                   pow(y(n),(p - 1))
  gdzie y(0) = A, oraz "pow(x,y)" jest funkcja wyliczajaca wartosc
 "x do potegi y".
  obliczyc pierwiastki zadanego stopnia dla zadanej liczby rzeczywistej
  wiekszej od zera. W programie uzyj dyrektywy #include <math.h.


Twoim problemem jest niezrozumienie pojęcia iteracja.

Jeżeli y(n) jest mniejszy od liczonego pierwiastka to
A/pow(y(n),p-1) jest wieksze (i odwrotnie)
Zatem wybierając y(n+1), czyli kolejne przybliżenie,
pomiędzy tymi wartościami (prawdopodobnie) zbliżamy się
do szukanej wartości.
Problemem jest zawsze jak wybierać kolejne wartości, aby
proces był zbieżny (ten problem masz rozwiązany).
Drugi problem to: kiedy skończyć - pozostał do rozwiązania.
Trzeci: y(0)=
Czwarty: jak "przyspieszyć" zbieżność.
Piąty:....

'Raf256' Rafal Maj
2 Sty 2002, 10:25
"Andrzej Praszmo" <a@poczta.onet.plwrote in
news:a0v866$lvc$1@news.onet.pl:

|   Stosujac wzor iteracyjny na pierwiastek stopnia p z liczby A
|                 1                     A
|       y(n+1) =  - ((p - 1) y(n) + ----------------- )
|                 p                   pow(y(n),(p - 1))
|   gdzie y(0) = A, oraz "pow(x,y)" jest funkcja wyliczajaca wartosc
|  "x do potegi y".
|   obliczyc pierwiastki zadanego stopnia dla zadanej liczby
|   rzeczywistej wiekszej od zera. W programie uzyj dyrektywy #include
Twoim problemem jest niezrozumienie pojęcia iteracja.
Jeżeli y(n) jest mniejszy od liczonego pierwiastka to
A/pow(y(n),p-1) jest wieksze (i odwrotnie)
Zatem wybierając y(n+1), czyli kolejne przybliżenie,
pomiędzy tymi wartościami (prawdopodobnie) zbliżamy się
do szukanej wartości.


[...]

ale czy ktoś może podać jakiś mini-przykład który ułatwił by zrozumienie
jak działa w/w algorytm ?

Andrzej Praszmo
2 Sty 2002, 10:38
Użytkownik 'Raf256' Rafal Maj <raf@go2.plw wiadomości do grup
dyskusyjnych napisał:Xns918AA7C6B8621rfdfciasdsdj41@213.180.128.20...
[...]

ale czy ktoś może podać jakiś mini-przykład który ułatwił by zrozumienie
jak działa w/w algorytm ?


Pierwiastek 3 stopnia z 64.
Masz kalkulator z pamięcią?
Na początku wpisz:
1 MC M+
Potem w kółko:
64 / MR / MR + MR + MR / 3 = MC M+
Na kalkulatorze masz kolejno po każdej linijce:
22
14.7107...
9.9057...
6.8212...
5.0059...
4.1886...
4.0083...
4.000017...

dzierzba
2 Sty 2002, 10:54

'Raf256' Rafal Maj wrote:
|   Stosujac wzor iteracyjny na pierwiastek stopnia p z liczby A
|                 1                     A
|       y(n+1) =  - ((p - 1) y(n) + ----------------- )
|                 p                   pow(y(n),(p - 1))
|   gdzie y(0) = A, oraz "pow(x,y)" jest funkcja wyliczajaca wartosc
|  "x do potegi y".
|   obliczyc pierwiastki zadanego stopnia dla zadanej liczby
|   rzeczywistej wiekszej od zera. W programie uzyj dyrektywy #include

ale czy ktoś może podać jakiś mini-przykład który ułatwił by zrozumienie
jak działa w/w algorytm ?


to chyba nie problem wziąć np. p=3 A=8 i policzyć
przy użyciu nawet kalkulatora w Windowsach kilka pierwszych przybliżeń ?

y(0)= 8 [tak jest we wzorze]
y(1)= 1/3(2*8+8/pow(8,2))=5,375 trochę lepiej...
y(2)= 1/3(2*5,375+8/pow(5,375, 2)) ~ 3,68 w przybliżeniu oczywiście,
ale zmierzamy w dobrą stronę
y(3) = 1/3(2*3,68 + 8/pow(3,68,2)) ~ 2,65 coraz cieplej
y(4) = 1/3(2*2,65 + 8/pow(2,65,2)) ~ 2,15 blisko, blisko...
y(5) = 1/3(2*2,15 + 8/pow(2,15,2)) ~ 2,01 no proszę, a to dopiero
piąta iteracja ;-)

bye,
dzierzba