Skip to content

myyeh2/Docs_2A

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

以上的數學式的證明並不難,舉二個實例加以説明。

【實例一】

using System;
using Matrix_0; 

namespace ConsoleApp3
{
    internal class Program
    {
        static void Main(string[] args)
        {

double[,] Ap = { {4, -2, -2}, {-2, -4, 4}, {-4, 2, 8} };
ReMatrix A = new ReMatrix(Ap); 

EIG eig = new EIG(A); 
ReMatrix Q = eig.MatrixQ; 
Console.Write("\nQ : \n{0}\n", new PR(Q)); 

ReMatrix D = eig.MatrixD;
Console.Write("\nD: \n{0}\n", new PR(D));  

        }
    }
}
/*  執行結果  
Q :
  0.37030     0.20177      0.82439
 -0.29682     0.97534      0.09119
 -0.88021    -0.08948      0.55863

D:
 10.35719     0.00000      0.00000
  0.00000    -4.78071      0.00000
  0.00000     0.00000      2.42352
*/

【實例二】

using System;
using Matrix_0; 

namespace ConsoleApp3
{
    internal class Program
    {
        static void Main(string[] args)
        {

double[,] Ap = { {4, -2, 12}, {-2, -4, 4}, {-4, 2, 8} };
ReMatrix A = new ReMatrix(Ap); 

EIG eig = new EIG(A); 
CxMatrix Q = eig.CxMatrixQ; 
Console.Write("\nQ : \n{0}\n", new PR(Q)); 

CxMatrix D = eig.CxMatrixD;
Console.Write("\nD: \n{0}\n", new PR(D));  

// A = Q * D * Qi ; 複數相乘的結果雖然是複數,但其虛數值為零,
// 故轉換(cast)為實數矩陣,矩陣B與原來輸入的矩陣A相同。 
ReMatrix B = (ReMatrix)(Q * D * ~Q); 
Console.Write("\nB:\n{0}\n", new PR(B)); 

        }
    }
}
/*  執行結果  
Q :
  0.84227 +   0.00000i,   0.84227 +  0.00000i,   0.29317 +  0.00000i
  0.01280 +   0.17598i,   0.01280 -  0.17598i,   0.95435 +  0.00000i
  0.17250 +   0.47926i,   0.17250 -  0.47926i,  -0.05726 +  0.00000i
D:
  6.42719 +   6.41024i,   0.00000 +  0.00000i,   0.00000 +  0.00000i
  0.00000 +   0.00000i,   6.42719 -  6.41024i,   0.00000 +  0.00000i
  0.00000 +   0.00000i,   0.00000 +  0.00000i,  -4.85437 +  0.00000i
B:
  4.00000   -2.00000    12.00000
 -2.00000   -4.00000     4.00000
 -4.00000    2.00000     8.00000

請按任意鍵繼續 . . .
*/

using System;
using Matrix_0;  

