本人数学拙笨,又碰到十分棘手的问题,希望大家伸出援助之手,帮忙解决难题!目前想要知道在VB中如何构造以下矩阵 U(1,1) U(1,2) U(1,3) U(1,4) U(1,5)
U(2,1) U(2,2) U(2,3) U(2,4) U(2,5)
U(5*5)= U(3,1) U(3,2) U(3,3) U(3,4) U(3,5)
U(4,1) U(4,2) U(4,3) U(4,4) U(4,5)
U(5,1) U(5,2) U(5,3) U(5,4) U(5,5)

A(5*5)= (A1,A2,A3,A4,A5) 然后实现计算:U*A=?拜托各位了~~~

解决方案 »

  1.   

    是不是可以理解为二维数组:Dim U(5,5),A(5,5)至于相乘,不知道!关注一下.
      

  2.   


    两个矩阵相乘U*A=? 前提是: 
      U 的列数= A 的行数
      U 的行数= A 的列数  你的A是一维的还是二维的?
    A(5*5)以及U(5*5)是什么意思呀,不懂?
      

  3.   

    举个例子吧,设有3个方阵 a,b,c
    a(1,1) a(1,2) a(1,3) 
    a(2,1) a(2,2) a(2,3) 
    a(3,1) a(3,2) a(3,3) b(1,1) b(1,2) b(1,3) 
    b(2,1) b(2,2) b(2,3) 
    b(3,1) b(3,2) b(3,3) c(1,1) c(1,2) c(1,3) 
    c(2,1) c(2,2) c(2,3) 
    c(3,1) c(3,2) c(3,3)且 c = a * bPrivate Sub Command1_Click()
      Dim a(3, 3) As Integer, b(3, 3) As Integer, c(3, 3) As Integer
      For i = 1 To 3 '行
        For j = 1 To 3  '列
          c(i, j) = a(i, 1) * b(1, j) + a(i, 2) * b(2, j) + a(i, 3) * b(3, j)
        Next j
      Next i
    End Sub
      

  4.   

    Public Function MatMultiply(X() As Double, Y() As Double) As Double()
        Dim n As Integer
        Dim m As Integer
        Dim p As Integer
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim z() As Double
        n = UBound(X, 1)
        m = UBound(X, 2)
        p = UBound(Y, 2)
        ReDim z(1 To n, 1 To p)
        If m <> UBound(Y, 1) Then
            MsgBox ("这两个矩阵不能相乘!" + Str$(m) + Str$(UBound(Y, 1)))
        Else
            For i = 1 To n
                For j = 1 To m
                    For k = 1 To p
                        z(i, k) = z(i, k) + X(i, j) * Y(j, k)
                    Next k
                Next j
            Next i
        End If
        MatMultiply = z
    End Function
    矩阵乘法必须要求第一个矩阵的行数等于第二个矩阵的列数
      

  5.   

    使用方法:
    A=MatMultiply(x,y)
    其中x和y就是需要相乘的矩阵,A为结果矩阵,但是需要预先定义成动态数组:dim A() as double