Metoda stycznych – założenia, cechy, działanie

Podczas rozwiązywania niektórych problemów matematycznych możemy  stosować algorytmy numerycznealgorytm numerycznyalgorytmy numeryczne, czyli wykorzystujące operacje na liczbach. Jednym z nich jest metoda stycznych – algorytm wyszukiwania miejsc zerowych funkcji z pewną dokładnością.

W algorytmie przyjmujemy następujące założenia:

  • W przedziale [a, b] funkcji f(x) (przedział poszukiwań miejsca zerowego) znajduje się jeden pierwiastekpierwiastek funkcjipierwiastek. Dodatkowo funkcja w tym przedziale jest określona i ciągła.

  • PochodnapochodnaPochodna funkcji f(x) w ustalonym przedziale [a, b] musi być różna od zera.

  • Funkcja f(x) na końcach przedziału przyjmuje różne znaki.

  • Pierwsza i druga pochodna w przedziale [a, b] mają takie same znaki.

Specyfikacja problemu:

Dane:

  • Ex – graniczna wartość błędu bezwzględnegobłąd bezwzględnybłędu bezwzględnego wyznaczanego miejsca zerowego, po której osiągnięciu uznajemy uzyskane rozwiązanie za końcowe; liczba rzeczywista dodatnia

  • Ey – dokładność porównywana z otrzymywanymi przybliżeniami miejsca zerowego – jej osiągnięcie (spełnienie warunku, że wyznaczony punkt jest od niej mniejszy lub jej równy) oznacza uznanie uzyskanego rozwiązania za końcowe; liczba rzeczywista dodatnia

  • x1 – wartość, od której rozpoczniemy poszukiwanie miejsca zerowego w zadanym przedziale; liczba rzeczywista z przedziału a, b

Wynik:

  • x2 – liczba rzeczywista z przedziału a, b; przybliżona wartość miejsca zerowego funkcji

Działanie metody

Rozpoczynamy od wyboru punktu startowego xIndeks dolny 1 (często oznaczanego również jako xIndeks dolny 0), z którego wyznaczamy stycznąstycznastyczną do wykresu funkcji f(x). Styczna do wykresu funkcji f(x) w punkcie x to pochodna tej funkcji – oznaczamy ją jako df(x).

Następnie wyznaczamy kolejny punkt: xIndeks dolny 2, będący miejscem przecięcia stycznej z osią OX.

W kolejnym kroku sprawdzamy, czy wartość funkcji w punkcie xIndeks dolny 2 spełnia przynajmniej jeden z podanych warunków:

  • wartość funkcji w punkcie xIndeks dolny 2 osiągnie założoną dokładność Ey,

  • różnica między kolejnymi przybliżeniami będzie dostatecznie mała – osiągnie założoną wartość błędu bezwzględnego Ex.

Jeżeli tak, to xIndeks dolny 2 jest rozwiązaniem, czyli przybliżonym miejscem zerowym funkcji. W przeciwnym razie xIndeks dolny 2 staje się punktem startowym xIndeks dolny 1 i przedstawione czynności są powtarzane, aż do spełnienia wyróżnionych warunków.

Kolejne przybliżenia (pierwiastki) wyznaczane są na podstawie następującego wzoru:

x2 = x1 f(x1)f(x1)
Ważne!

Należy pamiętać, że istotną cechą opisanej metody jest brak gwarancji zwrócenia rozwiązania problemu, np. gdy punkt startowy znajduje się zbyt daleko od szukanego pierwiastka.

W takiej sytuacji pomocne może być ustalenie dodatkowego warunku zakończenia wykonywania algorytmu, np. poprzez ograniczenie maksymalnej liczby dozwolonych iteracji.

Przykład 1

Metodę stycznych przetestujemy na następującej funkcji:

f ( x ) = 7 x 4 + 0 , 12 x 2 3 , 4 x 0 , 7
R1VvqX2kAneWO
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Operować będziemy na przedziale  [ 0 , 5 ,   3 ] , a za punkt startowy przyjmiemy x 1 = 1. Miejsca zerowego będziemy poszukiwać do momentu osiągnięcia dokładności  E y = 0 , 05 (na potrzeby przykładu ograniczymy się jedynie do tego warunku).

Wyznaczamy styczną do funkcji w podanym punkcie oraz wyliczamy x 2 .

R1eagpyQxTyGC

Analizując graficzną interpretację uzyskanych rezultatów, możemy zauważyć, że otrzymany punkt ( x 2 0 , 878) znajduje się stosunkowo blisko poszukiwanego rozwiązania – wartość funkcji f ( x 2 ) 0 , 57. Będziemy jednak kontynuować wykonywanie kolejnych kroków algorytmu (f ( x 2 ) > E y ). Za punkt x 1 przyjmujemy uzyskany punkt x 2 i powtarzamy cały proces.

R13lNzFLVzkmz

Po przeprowadzonych operacjach wartość funkcji w obliczonym punkcie x 2 0 , 842 wynosi około 0,04. Oznacza to, że osiągnięta została założona dokładność i odnalezione rozwiązanie przyjmujemy za końcowe.

