C++ Bc. 29: Porovnání verzí

Z GeoWikiCZ
m (plus plus -> ++)
mBez shrnutí editace
 
(Nejsou zobrazeny 3 mezilehlé verze od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
'''Metoda tětiv (regula falsi)'''
;[http://en.wikipedia.org/wiki/Regula_falsi Metoda tětiv (regula falsi)]


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


Numerická iterační metoda ''regula falsi'' hledá jeden z kořenů rovnice <math>f(x)=0</math> tak, že křivku <math>f(x)</math> nahradí v daném intervalu přímkou a její průsečík s osou <math>x</math> je <math>i</math>-tým odhadem kořene  
Numerická iterační metoda ''regula falsi'' hledá jeden z kořenů rovnice <math>f(x)=0</math> tak, že křivku <math>f(x)</math> nahradí v daném intervalu přímkou a její průsečík s osou <math>x</math> je <math>i</math>-tým odhadem kořene  
Řádek 7: Řádek 7:
<math>x = {a f(b) - b f(a) \over f(b) - f(a)} </math>
<math>x = {a f(b) - b f(a) \over f(b) - f(a)} </math>


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


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


Napište funkci, která implementuje metodu tětiv. Parametry jsou ukazatel na funkci, hodnoty intervalu <math>(a, b)</math> a volitelná hodnota tolerance. Funkce kontroluje, zda je splněna podmínka <math>f(a)f(b) < 0</math> a vyvolá výjimku [[C_plus_plus_Bc._Chyba|Chyba]], pokud je zadán interval ve kterém není zaručena existence kořene.
Napište funkci, která implementuje metodu tětiv. Parametry jsou ukazatel na funkci, hodnoty intervalu <math>(a, b)</math> a volitelná hodnota tolerance. Funkce kontroluje, zda je splněna podmínka <math>f(a)f(b) < 0</math> a vyvolá výjimku [[C++ Bc. Chyba|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'''
'''Příklad'''
Řádek 23: Řádek 26:


[ [[C++ Bc.|Zpět]] | [[C++ Bc. 29 cpp | C++ ]] | [[C++ Bc. 30|Další]] ]
[ [[C++ Bc.|Zpět]] | [[C++ Bc. 29 cpp | C++ ]] | [[C++ Bc. 30|Další]] ]
[[Kategorie:Programování]]

Aktuální verze z 10. 10. 2006, 14:16

Metoda tětiv (regula falsi)

Pro spojitou funkci , která v krajních bodech intervalu nabývá různých znamének, tj. platí , má v tomto intervalu rovnice alespoň jeden reálný kořen.

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

Podle znaménka nahradí jeden z krajních bodů intervalu odhadem .

Pro zadanou toleranci t je výpočet ukončen, pokud je nebo .

Napište funkci, která implementuje metodu tětiv. Parametry jsou ukazatel na funkci, hodnoty intervalu a volitelná hodnota tolerance. Funkce kontroluje, zda je splněna podmínka 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 .

Aproximace korene x = 0.42604    f(x) = -1.52884e-13

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