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

Z GeoWikiCZ
mBez shrnutí editace
(chyba v indexech sumeace ve vzorečku)
 
(Není zobrazeno 12 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
Napište funkci <tt>reseni()</tt>, která pro zadanou horní trojúhelníkovou matici <math>\mathbf T</math> a vektor <math>\mathbf b</math> vypočte řešení soustavy lineárních rovnic <math>\mathbf {T x  = b.}</math> Funkce <tt>reseni()</tt> přepisuje vstupní vektor (pravou stranu) vypočteným řešením <math>x</math> a testuje všechny možné chyby (nepřípustné dimenze a nulu na hlavní diagonále).  
;Řešení soustavy lineárních rovnic
 
Napište funkci <tt>reseni()</tt>, která pro zadanou horní trojúhelníkovou matici <math>\mathbf T</math> a vektor <math>\mathbf b</math> vypočte řešení soustavy lineárních rovnic <math>\mathbf {T x  = b}</math>. Funkce <tt>reseni()</tt> přepisuje vstupní vektor (pravou stranu) vypočteným řešením <math>x</math> a testuje všechny možné chyby (nepřípustné dimenze a nulu na hlavní diagonále).  


  struct Chyba
  struct Chyba
  {
  {
     template <typename T> Chyba(T t) : text(t) {}
     Chyba(std::string t) : text(t) {}
   
   
     std::string text;
     std::string text;
Řádek 17: Řádek 19:
   0    &  0    & t_{33} & \ldots  & t_{3n}  \\
   0    &  0    & t_{33} & \ldots  & t_{3n}  \\
         &        &        & \ldots  &          \\
         &        &        & \ldots  &          \\
   0    &  0    & \ldots & t_{n-1,1} & t_{n-1,n} \\
   0    &  0    & \ldots & t_{n-1,n-1} & t_{n-1,n} \\
   0    &  0    & \ldots &    0    & t_{nn}     
   0    &  0    & \ldots &    0    & t_{nn}     
\end{pmatrix}\mathbf x =
\end{pmatrix}\mathbf x =
Řádek 26: Řádek 28:




'''Řešení:'''
'''Řešení (zpětná substituce):'''


<math>x_{ n } =  b_n/t_{nn}\,</math>
<math>x_{ n } =  b_n/t_{nn}\,</math>


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


'''Příklad:'''
'''Příklad:'''
Řádek 56: Řádek 57:




[ [[C plus plus Bc.|Zpět]] | [[C plus plus Bc. 4 cpp |C++]] ]
[ [[C++ Bc.|Zpět]] | [[C++ Bc. 4 cpp |C++]] | [[C++ Bc. 5|Další]] ]
 
[[Kategorie:Programování]]

Aktuální verze z 3. 12. 2008, 15:44

Řešení soustavy lineárních rovnic

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
{
   Chyba(std::string 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í (zpětná substituce):

Příklad:


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