python - Python矩阵乘法3d数组
问题描述
我试图以数字方式解决 PDE,在此过程中,我遇到了类似于 3 空间维度的三重嵌套 for 循环的问题。该构造嵌套在另一个时间循环中,因此您可以想象对于足够大的节点数,计算需要很长时间。代码块看起来像这样
for jy in range(0,cy-1):
for jx in range(0,cx-1):
for jz in range(0,cz-1):
T[n+1,jx,jy,jz] = T[n,jx,jy,jz] + s*(T[n,jx-1,jy,jz] - 2*T[n,jx,jy,jz] + T[n,jx+1,jy,jz]) + s*(T[n,jx,jy-1,jz] - 2*T[n,jx,jy,jz] + T[n,jx,jy+1,jz]) + s*(T[n,jx,jy,jz-1] - 2*T[n,jx,jy,jz] + T[n,jx,jy,jz+1])
起初它可能看起来很吓人,但很容易。我有一个代表固体散装材料的 3 维矩阵,其中每个点代表当前温度。在计算每个点的迭代计算下一个温度时,会考虑到该点旁边的每个点 - 所以总共 6 个。在一维实体的情况下,解决方案只是一个简单的矩阵乘法。有没有机会在一个简单的矩阵解决方案中表示上面的 3 循环系统,比如 1D 案例?
此致!
解决方案
使用 numpy,您可以轻松地进行这些类型的矩阵运算,
例如对于 3x3 矩阵
将 numpy 导入为 np
T = np.random.random((3,3,3))
T = T*T - 2*T ... 等等。
推荐阅读
- java - 为什么卡片布局的 show 方法在这种情况下不起作用?
- amazon-web-services - 调整大小后,Lambda 将图像从一个存储桶复制到另一个存储桶
- java - 使用蓝牙获取两个安卓设备之间的距离
- google-cloud-platform - 在 Google Cloud 上的虚拟机上进行云游戏
- javascript - TypeError:无法读取反应中未定义的属性“子字符串”
- powershell - 无法验证参数“SourceMailbox”上的参数
- azure-functions - 分区键为 Partition.None 时 Azure Functions 的 Azure Cosmos DB 输入绑定
- javascript - 导出数据表中的下拉选定值
- c++ - C++ - 如何从上到下制作 4x4 矩阵和 cout 列(需要解密字符串)
- azure - 将多个 IP 地址分配给现有的虚拟机访问 Web 服务器