Programovací jazyk C++ cvičení - příklad práce s maticemi a vektory
[ Zpět na plán cvičení - knihovna matvec ]
Příklad několika základních operací s maticemi a vektory.
#include <iostream>
#include <matvec/matvec.h> // 1
using namespace GNU_gama; // 3
int main()
{
GNU_gama::Mat<> T; // 2
Mat<> U; // 4
Mat<> A(3,2); // 5
Mat<> B(2,2); // 6
A = // 7
1.1, 2.4,
3.2, 4.5,
5.3, 6.6;
B = 0.221, 0.331, 0.441, 0.551;
std::cout << A << B;
Mat<> C = A*B;
std::cout << C;
Mat<> D = trans(C)*C;
std::cout << D << inv(D);
Vec<> b(2); // 8
b = 1, 2;
std::cout << trans(b);
Vec<> x = inv(D)*b;
std::cout << x << "\n????\n"
<< b-D*x;
// soucet dvou vektoru
Vec<> z(x.dim());
for (int i=1; i<= z.dim(); i++)
{
z(i) = b(i) + x(i);
}
std::cout << "z = " <<z << " kontrola =" << b+x-z;
// soucin matice*vektor : w = D*z;
Vec<> w(D.rows());
for (int r=1; r<=w.dim(); r++) // cyklus pro vsechny radky
{
double sum=0;
for (int s=1; s<=D.cols(); s++)
{
sum += D(r,s)*z(s);
}
w(r) = sum;
}
std::cout << w << "\nkontrola " << w - D*z;
}