我正试图求解由估计四阶微分方程得到的方程组。要做到这一点,需要创建一个大矩阵(A),通常为105 x 105,取反并乘以105 x 1矩阵(B)。要做到这一点,我使用了线性代数方法解决斧= B.使用VBA求解大系统的方程
运行下面的代码:
Dim A(1 To 105, 1 To 105) As Double
Dim B(1 To 105) As Double
Dim i As Integer
' Used to make sure all values of A are initialized to zero
For i = 1 To 105
For j = 1 To 105
A(i, j) = 0
Next
Next
For i = 1 To 105
A(i, i) = EI
A(i, i + 1) = -4 * EI + axial * h^2
A(i, i + 2) = 6 * EI - 2 * axial * h^2 + km(i) * h^4
A(i, i + 3) = -4 * EI + axial * h^2
A(i, i + 4) = EI
B(i) = W * h^4
Next
Dim x(1 To 105) As Variant
x = Application.WorksheetFunction.MMult((Application.WorksheetFunction.MInverse(A)), B)
导致“运行时错误‘1004’:无法获取MINVERSE财产的工作表功能类“
我探讨了这个错误,它似乎意味着我传递坏数据的函数文本或空值,所以我添加了两个循环在顶部初始化矩阵A为0然而这没有做什么。在探索了更多之后,我发现了一些关于最大尺寸为52×52的矩阵,但无法找到关于此的更多信息。
52 x 52的限制在2007年版本中取消了,我相信但是大矩阵常常接近单数,我猜这是这里的问题。相反,尝试搜索反转稀疏矩阵的方法,这对于这类问题可以更加高效和准确。还要注意代码中的最后一个参数需要转置。 –