我有两个循环,分别对应于不同的x和y坐标,以及每个不同的(x,y)坐标,使用矩阵法求解力1和力2的线性方程,即,如果Ax=C,则求a的逆。对于每个循环,它以矩阵形式给出答案,其中第一个元素是力1,第二个元素是这些特定坐标处的力2。这是我的密码:
import numpy as np
from scipy import linalg
def Force():
Force1 = np.zeros((160,90))
Force2 = np.zeros((160,90))
for x in np.arange(0,16.1,0.1):
for y in np.arange(1,9.1,0.1):
l1 = np.hypot(x,y)
l2 = np.hypot(15-x,y)
A = np.array([[(x/l1),((x-15)/l2)],[(y/l1),(y/l2)]])
c = np.array([[0],[70*9.81]])
F = linalg.solve(A,c)
Force1[x,y] = F[0]
Force2[x,y] = F[1]
print("Force 1 = {} \nForce 2 = {}\n".format(F[0], F[1]))
所以在每个点(x,y)上,一个矩阵[[Force 1],[Force 2]]被求解。现在我想把所有的Force1(s)附加到Force1[x,y]的列表中,类似地,我可以
plt.imshow[Force1]
plt.imshow[Force2]
绘制2个热图。我该怎么做呢?你知道吗
这就解决了您的问题—您试图将
Force1
和Force2
类型的索引赋值给float。我将for循环改为userenumerate
,并调整了赋值,使其赋值F[0][0]
和F[1][0]
。你知道吗生成的绘图为:
以及
相关问题 更多 >
编程相关推荐