C++ Bc. 29

Z GeoWikiCZ
Přejít na: navigace, hledání
Metoda tětiv (regula falsi)

Pro spojitou funkci f(x), která v krajních bodech intervalu (a, b) nabývá různých znamének, tj. platí f(a)f(b) < 0, má v tomto intervalu rovnice f(x)=0 alespoň jeden reálný kořen.

Numerická iterační metoda regula falsi hledá jeden z kořenů rovnice f(x)=0 tak, že křivku f(x) nahradí v daném intervalu přímkou a její průsečík s osou x je i-tým odhadem kořene

x = {a f(b) - b f(a) \over f(b) - f(a)}

Podle znaménka f(x) nahradí jeden z krajních bodů intervalu (a, b) odhadem x.

Pro zadanou toleranci t je výpočet ukončen, pokud je |a - b| <   t nebo |f(x)|<t.

Napište funkci, která implementuje metodu tětiv. Parametry jsou ukazatel na funkci, hodnoty intervalu (a, b) a volitelná hodnota tolerance. Funkce kontroluje, zda je splněna podmínka f(a)f(b) < 0 a vyvolá výjimku Chyba, pokud je zadán interval ve kterém není zaručena existence kořene.

typedef double (*Funkce)(double);
double tetivy(Funkce f, double a, double b, double tol=1e-12);

Příklad

Odhad jednoho z kořenů funkce y = \sin(4x^2 - x - 0.3).

Aproximace korene x = 0.42604    f(x) = -1.52884e-13
C plus plus Bc. 29.png

[ Zpět | C++ | Další ]