namespace ConsoleApp4
{
    internal class Program
    {
        static void Main(string[] args)
        {

double[,] A0 = { {1, 2, 3}, {2, 5, 6}, {3, 4, 3}}; 
Console.Write("\nA0 矩陣,即R mXn [R3x3] :\n{0}", new PR(A0)); 

double[,] A1 = { {1}, {2}, {3} };  
Console.Write("\nA1 行向量,也是矩陣,即[R3X1] :\n{0}", new PR(A1)); 

double[,] A2 = { {1, 2, 3} };
Console.Write("\nA2 列向量,也是矩陣,即[R1X3] :\n{0}", new PR(A2)); 

double[,] A3 = { {3} };  
Console.Write("\nA3 雖然僅有一個元素,但也是矩陣,即[R1X1] :\n{0}", new PR(A3)); 

double[] A4 = { 1, 2, 3 }; 
Console.Write("\nA4 列向量,印出結果與A2完全相同,但型態不同[R1]:\n{0}", new PR(A4));   

// ***  如何輸入複數矩陣,並設定複數矩陣變數B[C2X3]  ***  
double[,] Bre = {{4, 5, -3}, {-3, 4, 1}}; 
double[,] Bim = {{-9, 8, -4}, {2, -5, 9}}; 
CxMatrix B = new CxMatrix(Bre, Bim); 
Console.Write("\n複數矩陣變數 B [C2X3] :\n{0}\n", new PR(B)); 

        }
    }
}
/* 輸出結果 : 
A0 矩陣,即R mXn [R3x3] :
        1.00000          2.00000          3.00000
        2.00000          5.00000          6.00000
        3.00000          4.00000          3.00000
A1 行向量,也是矩陣,即[R3X1] :
        1.00000
        2.00000
        3.00000
A2 列向量,也是矩陣,即[R1X3] :
        1.00000          2.00000          3.00000
A3 雖然僅有一個元素,但也是矩陣,即[R1X1] :
        3.00000
A4 列向量,印出結果與A2完全相同,但型態不同[R1]:
        1.00000          2.00000          3.00000
複數矩陣變數 B [C2X3] :
  4.00000 -  9.00000i,   5.00000 +  8.00000i,  -3.00000 -  4.00000i
 -3.00000 +  2.00000i,   4.00000 -  5.00000i,   1.00000 +  9.00000i
請按任意鍵繼續 . . .
*/

using System;
using Matrix_0; 

namespace ConsoleApp5
{
    internal class Program
    {
        static void Main(string[] args)
        {

double[,] Are = { {-3, 5, 8}, {2, -5, 9}, {6, 9, 2} };
double[,] Aim = { {-6, 7, 9}, {4, -5, -2}, {-3, 5, -4} }; 

// 建構任意C3X3的複數矩陣 A :
CxMatrix A = new CxMatrix(Are, Aim); 
Console.Write("\n複數矩陣A :\n{0}", new PR(A));  

// 建構複數矩陣A的逆矩陣 Ai : 
CxMatrix Ai = ~A; 
Console.Write("\n複數矩陣Ai :\n{0}", new PR(Ai)); 

// 複數矩陣 B = A * Ai , 亦即 B = A * ~A ;  
CxMatrix B = A * Ai; 
Console.Write("\n複數矩陣B :\n{0}", new PR(B)); 

// 因爲複數矩陣B的虛數部分為零,故可以轉換(cast)為實數矩陣 C ,  
// 即 Identity Matrix 。 ***  Check!  OK    ***
ReMatrix C = (ReMatrix)B; 
Console.Write("\n實數矩陣C :\n{0}\n", new PR(C)); 

        }
    }
}
/* 輸出結果 : 
複數矩陣A :
  -3.00000 -   6.00000i,   5.00000 +   7.00000i,   8.00000 +   9.00000i
   2.00000 +   4.00000i,  -5.00000 -   5.00000i,   9.00000 -   2.00000i
   6.00000 -   3.00000i,   9.00000 +   5.00000i,   2.00000 -   4.00000i
複數矩陣Ai :
  -0.02874 +   0.06505i,   0.06936 +   0.02633i,   0.08584 -   0.00831i
  -0.01739 -   0.02187i,  -0.03348 +   0.05402i,   0.05789 +   0.00493i
   0.04098 -   0.01439i,   0.06137 -   0.01162i,   0.00664 +   0.00007i
複數矩陣B :
   1.00000 +   0.00000i,   0.00000 +   0.00000i,   0.00000 +   0.00000i
   0.00000 +   0.00000i,   1.00000 +   0.00000i,   0.00000 +   0.00000i
   0.00000 +   0.00000i,   0.00000 +   0.00000i,   1.00000 +   0.00000i
實數矩陣C :
   1.00000      0.00000      0.00000
   0.00000      1.00000      0.00000
   0.00000      0.00000      1.00000
請按任意鍵繼續 . . .
*/

<<<<<<< HEAD

origin/main

<<<<<<< HEAD

origin/main

<<<<<<< HEAD

origin/main

<<<<<<< HEAD

origin/main

About

Description and README file for Sharp-Matrix-Solver

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published