MN02LAB: Różnice pomiędzy wersjami
m Zastępowanie tekstu – „\displaystyle ” na „” |
m Zastępowanie tekstu – „.↵</math>” na „</math>” |
||
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika) | |||
Linia 78: | Linia 78: | ||
Nasza iteracja, którą chcemy zaprogramować, to | Nasza iteracja, którą chcemy zaprogramować, to | ||
<center><math> | <center><math> | ||
x_{k+1} = \frac{1}{2}\left( x_k + \frac{a}{x_k}\right) | x_{k+1} = \frac{1}{2}\left( x_k + \frac{a}{x_k}\right)</math></center> | ||
</math></center> | |||
Jest to, znana już w starożytności, <strong>metoda Herona</strong>. Teraz jest jasne, dlaczego zbiega tak szybko do <math>\sqrt{a}</math>. | Jest to, znana już w starożytności, <strong>metoda Herona</strong>. Teraz jest jasne, dlaczego zbiega tak szybko do <math>\sqrt{a}</math>. | ||
Linia 103: | Linia 102: | ||
do funkcji <math>f(x) = 1/x - a</math>. Pokaż, że na <math>k</math>-tym kroku iteracji, | do funkcji <math>f(x) = 1/x - a</math>. Pokaż, że na <math>k</math>-tym kroku iteracji, | ||
<center><math> | <center><math> | ||
|ax_k - 1| = |ax_{k-1} - 1|^2 | |ax_k - 1| = |ax_{k-1} - 1|^2</math></center> | ||
</math></center> | |||
Dla jakich <math>x_0</math> metoda będzie zbieżna do <math>\frac{1}{a}</math>, a dla jakich nie? | Dla jakich <math>x_0</math> metoda będzie zbieżna do <math>\frac{1}{a}</math>, a dla jakich nie? | ||
Linia 114: | Linia 112: | ||
Proste ćwiczenie z [[Analiza_matematyczna_1|analizy matematycznej]]. Warunkiem zbieżności jest oczywiście (ze względu na | Proste ćwiczenie z [[Analiza_matematyczna_1|analizy matematycznej]]. Warunkiem zbieżności jest oczywiście (ze względu na | ||
równość w wyrażeniu na błąd iteracji powyżej) <math>|ax_0 - 1| < 1</math>, to znaczy | równość w wyrażeniu na błąd iteracji powyżej) <math>|ax_0 - 1| < 1</math>, to znaczy | ||
<center><math>0 < x_0 < \frac{2}{a} | <center><math>0 < x_0 < \frac{2}{a}</math>.</center> | ||
</div></div></div> | </div></div></div> | ||
Linia 166: | Linia 164: | ||
do rozwiązania <math>x^*</math> równania | do rozwiązania <math>x^*</math> równania | ||
<center><math>\arctan(x) = 0 | <center><math>\arctan(x) = 0</math></center> | ||
</math></center> | |||
Wyznacz wartość <math>X_0</math>, z którego startując powinieneś dostać ciąg oscylujący <math>X_0, -X_0,\ldots</math>. | Wyznacz wartość <math>X_0</math>, z którego startując powinieneś dostać ciąg oscylujący <math>X_0, -X_0,\ldots</math>. | ||
Linia 175: | Linia 172: | ||
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Aby znaleźć graniczne <math>X_0</math>, czyli takie, dla którego dostaniesz oscylacje <math>X_0, -X_0,\ldots</math>, musisz rozwiązać równanie nieliniowe: | <div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Aby znaleźć graniczne <math>X_0</math>, czyli takie, dla którego dostaniesz oscylacje <math>X_0, -X_0,\ldots</math>, musisz rozwiązać równanie nieliniowe: | ||
<center><math>-X_0 = X_0 - \frac{\arctan(X_0)}{\frac{1}{1+X_0^2}} | <center><math>-X_0 = X_0 - \frac{\arctan(X_0)}{\frac{1}{1+X_0^2}}</math></center> | ||
</math></center> | |||
To łatwe. | To łatwe. |
Aktualna wersja na dzień 21:35, 11 wrz 2023
Równania nieliniowe skalarne
<<< Powrót do strony głównej przedmiotu Metody numeryczne
Oglądaj wskazówki i rozwiązania __SHOWALL__
Ukryj wskazówki i rozwiązania __HIDEALL__
Ćwiczenie: Metoda Newtona może być zbieżna globalnie
Wykaż, że jeśli jest rosnąca i wypukła na oraz dla , to metoda Newtona startująca z jest zbieżna.
Ćwiczenie: Fraktale
Ciekawy zbiór o charakterze fraktalnym powstaje w wyniku zastosowania metody Newtona do rozwiązania równania w dziedzinie zespolonej. Punkt należy do basenu zbieżności metody, jeśli startująca z niego metoda Newtona jest zbieżna do (jakiegokolwiek) pierwiastka w/w równania. Kolor odpowiadający jest określany na podstawie liczby iteracji potrzebnych metodzie do zbieżności.
Zupełnie miłym (i estetycznie wartościowym) doświadczeniem jest napisanie programu w Octave, który wyświetla baseny zbieżności metody Newtona, takie jak na rysunku poniżej.

Ćwiczenie: Pierwiastkowanie
Niech . Aby wyznaczyć , można skorzystać z metody Newtona dla równania . Zaprogramuj tę metodę i sprawdź, jak wiele dokładnych cyfr wyniku dostajesz w kolejnych krokach. Czy to możliwe, by liczba dokładnych cyfr znaczących z grubsza podwajała się na każdej iteracji? Wskaż takie , dla którego to nie będzie prawdą.
Ćwiczenie: Odwrotność bez dzielenia
Aby wyznaczyć dla bez dzielenia(!), można zastosować metodę Newtona do funkcji . Pokaż, że na -tym kroku iteracji,
Dla jakich metoda będzie zbieżna do , a dla jakich nie? Oceń, ile iteracji potrzeba do spełnienia warunku , gdy ,
Ćwiczenie
Zaimplementuj metodę bisekcji. Sprawdź, jak będzie działać m.in. dla funkcji
- ,
- ,
- (wzór A),
- (wzór B),
- (wzór C),
- (wzór D),
gdy tolerancję błędu zadasz na poziomie .


Jak wyjaśnić te wyniki? Czy możesz już być pewien, że masz dobrą implementację?
Ćwiczenie
Wskaż wszystkie wartości , dla jakich metoda Newtona będzie zbieżna do rozwiązania równania
Wyznacz wartość , z którego startując powinieneś dostać ciąg oscylujący . Sprawdź eksperymentalnie, czy tak jest rzeczywiście.