C++ Bc. 29

Z GeoWikiCZ

Metoda tětiv (regula falsi)

Pro spojitou funkci Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle f(x)} , která v krajních bodech intervalu Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (a, b)} nabývá různých znamének, tj. platí Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle f(a)f(b) < 0,} má v tomto intervalu rovnice Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle f(x)=0} alespoň jeden reálný kořen.

Numerická iterační metoda regula falsi hledá jeden z kořenů rovnice Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle f(x)=0} tak, že křivku Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle f(x)} nahradí v daném intervalu přímkou a její průsečík s osou Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle x} je Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle i} -tým odhadem kořene. Podle znaménka Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle f(x)} nahradí jeden z krajních bodů intervalu Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (a, b)} odhadem Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle x.}

Pro zadanou toleranci t je výpočet ukončen, pokud je Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle |a - b| < t} nebo Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle |f(x)|<t} .

Napište funkci, která implementuje metodu tětiv. Parametry jsou ukazatel na funkci, hodnoty intervalu Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (a, b)} a volitelná hodnota tolerance. Funkce kontroluje, zda je splněna podmínka Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle f(a)f(b) < 0} a vyvolá výjimku Chyba, pokud je zadán interval ve kterém není zaručena existence kořene.

Příklad

Odhad jednoho z kořenů funkce Nelze pochopit (SVG (MathML lze aktivovat pomocí doplňku prohlížeče): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle y = \sin(4x^2 - x - 0.3)} .

Aproximace korene x = -0.810961    f(x) = 3.84105e-12

[ Zpět | C++ ]