Option Explicit On Option Strict On Public Class Form1 Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click Dim i As Integer Dim n As Integer = 2 Dim a(,) As Double = {{2.0, 3.0, 1.0, 4.0}, {4.0, 1.0, -3.0, -2.0}, {-1.0, 2.0, 2.0, 2.0}} Call MATGJ(n, a) For i = 0 To n Console.WriteLine(CStr(i) & ":" & CStr(a(i, n + 1))) Next i '連立一次方程式 [a]{x}={y}の解{x}を求める.a(i,j)=[a|y]を入力する '入力 出力結果 '[a]={ 2, 3, 1} {y}={ 4} {x}={ 2} ' { 4, 1,-3} {-2} {-1} ' {-1, 2, 2} { 2] { 3} End Sub Private Sub MATGJ(ByVal n As Integer, ByRef a(,) As Double) 'Gauss-Jordan法による連立一次方程式の解法 Dim i As Integer Dim j As Integer Dim k As Integer Dim s As Integer Dim p As Double Dim d As Double Dim max As Double Dim dumy As Double For k = 0 To n max = 0.0 s = k For j = k To n If Math.Abs(a(j, k)) > max Then max = Math.Abs(a(j, k)) s = j End If Next j For j = 0 To n + 1 dumy = a(k, j) a(k, j) = a(s, j) a(s, j) = dumy Next j p = a(k, k) For j = k To n + 1 a(k, j) = a(k, j) / p Next j For i = 0 To n If i <> k Then d = a(i, k) For j = k To n + 1 a(i, j) = a(i, j) - d * a(k, j) Next j End If Next i Next k End Sub End Class