Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych. Autor artykułu: mgr Jerzy Wałaszek, wersja1.0 |
©2011 mgr
Jerzy Wałaszek
|
Miejscem zerowym funkcji
xo jest miejscem zerowym wtedy i tylko wtedy, gdy f(xo) = 0 |
Uwaga: Często uczniowie (nawet ci lepsi)
mylą to proste pojęcie i twierdzą, iż miejsce zerowe to argument
|
Przykład:
Funkcja f(x) = 2x - 4 posiada miejsce zerowe dla xo = 2, ponieważ:
f(xo) | = 2xo - 4 |
f(2) | = 2 2 - 4 = 4 - 4 = 0 |
Miejsce zerowe często nazywamy pierwiastkiem funkcji.
Funkcja może posiadać więcej niż jeden pierwiastek:
Przykład:
Funkcja f(x) = x2 - 1 posiada dwa pierwiastki: xo = -1 oraz xo = 1, gdyż:
f(xo) | = (xo)2 - 1 |
f(-1) | = (-1)2 - 1 = 1 - 1 = 0 |
f(1) | = 12 - 1 = 1 - 1 = 0 |
Funkcja może posiadać nieskończenie wiele pierwiastków:
Przykład:
Funkcja f(x) = sin(x - 2) posiada pierwiastki dla każdego xo = kπ + 2, gdzie k = 0, ±1, ±2 ...
Graficznie miejsce zerowe funkcji możemy interpretować jako punkt przecięcia osi współrzędnych OX przez wykres funkcji:
Znajdowanie miejsc zerowych ma olbrzymie znaczenie w matematyce, fizyce, astronomii, technice itp. Dlatego już dawno temu matematycy opracowali wiele metod rozwiązywania tego zagadnienia. Zasadniczo istnieją dwa podejścia:
Mamy daną funkcję
1. | Funkcja Dla przykładu rozważmy prostą funkcję:
Ile wynosi wartość tej funkcji dla
|
2. | Funkcja
Funkcja w przedziale
Nieciągłość występuje w punkcie
|
3. | Funkcja
f(a) < f(xo) = 0 < f(b) lub f(a) > f(xo) = 0 > f(b) |
Gdy funkcja
Wyznaczamy punkt xo
jako środek przedziału
Obliczamy wartość funkcji w punkcie xo.
Sprawdzamy, czy
Jeśli nierówność jest spełniona, to xo
jest poszukiwaną wartością pierwiastka. Zwracamy wynik i kończymy algorytm.
W przeciwnym razie za nowy przedział poszukiwań pierwiastka przyjmujemy tą
połówkę
f() | – | funkcja, której pierwiastka poszukujemy |
xa | – | początek przedziału poszukiwań pierwiastka, xa R |
xb | – | koniec przedziału poszukiwań pierwiastka, xb R |
ε | – | dokładność porównania z zerem |
yo | – | wartość funkcji w punkcie xo |
ya | – | wartość funkcji w punkcie xa |
yb | – | wartość funkcji w punkcie xb |
K01: | ya ← f(xa) | ; obliczamy wartość funkcji na krańcu xa przedziału poszukiwań pierwiastka | |||
K02: | yb ← f(xb) | ; obliczamy wartość funkcji na krańcu xb przedziału poszukiwań pierwiastka | |||
K03: | Jeśli ya
yb > 0, to pisz "BRAK PIERWIASTKA" i zakończ |
; sprawdzamy warunek istnienia pierwiastka | |||
K04: |
|
; wyznaczamy środek przedziału | |||
K05: | yo ← f(xo) | ; obliczamy wartość funkcji w punkcie xo | |||
K06: | Jeśli |yo| < ε, to pisz xo i zakończ |
; sprawdzamy, czy xo jest poszukiwanym pierwiastkiem | |||
K07: | Jeśli ya
yb < 0, to xb ← xo yb ← yo inaczej xa ← xo ya ← yo |
; za nowy przedział przyjmujemy tę połówkę, w której funkcja zmienia znak | |||
K08: | Idź do K04 | ; kontynuujemy poszukiwanie pierwiastka |
Na podstawie powyższego algorytmu napisz odpowiedni program w języku C++.
Przykładowa funkcja do testów f(x) = x3(x + sin(x2 - 1) - 1) - 1. Pierwiastków należy poszukiwać w przedziałach <-1,0> i <1,2>.
Mamy daną funkcję
f(a)
< f(xo)
= 0 < f(b)
lub f(a)
> f(xo)
= 0 > f(b)
Gdy funkcja
W języku łacińskim regula falsi oznacza
fałszywą prostą. Ideą tej metody jest założenie, iż
funkcja w coraz mniejszych przedziałach wokół pierwiastka zaczyna przypominać
funkcję liniową. Skoro tak, to przybliżenie pierwiastka otrzymujemy prowadząc
linię prostą (sieczną) z punktów krańcowych przedziału.
Sieczna przecina oś OX
w punkcie
Wzór dla
W naszym przypadku postępujemy następująco: Kąt utworzą odpowiednie odcinki: pionowo FA = (a,0)-(a,f(a)) powiększony o odcinek FB = (b,0)-(b,-f(b)) poziomo XAB = (a,0)-(b,0) |
Prostymi równoległymi będzie cięciwa z punktów krańcowych przedziału, oraz ta sama cięciwa przesunięta pionowo w górę o długość odcinka FB.
Poniższy rysunek obrazuje otrzymaną sytuację:
Zgodnie z twierdzeniem Talesa mamy:
Jeśli podstawimy do tego wzoru długości odcinków:
FA = f(a)
Otrzymamy:
a dalej:
|
Ostatnie przekształcenie ma na celu otrzymanie wzoru o lepszej "zapamiętywalności". Mnożymy mianownik przez (-1), dzięki czemu staje się on spójny z licznikiem ułamka. Sam ułamek zmienia znak na minus.
Algorytm regula falsi jest bardzo podobny do opisanego w
poprzednim rozdziale algorytmu bisekcji.
Założenia wstępne dla badanej funkcji w obu algorytmach są identyczne. Różnią
się one sposobem wyznaczania punktu
W algorytmie regula falsi jest inaczej. Punk
Po wyznaczeniu przybliżonego pierwiastka postępowanie w obu
algorytmach jest w zasadzie takie samo. Sprawdzamy, czy wartość modułu różnicy
pomiędzy dwoma ostatnimi przybliżeniami pierwiastka jest mniejsza od zadanego
minimum. Jeśli tak, obliczenia kończymy zwracając
Obliczamy wartość funkcji w punkcie
f() | – | funkcja, której pierwiastka poszukujemy |
xa | – | początek przedziału poszukiwań pierwiastka, xa R |
xb | – | koniec przedziału poszukiwań pierwiastka, xb R |
ε | – | dokładność porównania z zerem |
yo | – | wartość funkcji w punkcie xo |
ya | – | wartość funkcji w punkcie xa |
yb | – | wartość funkcji w punkcie xb |
K01: | ya ← f(xa) | ; obliczamy wartość funkcji na krańcu xa przedziału poszukiwań pierwiastka | |||
K02: | yb ← f(xb) | ; obliczamy wartość funkcji na krańcu xb przedziału poszukiwań pierwiastka | |||
K03: | Jeśli ya
yb > 0, to pisz "BRAK PIERWIASTKA" i zakończ |
; sprawdzamy warunek istnienia pierwiastka | |||
K04: |
|
; wyznaczamy punkt przecięcia prostej z osią OX | |||
K05: | yo ← f(xo) | ; obliczamy wartość funkcji w punkcie xo | |||
K06: | Jeśli |yo| < ε, to pisz xo i zakończ |
; sprawdzamy, czy xo jest poszukiwanym pierwiastkiem | |||
K07: | Jeśli ya
yb < 0, to xb ← xo yb ← yo inaczej xa ← xo ya ← yo |
; za nowy przedział przyjmujemy tę połówkę, w której funkcja zmienia znak | |||
K08: | Idź do K04 | ; kontynuujemy poszukiwanie pierwiastka |
Na podstawie powyższego algorytmu napisz odpowiedni program w języku C++.
Przykładowa funkcja do testów f(x) = x3(x + sin(x2 - 1) - 1) - 1. Pierwiastków należy poszukiwać w przedziałach <-1,0> i <1,2>.
Na wysokości h umieszczono działo z lufą skierowaną poziomo. Z działa oddajemy strzał. Pocisk opuszcza lufę działa z prędkością V i uderza we wzgórze, którego zbocze zdefiniowane jest funkcją:
Dla danych h, V wyznaczyć punkt xo zderzenia pocisku ze wzgórzem. Pominąć wszelkie opory ruchu. Przyjąć stałe przyspieszenie grawitacyjne g = 9,81 [m/s2].
Jest to przypadek rzutu poziomego. Ruch odbywa się w dwóch kierunkach. W kierunku poziomym na pocisk nie działa żadna siła, zatem ruch jest jednostajny ze stałą prędkością V. W kierunku pionowym działa siła przyciągania grawitacyjnego Ziemi, zatem ruch jest jednostajnie przyspieszony. W trakcie ruchu pocisk obniża swoją wysokość hP. Z drugiej strony wzgórze wraz ze wzrostem x powiększa swoją wysokość hW. W pewnej odległości xo wysokość pocisku hP zrówna się z wysokością wzgórza hW, nastąpi zderzenie. Naszym zadaniem jest wyznaczenie tego punktu.
Aby rozwiązać to zadanie, musimy wyznaczyć wysokość wzgórza hW oraz wysokość pocisku hP w zależności od x.
Ponieważ wzgórze opisane jest funkcją, otrzymujemy bezpośrednio:
W kierunku pionowym pocisk wykonuje spadek swobodny, pokonując drogę:
Zatem jego wysokość obliczymy jako:
Czas ruchu t nie jest dany, lecz obliczymy go łatwo ze wzorów na drogę w kierunku poziomym:
Wzór na czas wstawiamy do wzoru na wysokość pocisku hP:
Z warunku:
Otrzymujemy funkcję:
Funkcja f(x) przyjmuje wartość 0 dla xo, w którym wysokość pocisku i wzgórza jest taka sama. Wartość xo znajdziemy metodą regula falsi. W metodzie tej musimy określić przedział poszukiwań pierwiastka. Dla naszego zadania będzie to przedział <a,b> zawierający punkt xo. Punkt a otrzymujemy bez liczenia:
Natomiast punkt b niech będzie odległością rzutu poziomego - czyli odległością, w jakiej pocisk przeciąłby oś OX, gdyby nie było wzgórza. Ponieważ wzgórze jest, to punkt xo pojawi się wcześniej. Punkt b to droga w kierunku poziomym, jaką pokona pocisk w czasie spadku swobodnego z wysokości h:
Na podstawie powyższych wzorów przekształć program z lekcji, tak aby rozwiązywał to zadanie.
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe