![]() |
XLPack for Matplotlib Experimental Version 0.1
例題集
|
2 次元ポアソン方程式の 5 点差分近似による連立一次方程式の係数行列 (CSC 形式) の疎行列パターンをプロットする.
Sub GenMat_5DF_CSX(N As Long, Nnz As Long, Value() As Double, Index() As Long, Ptr() As Long)
Dim NN As Long, II As Long, I As Long, J As Long, Ctr As Long
NN = N * N
Ctr = 0
For II = 0 To NN - 1
I = Int(II / N)
J = II - I * N
If I > 0 Then
Index(Ctr) = II - N
Value(Ctr) = -1
Ctr = Ctr + 1
End If
If I < N - 1 Then
Index(Ctr) = II + N
Value(Ctr) = -1
Ctr = Ctr + 1
End If
If J > 0 Then
Index(Ctr) = II - 1
Value(Ctr) = -1
Ctr = Ctr + 1
End If
If J < N - 1 Then
Index(Ctr) = II + 1
Value(Ctr) = -1
Ctr = Ctr + 1
End If
Index(Ctr) = II
Value(Ctr) = 4
Ctr = Ctr + 1
Ptr(II + 1) = Ctr
Next
Ptr(0) = 0
Nnz = Ctr
End Sub
Sub Test_Spy_CSC()
Const N = 10, NN = N * N
Dim Fig As Figure, Ax As Axs
Dim Val(5 * NN - 1) As Double, Ind(5 * NN - 1) As Long, Ptr(NN) As Long
Dim Nnz As Long
Call GenMat_5DF_CSX(N, Nnz, Val(), Ind(), Ptr())
Set Fig = Plt.Figure()
Set Ax = Fig.Gca()
Call Ax.Spy_CSC(NN, NN, Nnz, Val(), Ptr(), Ind(), "markersize=5")
Call Plt.Show
End Sub