W podanym przykładzie stosunkowo szybko uzyskaliśmy zadowalający rezultat (spełniający ustalone założenia), ponieważ przyjęty punkt startowy położony był blisko rzeczywistego miejsca zerowego analizowanej funkcji. W wielu przypadkach może być jednak konieczne wykonanie znacznie większej liczby iteracji algorytmu przed wyznaczeniem satysfakcjonującego rozwiązania.

Zbieżność

Wraz z liczbą iteracji błąd maleje kwadratowo, czego widocznym efektem jest zbliżanie się do szukanego miejsca zerowego – algorytm wyznaczania przybliżonej wartości miejsca zerowego funkcji charakteryzuje się więc zbieżnościązbieżnośćzbieżnością kwadratową. Jest to bardzo szybka zbieżność, jednak nie zawsze musi ona zachodzić – w przypadku, gdy ustalony punkt startowy jest daleko od poszukiwanego rozwiązania, opisywana metoda może charakteryzować się rozbieżnością. Oznacza to, że z każdą iteracją algorytmu będziemy oddalać się od miejsca zerowego. Ponadto, obliczenie pochodnych z niektórych funkcji może być problematyczne. W związku z tym metodę stycznych najczęściej stosuje się przy funkcjach wielomianowychfunkcja wielomianowafunkcjach wielomianowych.

Pseudokod

  1. Wprowadzamy wartość błędu bezwzględnego (Ex) oraz dokładność (Ey), których osiągnięcie zakończy dalsze poszukiwania miejsca zerowego (a zarazem uzna ostatni uzyskany wynik za końcowy i satysfakcjonujący).

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią.
  1. Ustalamy, od jakiej wartości rozpoczniemy przeszukiwanie (x1) – może to być dowolna wartość zawierająca się w przedziale [a, b].

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą.
  1. Definiujemy funkcję metodaStycznych, która zwróci przybliżoną wartość miejsca zerowego funkcji.

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły.
  1. Do kolejnej wartości x (x1) przypisujemy poprzednią (x2).

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły. Linia 6. x2 ← x1.
  1. Obliczamy następne możliwe miejsce zerowe – w tym celu zapisujemy kolejne przybliżenie z poprzedniej iteracji pętli (x1) do zmiennej x2 przechowującej poprzednią sprawdzaną wartość.

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły. Linia 6. x2 ← x1. Linia 7. wykonuj dwukropek. Linia 8. x1 ← x2.
  1. Ustalamy wartość argumentu funkcji dla punktu przecięcia stycznej do funkcji i osi OX.

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły. Linia 6. x2 ← x1. Linia 7. wykonuj dwukropek. Linia 8. x1 ← x2. Linia 9. x2 ← x1 minus funkcja otwórz nawias okrągły x1 zamknij nawias okrągły prawy ukośnik pochodna otwórz nawias okrągły x1 zamknij nawias okrągły.
  1. Sprawdzamy warunek, czy uzyskane przybliżenie osiągnęło założoną dokładność (Ey) lub czy bezwzględna różnica pomiędzy punktami x2x1 jest mniejsza bądź równa błędowi Ex. Jeżeli choć jeden z tych warunków zostanie spełniony, przerywamy działanie pętli.

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły. Linia 6. x2 ← x1. Linia 7. wykonuj dwukropek. Linia 8. x1 ← x2. Linia 9. x2 ← x1 minus funkcja otwórz nawias okrągły x1 zamknij nawias okrągły prawy ukośnik pochodna otwórz nawias okrągły x1 zamknij nawias okrągły. Linia 10. jeżeli bezwzględna otwórz nawias okrągły x2 minus x1 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ex lub funkcja otwórz nawias okrągły x2 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ey dwukropek. Linia 11. przerwij pętlę.
  1. Na koniec działania funkcji metodaStycznych() zwracamy przybliżoną wartość znalezionego miejsca zerowego

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły. Linia 6. x2 ← x1. Linia 7. wykonuj dwukropek. Linia 8. x1 ← x2. Linia 9. x2 ← x1 minus funkcja otwórz nawias okrągły x1 zamknij nawias okrągły prawy ukośnik pochodna otwórz nawias okrągły x1 zamknij nawias okrągły. Linia 10. jeżeli bezwzględna otwórz nawias okrągły x2 minus x1 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ex lub funkcja otwórz nawias okrągły x2 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ey dwukropek. Linia 11. przerwij pętlę. Linia 12. zwróć x2.
  1. Definiujemy funkcję zwracającą wartość bezwzględną z wybranej wartości.

Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły. Linia 6. x2 ← x1. Linia 7. wykonuj dwukropek. Linia 8. x1 ← x2. Linia 9. x2 ← x1 minus funkcja otwórz nawias okrągły x1 zamknij nawias okrągły prawy ukośnik pochodna otwórz nawias okrągły x1 zamknij nawias okrągły. Linia 10. jeżeli bezwzględna otwórz nawias okrągły x2 minus x1 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ex lub funkcja otwórz nawias okrągły x2 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ey dwukropek. Linia 11. przerwij pętlę. Linia 12. zwróć x2. Linia 14. funkcja bezwzględna otwórz nawias okrągły wartość zamknij nawias okrągły. Linia 15. jeżeli wartość zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 16. zwróć wartość. Linia 17. w przeciwnym razie dwukropek. Linia 18. zwróć wartość asterysk otwórz nawias okrągły minus 1 zamknij nawias okrągły.
  1. Wartość bezwzględna zmienia ujemne wartości w dodatnie, natomiast dla nieujemnych wartość pozostaje niezmienna.

  2. Na końcu definiujemy funkcje funkcja(x) i pochodna(x), które zwrócą wartość funkcji oraz pochodnej w wybranym punkcie x. Przyjmiemy operowanie na następującej, przykładowej funkcji:

