Metoda půlení intervalu

Popis metody

Tato metoda dostává jako vstup:

  • funkci f() = levá-strana-rovnice,
  • interval <xz; xk>, na jehož koncích mají hodnoty f(xz) a f(xk) opačná znaménka a na němž je f() spojitá,
  • číslo udávající požadovanou přesnost výpočtu.
Metoda pracuje tak, že:
  • vstupní interval postupně dělí na poloviny tak,
  • aby vždy pracovala s intervalem, na jehož koncích mají funkční hodnoty opačná znaménka;
  • výpočet ukončuje po nalezení kořene nebo po zkrácení intervalu pod požadovanou velikost přesnost výpočtu,
Podrobný popis postupu:
  • Máme interval <xz; xk>, na jehož koncích hodnoty f(xz) a f(xk) mají opačná znaménka.
  • Vypočteme číslo xs v polovině intervalu, které budeme považovat za přibližné řešení:
  • Zjistíme hodnotu f(xs).
  • Je-li tato hodnota rovna 0 jsme hotovi - nalezli jsme xs jako přesný kořen.
  • K číslu f(xs) vezmeme to z čísel f(xz) a f(xk), které má opačné znaménko.
  • Podle této dvojice určíme nový interval vyhovující metodě a označíme jej <xz; xk>. Jeho délka je poloviční oproti délce intervalu starého.
  • Jestliže délka nového intervalu je větší nebo rovna než požadovaná přesnost, jdeme na začátek výpočtu.
  • Jinak za kořen vezmeme poslední přibližné řešení xs.



Příklad

Najděte všechna x ∈ vyhovující podmínce x - sin(x) - 0,1 = 0. Přesnost, se kterou požadujeme kořen, je 0,001.

Řešení

  • Z rovnice vytvoříme funkci f(x) = x - sin(x) - 0,1, a nakreslíme její graf:
  • Z grafu je vidět, že funkce nabývá nulové hodnoty přibližně pro x = 0,85. Zvolíme si dvě hodnoty x tak, aby jejich hodnoty f(x) měly opačná znaménka. Vezměme například -0.9 a 1,1:
    • pro x = -0.9 dostaneme x - sin(x) - 0,1 = -0,9 + 0,783 - 0,1 = -0,217
    • pro x = 1,1 dostaneme x - sin(x) - 0,1 = 1,1 - 0,891 - 0,1 = 0,109
  • Funkce f(x) = x - sin(x) - 0,1 je všude spojitá, protože je součtem spojitých funkcí f1(x) = x, f2(x) = -sin(x) a f3(x) = -0,1.
  • Tím jsou splněny podmínky pro použití metody půlení intervalu, můžeme tedy začít počítat:
Za přibližné řešení vezmeme číslo v polovině intervalu <-0.9; 1,1>,
tedy xs = 0,1, a postupně počítáme:
xz xs xk f(xz) f(xs) f(xk)
-0.9 0,1 1,1 -0,217 -0,0998 0,109
0,1 0,6 1,1 -0,0998 -0,065 0,109
0,6 0,85 1,1 -0,065 -0,001 0,109
0,85 0,975 1,1 -0,001 -0,047 0,109
0,85 0,9125 0,975 -0,001 0,0215 -0,047
0,85 0,88125 0,9125 -0,001 0,00972 0,0215
0,85 0,865625 0,88125 -0,001 0,004124 0,00972
0,85 0,857813 0,865625 -0,001 0,001399 0,004124
0,85 0,853906 0,857813 -0,001 0,000054 0,001399
0,85 0,851953 0,853906 -0,001 -0,000615 0,000054
0,851953 0,852930 0,853906 -0,000615 -0,000281 0,000054
0,852930 0,853418 0,853906 -0,000281 nespočteno 0,000054
Délka intervalu na ose x je <0,852930; 0,853906> < 0,001.
0,001 je přesnost požadovaná v zadání úlohy.
Proto můžeme výpočet kořene ukončit s hodnotou xs = 0,853418.


Program pro výpočet kořene

Program je napsán v jazyku JavaScript, v jeho formuláři jsou předvyplněné hodnoty z předchozího příkladu: 

Zadejte vstupní data:

Levý okraj intervalu: x left
Pravý okraj intervalu: x right
Přesnost: p
Rovnice: 0

Po stisknutí tlačítka Spustit výpočet proběhne:
  • vykreslení grafu funkce levé strany rovnice,
  • řešení rovnice metodou půlení intervalu,
  • výpis výstupních hodnot.

Sorry, your browser does not support canvas.