Skip to content

Instantly share code, notes, and snippets.

@dmitrybubyakin
Created March 19, 2015 13:14
Show Gist options
  • Save dmitrybubyakin/207e740906f96979812f to your computer and use it in GitHub Desktop.
Save dmitrybubyakin/207e740906f96979812f to your computer and use it in GitHub Desktop.
//В CPP файле поменяй это
void Lab::printres()
{
if (!data)return;//если где-то ошибка - выход
cout << "Исходная матрицы :" << endl;//выводим результаты
printm(m);//выводим матрицу
printf("Первое собственное значение = %0.6f\n", L1);
printf("Второе собственное значение = %0.6f\n", L2);
cout << "Полученный вектор :" << endl;
printv(h);//вектор
printCheck();
}
//И добавь это
void Lab::printCheck()
{
double *Au = multvm(h, m);
double *Yu = new double[n];
for (int i = 0; i < n; i++)
Yu[i] = h[i] * L1;
cout << "Ah = Lh" << endl;
cout << "Ah :" << endl;
printv(Au);
cout << "Lh :" << endl;
printv(Yu);
delete[] Au;
delete[] Yu;
}
//В заголовочном
class Lab
{
double **m;//матрица
double *h;//собственный вектор
double L1, L2;//собственные значения
int n;//размер матрицы
bool data;//проверка на то, что данные успешно считались из файла
bool check(string, int);//проверка корректности файла
void printv(double*);//печать вектора
void printm(double**);//печать матрицы
void normalizev(double*);//нормализация вектора
double normv(double*);//первая норма
void printerr(int);//вывод ошибок
double multvv(double*, double*);//скаляр
double* multvm(double*,double**);//умножение матрицы на вектор
bool stop(double, double);//проверка условия выхода
double lambda1();//первое собственное число
double lambda2();//второе собственное число
void printCheck();////////////////////////////////////////////ЭТО ДОПИШИ///////////////////
public:
Lab(string,int);//конструктор
bool good();//проверка что данные считаны из файла
void printres();//вывод результата
void solve();//решение
~Lab();//деструктор
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment