示例#1
0
 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, "Ошибка"); }
 }
示例#2
0
 //Открытие файлов
 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, "Ошибка"); };
 }