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

Z GeoWikiCZ
m (preklep, \, v math)
mBez shrnutí editace
Řádek 32: Řádek 32:
<math>x_{n-1} = (b_{n-1} - t_{ n }x_{ n })/t_{n-1}\,</math>
<math>x_{n-1} = (b_{n-1} - t_{ n }x_{ n })/t_{n-1}\,</math>


<math>x_{n-2} = (b_{n-2} - t_{n-1}x_{n-1} - t_{ n }x_{ n })/t_{n-1}\,</math>
<math>x_{n-2} = (b_{n-2} - t_{n-1}x_{n-1} - t_{ n }x_{ n })/t_{n-2}\,</math>


<math>x_{n-k} = (b_{n-k} - \sum^1_{j=n-k-1} t_{j}x_{j})/t_{n-k}\,</math>
<math>x_{n-k} = (b_{n-k} - \sum^1_{j=n-k-1} t_{j}x_{j})/t_{n-k}\,</math>

Verze z 19. 3. 2006, 11:46

Napište funkci reseni(), která pro zadanou horní trojúhelníkovou matici 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 \mathbf T} a vektor 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 \mathbf b} vypočte řešení soustavy lineárních rovnic 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 \mathbf {T x = b.}} Funkce reseni() přepisuje vstupní vektor (pravou stranu) vypočteným řešením 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} a testuje všechny možné chyby (nepřípustné dimenze a nulu na hlavní diagonále).

struct Chyba
{
   template <typename T> Chyba(T t) : text(t) {}

   std::string text;
};

void reseni(const GNU_gama::Mat<>& U, GNU_gama::Vec<>& x);

V horní trojúhelníkové matici 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 \mathbf T} jsou všechny prvky pod hlavní diagonalou nulové, všechny prvky na hlavní diagonále jsou nenulové.

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 \begin{pmatrix} t_{11} & t_{12} & t_{13} & \ldots & t_{1n} \\ 0 & t_{22} & t_{23} & \ldots & t_{2n} \\ 0 & 0 & t_{33} & \ldots & t_{3n} \\ & & & \ldots & \\ 0 & 0 & \ldots & t_{n-1,1} & t_{n-1,n} \\ 0 & 0 & \ldots & 0 & t_{nn} \end{pmatrix}\mathbf x = \begin{pmatrix} b_1 \\ b_2 \\ \vdots \\ b_{n-1} \\ b_n \end{pmatrix} }


Řešení:

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_{ n } = b_n/t_{nn}\,}

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_{n-1} = (b_{n-1} - t_{ n }x_{ n })/t_{n-1}\,}

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_{n-2} = (b_{n-2} - t_{n-1}x_{n-1} - t_{ n }x_{ n })/t_{n-2}\,}

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_{n-k} = (b_{n-k} - \sum^1_{j=n-k-1} t_{j}x_{j})/t_{n-k}\,}


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 \begin{pmatrix} 3 & 0 & 3 & 4 & 1\\ 0 & 1 & 4 & 2 & 1\\ 0 & 0 & 1 & 0 & 2\\ 0 & 0 & 0 & 2 & 6\\ 0 & 0 & 0 & 0 & 3 \end{pmatrix}\mathbf x = \begin{pmatrix} 33 \\ 27 \\ 13 \\ 38 \\ 15 \end{pmatrix},\qquad \mathbf x = \begin{pmatrix} 1 \\ 2 \\ 3 \\ 4 \\ 5 \end{pmatrix}\qquad }


[ Zpět | C++ ]