|
|
Řá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> |
Napište funkci reseni(), která pro zadanou horní trojúhelníkovou matici
a vektor
vypočte řešení soustavy lineárních rovnic
Funkce reseni() přepisuje vstupní vektor (pravou stranu) vypočteným řešením
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
jsou všechny prvky pod hlavní diagonalou nulové, všechny prvky na hlavní diagonále jsou nenulové.
Řešení:
Příklad:
[ Zpět | C++ ]