Mamy daną funkcję oraz jej pochodną . Wiemy, że funkcja ma jedno miejsce zerowe znajdujące się w przedziale .
Napisz program, który za pomocą metody stycznych obliczy przybliżoną wartość miejsca zerowego funkcji w danym przedziale i wypisze ją z dokładnością do trzeciego miejsca po przecinku (nie zaokrąglaj ostatniej cyfry).
Przetestuj swój program dla następujących danych:
Specyfikacja problemu:
Dane:
funkcja - funkcja , której miejsce zerowe należy obliczyć
pochodna - funkcja będąca pochodną funkcji
x1 - początek przedziału; liczba rzeczywista
x2 - koniec przedziału; liczba rzeczywista
Wynik:
wynik – przybliżona wartość miejsca zerowego funkcji; liczba rzeczywista
RH1gtHXyPFR8o
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. static double funkcja otwórz nawias okrągły double x zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. return x asterysk Math kropka sin otwórz nawias okrągły x zamknij nawias okrągły plus x asterysk x asterysk x minus 5 średnik.
Linia 4. zamknij nawias klamrowy.
Linia 6. static double pochodna otwórz nawias okrągły double x zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. return x asterysk Math kropka cos otwórz nawias okrągły x zamknij nawias okrągły plus Math kropka sin otwórz nawias okrągły x zamknij nawias okrągły plus 3 asterysk x asterysk x średnik.
Linia 8. zamknij nawias klamrowy.
Linia 10. static double metodaStycznych otwórz nawias okrągły double x0 przecinek double e zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. double xn przecinek xn1 znak równości x0 prawy ukośnik 2 średnik.
Linia 13. do otwórz nawias klamrowy.
Linia 14. xn znak równości xn1 średnik.
Linia 15. xn1 znak równości xn minus funkcja otwórz nawias okrągły xn zamknij nawias okrągły prawy ukośnik pochodna otwórz nawias okrągły xn zamknij nawias okrągły średnik.
Linia 16. zamknij nawias klamrowy while otwórz nawias okrągły Math kropka abs otwórz nawias okrągły xn1 minus xn zamknij nawias okrągły zamknij nawias ostrokątny e zamknij nawias okrągły średnik.
Linia 18. return xn1 średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. public static void main otwórz nawias okrągły String args otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. double x1 znak równości 1 średnik.
Linia 23. double x2 znak równości 2 średnik.
Linia 24. int przyblizenie znak równości otwórz nawias okrągły int zamknij nawias okrągły otwórz nawias okrągły metodaStycznych otwórz nawias okrągły otwórz nawias okrągły x1 plus x2 zamknij nawias okrągły prawy ukośnik 2 przecinek 0 kropka 0001 zamknij nawias okrągły asterysk 1000 zamknij nawias okrągły średnik.
Linia 25. double wynik znak równości przyblizenie prawy ukośnik 1000 kropka 0 średnik.
Linia 27. System kropka out kropka println otwórz nawias okrągły wynik zamknij nawias okrągły średnik.
Linia 28. zamknij nawias klamrowy.
Linia 29. zamknij nawias klamrowy.
21
Ćwiczenie 2
Zapoznaj się z wykresem funkcji i wykonaj polecenie.
RUCEZiiwiFAwy
Zastanów się, dlaczego w przedstawionym programie odnalezienie miejsca zerowego zajmuje tak wiele iteracji. Zmodyfikuj tylko parametr x1 w taki sposób, aby program wypisał „Sukces” oraz w następnej linijce wynik będący przybliżoną wartością z dokładnością do drugiego miejsca po przecinku (nie zaokrąglaj wyniku).
Specyfikacja problemu:
Dane:
f - funkcja, której miejsce zerowe należy obliczyć
fp - pochodna funkcji f
epsilon - dokładność rozwiązania; liczba rzeczywista
x1 - wstępne przybliżenie miejsca zerowego; liczba rzeczywista
Wynik:
program wypisuje na standardowe wyjście napis „Sukces” jeśli liczba iteracji jest mniejsza niż 10 lub „Liczba iteracji” oraz liczbę iteracji; w kolejnej linii powinien zostać wypisany wynik będący przybliżoną wartością, z dokładnością do drugiego miejsca po przecinku (bez zaokrąglania)
Przykładowe wyjście:
Linia 1. Sukces.
Linia 2. minus 1 kropka 07.
Rt8QQ242rJSTj
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static double f otwórz nawias okrągły double x zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. return x asterysk x asterysk x minus 4 asterysk x asterysk x plus x plus 7 średnik.
Linia 4. zamknij nawias klamrowy.
Linia 6. public static double fp otwórz nawias okrągły double x zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. return 3 asterysk x asterysk x minus 8 asterysk x plus 1 średnik.
Linia 8. zamknij nawias klamrowy.
Linia 10. public static double metodaStycznych otwórz nawias okrągły double x1 przecinek double epsilon zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. double x znak równości x1 średnik.
Linia 12. int i znak równości 0 średnik.
Linia 14. while otwórz nawias okrągły Math kropka abs otwórz nawias okrągły f otwórz nawias okrągły x zamknij nawias okrągły zamknij nawias okrągły zamknij nawias ostrokątny epsilon zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. x znak równości x minus f otwórz nawias okrągły x zamknij nawias okrągły prawy ukośnik fp otwórz nawias okrągły x zamknij nawias okrągły średnik.
Linia 16. i plus plus średnik.
Linia 17. zamknij nawias klamrowy.
Linia 19. if otwórz nawias okrągły i otwórz nawias ostrokątny 10 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 20. System kropka out kropka println otwórz nawias okrągły cudzysłów Sukces cudzysłów zamknij nawias okrągły średnik.
Linia 21. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 22. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba iteracji dwukropek cudzysłów plus i zamknij nawias okrągły średnik.
Linia 23. zamknij nawias klamrowy.
Linia 25. return x średnik.
Linia 26. zamknij nawias klamrowy.
Linia 28. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 29. prawy ukośnik prawy ukośnik Zmodyfikuj tylko tą linijkę dwukropek.
Linia 30. double x1 znak równości minus 1 średnik.
Linia 31. double epsilon znak równości 0 kropka 00001 średnik.
Linia 33. double wynik znak równości metodaStycznych otwórz nawias okrągły x1 przecinek epsilon zamknij nawias okrągły średnik.
Linia 34. int zaokraglenie znak równości otwórz nawias okrągły int zamknij nawias okrągły otwórz nawias okrągły wynik asterysk 100 zamknij nawias okrągły średnik.
Linia 35. System kropka out kropka println otwórz nawias okrągły zaokraglenie prawy ukośnik 100 kropka 0 zamknij nawias okrągły średnik.
Linia 36. zamknij nawias klamrowy.
Linia 37. zamknij nawias klamrowy.