微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 VBA 进行有限差分法的问题

如何解决使用 VBA 进行有限差分法的问题

解决的问题

The question to be done

我已经试过了。

我创建了几个函数。我对剩下的感到困惑。

我已经创建了第一个函数并将上、下和主矩阵的值存储在我的电子表格中。

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 然后创建一个新的子程序来运行整个代码

有线索吗?

样本输入

Sample Input Here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。