2008-01-09

連立一次方程式の解法I

  1. 履き出し法


    この問題をExcelを使って解きましょう。まず係数の部分と定数項の部分を Excelのセルに入力します。


    1
    2
    3

    ABC
    244
    2-1-6
    23-2
    Sheet1

    1
    2
    3

    ABC
    18

    -2

    -6

    Sheet2

    まずこの係数部分と定数項を配列に読み込んで、Sheets(3)の(1,1)セルから順に 表示します。
    Sub 連立一次方程式1()
    Dim x(3, 4) As Single
    Dim i As Integer, j As Integer

    Sheets(1).Select
    For i = 1 To 3
     For j = 1 To 3
      x(i, j) = Cells(i, j)
     Next j
    Next i

    Sheets(2).Select
    For i = 1 To 3
     x(i, 4) = Cells(i, 1)
    Next i

    Sheets(3).Select
    Cells(1, 1).Select
    For i = 1 To 3
     For j = 1 To 4
      Selection.Cells(i, j) = x(i, j)
     Next j
    Next i

    End Sub
    するとこのようになります。

    1
    2
    3

    ABCD
    24418
    2-1-6-2
    23-2-6
    Sheet3

  2. 履き出し法の実行
    自分で計算する手順を考えながら、プログラムを書きます。 途中経過もExcelに出力すると分かりやすいです。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    ABCD
    24418
    2-1-6-2
    23-2-6





    1229(1,1)成分を1にするために第1行を(1,1)成分で割ります
    2-1-6-2
    23-2-6





    1229
    0-5-10-20(2,1)成分を0にするために第2行から第1行×(2,1)成分を引きます
    0-1-6-24(3,1)成分を0にするために第3行から第1行×(3,1)成分を引きます
    Sheet3

    Sub 連立一次方程式2()
    Dim x(3, 4) As Single
    Dim i As Integer, j As Integer, basho As Integer

    Sheets(1).Select
    For i = 1 To 3
     For j = 1 To 3
      x(i, j) = Cells(i, j)
     Next j
    Next i

    Sheets(2).Select
    For i = 1 To 3
     x(i, 4) = Cells(i, 1)
    Next i

    Sheets(3).Select
    basho = 1
    Cells(basho, 1).Select
    For i = 1 To 3
     For j = 1 To 4
      Selection.Cells(i, j) = x(i, j)
     Next j
    Next i

    Rem (1,1)成分を1にするために第一行を(1,1)成分で割るプログラムを書いてください。

    basho = basho + 4
    Cells(basho, 1).Select
    For i = 1 To 3
     For j = 1 To 4
      Selection.Cells(i, j) = x(i, j)
     Next j
    Next i

    Rem (2,1)成分を0にするために第二行から第一行の(2,1)成分倍を引くプログラムを書いてください。
    Rem (3,1)成分を0にするために第三行から第一行の(3,1)成分倍を引くプログラムを書いてください。

    basho = basho + 4
    Cells(basho, 1).Select
    For i = 1 To 3
     For j = 1 To 4
      Selection.Cells(i, j) = x(i, j)
     Next j
    Next i

    End Sub

  3. 演習問題

    1. 上のプログラムにおいて、Rem 文で書いている手順をBasicのプログラムで書いてください。

    最後まで解くとこうなります。

    ABCDE(ここは説明です)
    24418
    2-1-6-2
    23-2-6





    1229(1,1)成分を1にするために第1行を(1,1)成分で割ります
    2-1-6-2
    23-2-6





    1229
    0-5-10-20(2,1)成分を0にするために第2行から第1行×(2,1)成分を引きます
    0-1-6-24(3,1)成分を0にするために第3行から第1行×(3,1)成分を引きます





    1229
    0124(2,2)成分を1にするために第2行を(2,2)成分で割ります
    0-1-6-24





    10-21(1,2)成分を0にするために第1行から第2行×(1,2)成分を引きます
    0124
    00-4-20(3,2)成分を0にするために第3行から第2行×(3,2)成分を引きます





    10-21
    0124
    0015(3,3)成分を1にするために第3行を(3,3)成分で割ります





    10011(1,3)成分を0にするために第1行から第3行×(1,3)成分を引きます
    010-6(2,3)成分を0にするために第2行から第3行×(2,3)成分を引きます
    0015
    Sheet3

0 件のコメント: