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

Z GeoWikiCZ
Bez shrnutí editace
m (odkaz na wikipedii)
 
(Není zobrazeno 9 mezilehlých verzí od 3 dalších uživatelů.)
Řádek 1: Řádek 1:
'''Hornerovo schéma'''
;[http://en.wikipedia.org/wiki/Horner_scheme Hornerovo schéma]


Napište 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


<math>P_n(x) = a_n\cdot x^n + a_{n-1}\cdot x^{n-1} + \ldots +  
<math>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 </math>
               a_2\cdot x^2 + a_1\cdot x + a_0 </math>


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>
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 21: Řádek 21:
  double polynom(double x, const std::vector<double>& a);
  double polynom(double x, const std::vector<double>& a);


;příklad: <math>P_4(0.3) = 7\cdot 0.3^4 + 2\cdot 0.3^3 +  
Příklad: <math>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</math>
               5\cdot 0.3^2 + 2\cdot 0.3 + 9  = 10.1607</math>




[ [[C plus plus Bc.|Zpět]] | [[C plus plus Bc. 13 cpp|13]] ]
Dále napište funkci <tt>soucet(),</tt> která sčítá dva polynomy
 
<math>P_{\max~{q,r}}(x) = Q_q(x) + R_r(x)</math>
 
void soucet(const std::vector<double>& q, const std::vector<double>& r,
                  std::vector<double>& p);
 
[ [[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

Hornerovo schéma

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);

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