Algorytm Newtona Raphsona Obliczanie przyblionej wartoci pierwiastka kwadratowego
Algorytm Newtona - Raphsona Obliczanie przybliżonej wartości pierwiastka kwadratowego
Interpretacja geometryczna pierwiastka kwadratowego n Poszukujemy długości boku kwadratu o zadanym polu, poprzez jego przybliżanie kolejnymi prostokątami o tym samym polu. p p
n Ponieważ dana figura ma być kwadratem więc wartości x i p/x powinny być sobie równe. Jeśli nie są, to szukane rozwiązanie jest położone między nimi, czyli możemy przyjąć, że jest to średnia arytmetyczna tych dwóch wielkości. A zatem możemy wyznaczyć kolejne przybliżenia pierwiastka.
Mamy za zadanie obliczyć wartość pierwiastka kwadratowego z liczby dodatniej z zadaną dokładnością n n Nie możemy jednak posłużyć się funkcją standardową SQRT. Musimy sami podać przepis na obliczenie pierwiastka. n Na szczęście jeden z takich przepisów został podany ponad 300 lat temu przez Newtona i Raphsona
Przepis Newtona - Raphsona n Jako pierwsze przybliżenie bierzemy np. 1, a jako kolejne – wyrażenie: średnią arytmetyczną z poprzedniego przybliżenia i liczby podzielonej przez poprzednie przybliżenie. n n n Kiedy mamy skończyć ciąg obliczeń? Wtedy, gdy różnica między kolejnymi przybliżeniami będzie nie większa niż podana dokładność. Więc do pracy!!!
Wzór na ciąg kolejnych przybliżeń ma postać:
Lista kroków algorytmu 1. 2. 3. 4. Pobieramy wartość liczby podpierwiastkowej p oraz dokładność obliczeń Eps Przyjmujemy pierwsze przybliżenie poszukiwanego rozwiązania np. x=1 Jeśli |x – p/x|<=Eps to idziemy do 6. Obliczamy kolejne przybliżenie x: = (x+p/x)/2
Lista kroków c. d. 5. 6. 7. Przechodzimy do 3. Wypisujemy wartość x. Koniec
A teraz schemat blokowy START Pierwsze przybliżenie przyjmijmy równe 1 Wprowadź liczbę p oraz dokładność Eps p, Eps x: =1 T N |x-p/x|<=Eps x: =(x+p/x)/2 Warunek pętli while…. . do p>0 N Podałeś złą liczbę podpierwiastkową T x STOP Podaj p>=0
Pętla while ……. . do…… n n n Dlaczego jej użycie jest tu poprawne? Konstrukcja while…do…. służy do opisywania iteracji ze sprawdzeniem warunku na początku. A tak właśnie jest w naszym schemacie.
Program w Pascalu program Metoda. Newtona. Raphsona; {Program oblicza przybliżoną wartość pierwiastka kwadratowego z dowolnej liczby dodatniej. Jest to algorytm Newtona - Raphsona} {$APPTYPE CONSOLE} uses Sys. Utils; var Eps: real; {dokładność} p: real; {liczba podpierwiastkowa} x: real; {kolejne przybliżenie} begin { TODO -o. User -c. Console Main : Insert code here } x: =1; write('Podaj dokładność obliczeń, Eps= '); readln(Eps); write('Podaj wartość liczby podpierwiastkowej, p= '); readln(p);
Program w Pascalu c. d. if p>0 then begin while abs(x-p/x)>Eps do x: =((x+p/x)/2); writeln('Pierwiastek kwadratowy z liczby ', p: 6: 6, ' wynosi: ', x: 6: 6) end else writeln('Liczba podpierwiastkowa nie może być ujemna!-Popraw'); writeln('Wciśnij klawisz ENTER' : 60); readln; end.
Pogram w Excelu
Dziękuję za obejrzenie prezentacji Opracowała: Anna Ogórek Strona główna
- Slides: 14