MN03LAB: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przykry (dyskusja | edycje)
mNie podano opisu zmian
 
Przykry (dyskusja | edycje)
mNie podano opisu zmian
Linia 25: Linia 25:
programu w Octave, który wyświetla baseny zbieżności metody Newtona jak poniżej.
programu w Octave, który wyświetla baseny zbieżności metody Newtona jak poniżej.


{fraktal.png}{Basen zbiezności metody Newtona w okolicy początku układu
[[Image:fraktal.png ||thumb |right |400px |Basen zbiezności metody Newtona w okolicy początku układu
współrzędnych, dla równania <math>\displaystyle z^5-1=0</math>}
współrzędnych, dla równania <math>\displaystyle z^5-1=0</math>]]


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
Linia 130: Linia 130:
Wyjaśnieniem tego fenomenu jest zjawisko redukcji cyfr przy odejmowaniu.
Wyjaśnieniem tego fenomenu jest zjawisko redukcji cyfr przy odejmowaniu.


{bisekcjawblad.png}{Metoda bisekcji ma kłopoty, gdy funkcja zadana jest
[[Image:bisekcjawblad.png ||thumb |right |400px |Metoda bisekcji ma kłopoty, gdy funkcja zadana jest
wzorem D.}
wzorem D.]]
{bisekcjawresid.png}{Residuum też jest duże, gdy <math>\displaystyle f</math> zadana jest
[[Image:bisekcjawresid.png ||thumb |right |400px |Residuum też jest duże, gdy <math>\displaystyle f</math> zadana jest
wzorem D.}
wzorem D.]]


Jeśli chodzi o pewność... No cóż, sprawdziłaś, że działa w przypadkach, gdy
Jeśli chodzi o pewność... No cóż, sprawdziłaś, że działa w przypadkach, gdy

Wersja z 15:39, 26 sie 2006

Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi? poprawki

{Ćwiczenia: równania nieliniowe skalarne}

[Metoda Newtona może być zbieżna globalnie] Wykaż, że jeśli f jest rosnąca i wypukła na [a,b] oraz dla x*[a,b]f(x*)=0, to metoda Newtona startująca z x0>x* jest zbieżna.

Rozwiązanie

[Fraktale]

Ciekawy zbiór o charakterze fraktalnym powstaje w wyniku zastosowania metody Newtona do rozwiązania równania zn1=0 w dziedzinie zespolonej. Punkt z0=(x0,y0) należy do basenu zbiezności metody, jeśli metoda Newtona jest zeń zbieżna do (jakiegokolwiek) pierwiastka w/w równania. Kolor odpowiadający z0 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 jak poniżej.

Basen zbiezności metody Newtona w okolicy początku układu współrzędnych, dla równania z51=0
Wskazówka
Wskazówka

[Pierwiastkowanie] Niech a0. Aby wyznaczyć a, można skorzystać z metody Newtona dla równania x2=a. 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 a dla którego to nie będzie prawdą.

Wskazówka
Rozwiązanie

[Odwrotność bez dzielenia] Aby wyznaczyć 1/a dla a>0 bez dzielenia(!), można zastosować metodę Newtona do funkcji f(x)=1/xa. Pokaż, że na k-tym kroku iteracji,

|axk1|=|axk11|2.

Dla jakich x0 metoda będzie zbieżna do 1a, a dla jakich nie? Oceń, ile iteracji potrzeba do spełnienia warunku |xk1a||a|ϵ, gdy |x01a||a|γ<1,

Rozwiązanie

Zaimplementuj metodę bisekcji. Sprawdź, jak będzie działać m.in. dla funkcji

  1. f(x)=sin(x),
  2. f(x)=sin2(x),
  3. f(x)=(x1)5 (wzór A),
  4. f(x)=(x1)*(x44x3+6x24x+1) (wzór B),
  5. f(x)=(x2)13 (wzór C),
  6. f(x)=x1326*x12+312*x112288*x10+...8192 (wzór D),

gdy tolerancję błędu zadasz na poziomie 1010.

Jak wyjaśnić te wyniki? Czy możesz już być pewna, że masz dobrą implementację?

Rozwiązanie

Wskaż wszystkie wartości x0, dla jakich metoda Newtona będzie zbieżna do rozwiązania x* równania

arctan(x)=0.

Wyznacz wartość X0, z którego startując powinieneś dostać ciąg oscylujący X0,X0,. Sprawdź eksperymentalnie, czy tak jest rzeczywiście.

Wskazówka
Rozwiązanie