我有一组方程式,我想要运行变量H
的多个值,我想要在一系列值上评估这些方程式。我的代码粗略看起来如下;
k=m=1
x_values = []
v_values = []
N = np.array([10,100,1000])
H = (tb-ta)/N
for n in np.arange(ta,tb+H,H):
if n ==0:
vn = v0 + x0*H*-(k/m)
xn = x0 + v0*H
x_values.append(xn)
v_values.append(vn)
if n>0:
v_next = vn + xn*h*-(k/m)
x_next = xn + vn*h
vn = v_next
xn = x_next
x_values.append(x_next)
v_values.append(v_next)
我想要发生的是要为每个arange
值计算的H
的值,以及循环的方程式,并为不同的{{存储每个循环的值1}}值。
我是否需要将这些存储在列表而不是数组中?我还需要更多的空数组或数组来存储单独的值吗?最后,我想绘制从H
值计算的每组值。
答案 0 :(得分:0)
请阅读https://stackoverflow.com/help/mcve并相应更新您的问题。没有这个,我不确定我会给你很多帮助,尤其是结果的格式。
我相信你需要嵌套循环,一个在另一个里面。外循环遍历H的值;内循环从那里进行计算。这样的事情,也许是:
K = m = 1的 x_values = [] v_values = [] N = np.array([10,100,1000]) 对于[10,100,1000]中的slice_count: H =(tb-ta)/ slice_count 对于np.arange中的n(ta,tb + H,H): 如果n == 0: vn = v0 + x0 * H * - (k / m) xn = x0 + v0 * H
x_values.append(xn)
v_values.append(vn)
if n>0:
v_next = vn + xn*h*-(k/m)
x_next = xn + vn*h
vn = v_next
xn = x_next
x_values.append(x_next)
v_values.append(v_next)