f ( x ) = 7 x 4 + 0 , 12 x 2 3 , 4 x 0 , 7
Linia 1. Ex ← wprowadź liczbę rzeczywistą dodatnią. Linia 2. Ey ← wprowadź liczbę rzeczywistą dodatnią. Linia 3. x1 ← wprowadź liczbę rzeczywistą. Linia 5. funkcja metodaStycznych otwórz nawias okrągły x1 przecinek Ex przecinek Ey zamknij nawias okrągły. Linia 6. x2 ← x1. Linia 7. wykonuj dwukropek. Linia 8. x1 ← x2. Linia 9. x2 ← x1 minus funkcja otwórz nawias okrągły x1 zamknij nawias okrągły prawy ukośnik pochodna otwórz nawias okrągły x1 zamknij nawias okrągły. Linia 10. jeżeli bezwzględna otwórz nawias okrągły x2 minus x1 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ex lub funkcja otwórz nawias okrągły x2 zamknij nawias okrągły otwórz nawias ostrokątny znak równości Ey dwukropek. Linia 11. przerwij pętlę. Linia 12. zwróć x2. Linia 14. funkcja bezwzględna otwórz nawias okrągły wartość zamknij nawias okrągły. Linia 15. jeżeli wartość zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 16. zwróć wartość. Linia 17. w przeciwnym razie dwukropek. Linia 18. zwróć wartość asterysk otwórz nawias okrągły minus 1 zamknij nawias okrągły. Linia 20. funkcja funkcja otwórz nawias okrągły x zamknij nawias okrągły. Linia 21. zwróć 7 asterysk otwórz nawias okrągły x asterysk x asterysk x asterysk x zamknij nawias okrągły plus 0 kropka 12 asterysk otwórz nawias okrągły x asterysk x zamknij nawias okrągły minus 3 kropka 4 asterysk x minus 0 kropka 7. Linia 23. funkcja pochodna otwórz nawias okrągły x zamknij nawias okrągły. Linia 24. zwróć 28 asterysk otwórz nawias okrągły x asterysk x asterysk x zamknij nawias okrągły plus 0 kropka 24 asterysk x minus 3 kropka 4.

Wyznaczanie pierwiastka kwadratowego na podstawie metody stycznych

Metoda stycznych pozwala na wyznaczenie pierwiastka kwadratowego. Z materiału Obliczanie przybliżonej wartości pierwiastka kwadratowego z liczby nieujemnejPaUc6Sc9bObliczanie przybliżonej wartości pierwiastka kwadratowego z liczby nieujemnej dowiesz się, w jaki sposób wyznaczyć taki pierwiastek.

Dla zainteresowanych

E‑materiały, które przybliżą ci najważniejsze pojęcia matematyczne, jakie pojawiają się w tym e‑materiale:

Słownik

algorytm numeryczny
algorytm numeryczny

metoda rozwiązywania problemów matematycznych za pomocą operacji na liczbach

błąd bezwzględny
błąd bezwzględny

bezwzględna różnica pomiędzy dokładną wartością a uzyskanym (np. w wyniku obliczeń lub pomiarów) jej przybliżeniem

funkcja wielomianowa
funkcja wielomianowa

funkcja wyrażana przez wielomian, czyli sumę co najmniej dwóch jednomianówjednomianjednomianów

jednomian
jednomian

iloczyn litery oznaczającej zmienną oraz liczby (nazywanej stałą)

pierwiastek funkcji
pierwiastek funkcji

inaczej miejsce zerowe funkcji, czyli argument, dla którego wartość funkcji wynosi zero

pochodna
pochodna

miara szybkości, z jaką zmieniają się wartości funkcji; w ujęciu geometrycznym pochodną stanowi styczna do rozpatrywanej funkcji w ustalonym punkcie

styczna
styczna

linia prosta mająca jeden punkt wspólny z linią krzywą, np. wartością funkcji w punkcie, nieprzecinająca linii krzywej

zbieżność
zbieżność

zmierzanie do pewnej docelowej wartości granicznej wraz ze zwiększaniem się liczby iteracji