我正在编写一个简单的热方程求解器,以适应python编程语言。我的代码如下:
for i in range(1,m):
c=gamma*p*(q[i-1]+q[i])
rhs=np.matmul(B,np.transpose(u[i-1,:]))+np.transpose(c)
sol=np.linalg.solve(A,rhs[0])
u[i,:]=np.transpose(sol)
print('Simulation Complete!')
我遇到的问题是如何理解矩阵的结构。我常用的编程语言Matlab,处理数组的方式非常严格,就像数学一样,你必须小心你的维数。看起来python的情况并非如此。在我代码的最后几行,我将行向量和列向量视为不同的,但这太麻烦了。有没有办法让这些东西更有效率
现在,我似乎把所有的东西都当作一个数组,为了从线性代数解算器中正确地得到一个向量,我必须选择第一个元素。我可以对我的输入稍微宽松一点吗?或者我可以对我定义矩阵的方式更严格一点吗?所以,如果它们是行向量或列向量,请保持标签。
1条答案
按热度按时间cbeh67ev1#
在numpy中,您可以定义列向量、行向量和2D矩阵。
例如:
您可以:
你也可以做
但如果你试图
因此,如您所见,考虑了维度,如果所涉及的向量的维度不匹配,则不允许执行某些操作