注册 登录
编程论坛 VB.NET论坛

求助代码编写 关于线性代数的编程

发布于 2010-05-06 17:31, 489 次点击
Sub 解方程(XiSu() As Double, jie() As Double)

    Dim BeiSu As Double
    On Error GoTo err1
   
    m = UBound(XiSu, 1)    '行数
    n = UBound(XiSu, 2)    '列数
    If n <> m + 1 Then
        MsgBox "系数矩阵维数不正确!", , "注意"
        Exit Sub
    End If
   
    For i = 0 To m
        If XiSu(i, i) = 0 Then
            MsgBox "系数矩阵的对角线系数不能有 0 ,请校对后重新输入!", , "注意"
            Exit Sub
        End If
    Next
   
    For i = 1 To m                                                 '行
        For k = i To m                                             '行
            BeiSu = XiSu(k, i - 1) / XiSu(i - 1, i - 1)
            For j = i - 1 To n                                     '列数据处理
                XiSu(k, j) = XiSu(k, j) - BeiSu * XiSu(i - 1, j)
            Next
        Next
    Next
    For i = 0 To m
        jie(i) = XiSu(i, n) / XiSu(i, i)
    Next
    Exit Sub
err1:
    If Err.Number = 11 Then
        MsgBox "方程组无解,请校对系数。", , "提示"
      Else
        MsgBox Err.Description, , "提示"
    End If


End Sub

Private Sub Command1_Click()
Dim suju() As Double, jie() As Double
    n = Val(InputBox("请输入方程组元数(未知数个数):"))
    ReDim suju(n - 1, n)
    ReDim jie(n - 1)
    For i = 0 To n - 1  '输入系数
        For j = 0 To n
            suju(i, j) = Val(InputBox("请输入方程系数:" & vbCrLf & "第" & i + 1 & "行,第" & j + 1 & "列:"))
        Next
    Next
   
    Call 解方程(suju, jie)
    Cls
    For i = 0 To n - 1
        Print "X" & i + 1 & "="; jie(i)
    Next

End Sub
以上是代数方程的通解,如果在给定X3=3的时候,求解其他解,该怎样编程?请各位帮忙,谢谢

[ 本帖最后由 cxhu 于 2010-5-6 17:41 编辑 ]
0 回复
1