FAV-ZCU/KMA NM/Poznámky.md

5.1 KiB
Raw Blame History

Nelineární rovnice

Předpokládáme, že

  1. reálná funkce f je spojitá pro x \in \langle a, b\rangle,
  2. f(a) \cdot f(b) < 0.

Potom existuje aspoň jedno řešení x rovnice f(x) = 0 na \langle a,b\rangle.

Metoda půlení intervalu

Máme interval \langle a,b\rangle, který budeme půlit. Vypočítáme funkční hodnotu f(s_{i}) v polovině intervalu.

Pokud má funkční hodnota f(s_{i}) stejné znaménko jako funkční hodnota f(a), změníme a = s_{i}, v opačném případě b = s_{i}.

  • zastavovací podmínka - velikost intervalu
  • výsledek je x = \frac{a+b}{2}
  • vždy konverguje, ale velmi pomalu

Metoda prosté iterace

Postup

  1. z rovnice vyjádříme některé x
    • x^5 - x = \ln(x+4) do formátu x_{k+1} = \sqrt[5]{ \ln(x_{k}+4) + x_{k} }
  2. určíme/dostaneme zadaný \epsilon a x_{0}
    • \epsilon = 0.01
    • x_{0} = 1
  3. dosazujeme hodnoty do rovnice, dokud nenastane zastavující podmínka
    • \vert x_{k} - x_{k-1} \vert < \epsilon
k x_k \vert x_{k} - x_{k-1}\vert
0 1 -
1 1,211460877 0,211460877
2 1,234081012 0,022620135
3 1,236396294 0,002315282

Postačující podmínky konvergence. Funkce \varphi na intervalu I = \langle a,b\rangle je spojitá a platí:

  • \forall x \in I : \varphi(x) \in I (funkce \varphi zobrazuje I do sebe)
  • \exists q \in \langle 0, 1) : \vert \varphi(x) - \varphi(y)\vert \leq q\vert x-y\vert \quad \forall x, y \in I (funkce \varphi je kontrakce)

Newtonova metoda

  • x_{0} = 1.236396294
    • z metody prosté iterace nebo zadáno
  • f(x) = x^5 - x - \ln(x+4)
    • vše převedeme na jednu stranu rovnice
  • f'(x) = 5x^4 - 1 - \frac{1}{x+4}
    • derivací funkce f(x) = x^5 - x - \ln(x+4)

Hodnotu poté x_{0} zpřesňujeme vzorcem x_{k+1} = x_{k} - \frac{f(x_{k})}{f'(x_{k})}

  • zastavovací podmínka \vert x_{k+1} x_k\vert < \epsilon nebo \vert f(x_k)\vert < \delta

Geometrický význam

  • také metoda tečen nebo metoda linearizace
  • tvoříme tečny funkce v bodech x_{k}
  • hodnota x_{k+1} je průsečíkem tečny s osou x

Modifikovaná Newtonova metoda

  • pokud se derivace moc nemění, můžeme místo f'(x_{k}) využívat f'(x_{0})
  • tečnou je pouze první přímka, ty následující jsou na ni kolmé

Metoda sečen

  • je i pro nediferencovatelné funkce
  • f'(x_{k}) nahradíme za \frac{f(x_{k}) - f(x_{k-1})}{x_{k}-x_{k-1}}
  • potřebujeme znát dvě počáteční hodnoty
  • další iterace x_{k+1} je průsečíkem sečny s osou x

Soustava lineárních rovnic

Jacobiova metoda

$$ A = \begin{bmatrix} 3 & 1 & 0 \ 1 & 4 & 0 \ 0 & 1 & 5 \end{bmatrix} \qquad b = \begin{bmatrix} 1 \ 2 \ 3 \end{bmatrix} \qquad x_{0} = \begin{bmatrix} 0 \ 0 \ 0 \end{bmatrix}

  1. kontrola diagonální dominance
    • \vert 3\vert > \vert 1\vert + \vert 0\vert
    • \vert 4\vert > \vert 1\vert + \vert 0\vert
    • \vert 5\vert > \vert 0\vert + \vert 1\vert
  2. sestavení rovnic a vyjádření x, y, z
    • 3x + y = 1
      • \to x = \frac{1}{3}(1 - y)
    • x + 4y = 2
      • \to y = \frac{1}{4}(2 - x)
    • y + 5z = 3
      • \to z = \frac{1}{5}(3 - y)
k 0. 1. 2. 3. 4.
x 0 0.333333333 0.166666667 0.194444444 0.180555556
y 0 0.5 0.416666667 0.458333333 0.451388889
z 0 0.6 0.5 0.516666667 0.508333333

Gauss-Seidelova metoda

Stejná, jako Jacobiova metoda, ale rovnou používáme s vypočítanými hodnotami.

  • provedeme výpočet pro x = \dots, takže už ve výpočtu y použijeme nové x

Sestavení rovnice

  • x^{(k+1)} = \frac{1}{3}(1 - y^{(k)})
  • y^{(k+1)} = \frac{1}{4}(2 - x^{(k+1)})
  • z^{(k+1)} = \frac{1}{5}(3 - y^{(k+1)})
k 0. 1. 2. 3.
x 0 0.333333333 0.194444444 0.18287037
y 0 0.416666667 0.451388889 0.454282407
z 0 0.516666667 0.509722222 0.509143519

Metoda SOR

Tato metoda vychází z GS metody, akorát navíc přidává relaxační koeficient \omega \in (0,2).

  • \omega = 1 - jedná se o GS metodu
  • \omega \in (0,1) - jedná se o metodu SUR
  • \omega \in (1,2) - jedná se o metodu SOR

Postup

  1. kontrola diagonální dominance
  2. sestavení rovnic GS metody
  3. přidání relaxačního koeficientu
    • x^{(k+1)} = \omega \cdot [\frac{1}{3}(1 - y^{(k)})] + (1 - \omega)x^{(k)}
    • y^{(k+1)} = \omega \cdot [\frac{1}{4}(2 - x^{(k+1)})] + (1 - \omega)y^{(k)}
    • z^{(k+1)} = \omega \cdot [\frac{1}{5}(3 - y^{(k+1)})] + (1 - \omega)z^{(k)}

Zvolíme \omega = 1.05, \epsilon = 0.01.

k 0. 1. 2.
x 0 0.35 0.18090625
y 0 0.433125 0.455855859
z 0 0.53904375 0.507318082