private void MirrorBlock_Click(object sender, EventArgs e) { try { ReadQR r = new ReadQR(); MatriX = r.Readr(path_in); Row = MatriX.GetUpperBound(0) + 1; Column = MatriX.Length / Row; QRdecomposition qr = new QRdecomposition(); qr.Reflections(MatriX); if (Row == Column) { alglib.rmatrixevd(MatriX, Row, 3, out wr, out wi, out vl, out vr); qr.Norm_Vecs(vr); } string sd = "Q" + "\r\n"; string sr = "R" + "\r\n"; string se = "QR" + "\r\n"; string ss = "Собственные числа" + "\r\n"; string sv = "Собственные векторы нормализованные" + "\r\n"; for (int t = 0; t < Row; t++) { for (int i = 0; i < Column; i++) { sd += qr.Q[t, i].ToString("0.0000") + " "; sr += qr.R[t, i].ToString("0.0000") + " "; se += qr.QR[t, i].ToString("0.0000") + " "; if ((Row == Column)) { if (t == i) { ss += wr[i].ToString("0.0000") + " " + sigint(wi[i]) + " " + wi[i].ToString("0.0000") + "i"; } sv += qr.nvecs[t, i].ToString("0.0000") + " "; } } sd += "\r\n"; sr += "\r\n"; se += "\r\n"; if (Row == Column) { ss += "\r\n"; sv += "\r\n"; } } if (Row != Column) { ss += "Не существуют для данной матрицы"; } MessageBox.Show(sd + sr + se + ss + sv, "Метод блочных отражений"); } catch (FileNotFoundException) { MessageBox.Show("Не найден входной файл", "Ошибка"); } catch (EndOfStreamException) { MessageBox.Show("Входной файл пуст", "Ошибка"); } catch (FormatException) { MessageBox.Show("Некорректные данные в файле", "Ошибка"); } catch (Exception exc) { MessageBox.Show(exc.Message, "Ошибка"); } }
//Открытие файлов private void OpenFile_Click(object sender, EventArgs e) { try { ReadQR qr = new ReadQR(); MatriX = qr.Readr(path_in); Row = MatriX.GetUpperBound(0) + 1; Column = MatriX.Length / Row; string info = ""; for (int a = 0; a < Row; a++) { for (int b = 0; b < Column; b++) { info += MatriX[a, b] + " "; } info += "\r\n"; } MessageBox.Show(info, "Исходная матрица А"); } catch (FileNotFoundException) { MessageBox.Show("Не найден входной файл.", "Ошибка"); } catch (EndOfStreamException) { MessageBox.Show("Файл пуст", "Ошибка"); } catch (FormatException exc) { MessageBox.Show(exc.Message, "Ошибка"); }; }