C++ Bc. 13: Porovnání verzí
Bez shrnutí editace |
m (odkaz na wikipedii) |
||
(Není zobrazeno 7 mezilehlých verzí od 3 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
;[http://en.wikipedia.org/wiki/Horner_scheme Hornerovo schéma] | |||
Napište dvě funkce. Funkci <tt>polynom()</tt>, která počítá pro zadaný argument <math>x</math> hodnotu polynomu | Napište dvě funkce. Funkci <tt>polynom()</tt>, která počítá pro zadaný argument <math>x</math> hodnotu polynomu | ||
Řádek 6: | Řádek 6: | ||
a_2\cdot x^2 + a_1\cdot x + a_0 </math> | a_2\cdot x^2 + a_1\cdot x + a_0 </math> | ||
Pro výpočet použijte ''Hornerovo schéma | Pro výpočet použijte ''Hornerovo schéma'', které postupným uzávorkováním umožňuje výpočet polynomu bez explicitního výpočtu mocnin <math>x^i.</math> | ||
Například polynom | Například polynom | ||
Řádek 30: | Řádek 30: | ||
void soucet(const std::vector<double>& q, const std::vector<double>& r, | void soucet(const std::vector<double>& q, const std::vector<double>& r, | ||
std::vector<double>& p); | |||
[ [[C | [ [[C++ Bc.|Zpět]] | [[C++ Bc. 13 cpp|C++]] | [[C++ Bc. 14|Další]] ] | ||
[[Kategorie:Programování]] |
Aktuální verze z 10. 10. 2006, 13:15
Napište dvě funkce. Funkci polynom(), která počítá pro zadaný argument Nelze pochopit (SVG, alternativně PNG (MathML lze povolit skrze prohlížečový plugin): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle x} hodnotu polynomu
Nelze pochopit (SVG, alternativně PNG (MathML lze povolit skrze prohlížečový plugin): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P_n(x) = a_n\cdot x^n + a_{n-1}\cdot x^{n-1} + \ldots + a_2\cdot x^2 + a_1\cdot x + a_0 }
Pro výpočet použijte Hornerovo schéma, které postupným uzávorkováním umožňuje výpočet polynomu bez explicitního výpočtu mocnin Nelze pochopit (SVG, alternativně PNG (MathML lze povolit skrze prohlížečový plugin): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle x^i.}
Například polynom
Nelze pochopit (SVG, alternativně PNG (MathML lze povolit skrze prohlížečový plugin): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P_4(x) = 7\cdot x^4 + 2\cdot x^3 + 5\cdot x^2 + 2\cdot x + 9 }
můžeme zapsat jako
Nelze pochopit (SVG, alternativně PNG (MathML lze povolit skrze prohlížečový plugin): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P_4(x) = (((7\cdot x + 2)\cdot x + 5)\cdot x + 2)\cdot x + 9 }
Pro ukládání koeficientů polynomu použijte standardní kontejner std::vector<double>
double polynom(double x, const std::vector<double>& a);
Příklad: Nelze pochopit (SVG, alternativně PNG (MathML lze povolit skrze prohlížečový plugin): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P_4(0.3) = 7\cdot 0.3^4 + 2\cdot 0.3^3 + 5\cdot 0.3^2 + 2\cdot 0.3 + 9 = 10.1607}
Dále napište funkci soucet(), která sčítá dva polynomy
Nelze pochopit (SVG, alternativně PNG (MathML lze povolit skrze prohlížečový plugin): Neplatná odpověď („Math extension cannot connect to Restbase.“) od serveru „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P_{\max~{q,r}}(x) = Q_q(x) + R_r(x)}
void soucet(const std::vector<double>& q, const std::vector<double>& r, std::vector<double>& p);