如何解决使用 VBA 进行有限差分法的问题
要解决的问题
我已经试过了。
我创建了几个函数。我对剩下的感到困惑。
我已经创建了第一个函数并将上、下和主矩阵的值存储在我的电子表格中。
Function createFEMatrixDirichlet(a,C,Nx,h,dt)
Dim k As Integer
'Main
For k = 0 To Nx - 1
Cells(k + 2,2).Value = 1 - dt * (((2 * a) / (h * h)) + x)
Next k
'Lower
For k = 0 To Nx - 2
Cells(k + 2,1).Value = dt * (a / (h * h))
Next k
'Upper
For k = 0 To Nx - 3
Cells(k + 2,3).Value = dt * (a / (h * h))
Next k
End Function
节点的生成方式类似。
Function nodeGeneration(xa,xb,column)
Dim k As Integer
'Find h
h = (xb - xa) / Nx
'Generate Node
For k = 0 To Nx
Cells(k + 2,column).Value = xa + k * h
Next k
End Function
应用初始条件:
Function applyInitialCondition(Nx,column)
Dim k As Integer
For k = 0 To Nx
Cells(k + 2,column).Value = ((Cells(k + 2,4)) + 2) / 2
Next k
End Function
现在乘以我有点困惑。我的实现是我试图制作整个矩阵然后相乘。然而,没有运气。一些或其他错误弹出。
另外,我不知道如何实现 FEtimestep 然后创建一个新的子程序来运行整个代码。
有线索吗?
样本输入
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。