У меня есть такие данные:
import numpy as np
a = np.array([115.608,107.618])
b = np.array([0,0])
c = [105.57700000000001]
d = [-150]
dz = [10,10]
vd = np.array([8.300681877,8.263776325,8.227034857,
8.19045674,8.154041222,8.117787446,8.081693942,8.045755857,8.009949601,
7.97414798,7.937650964,7.896591328,7.829590512,7.618450462,6.609661859,1.19])
testing = [48.13,11]
, и я делаю цикл следующим образом:
theta = np.ones((len(vd)-1,len(a)))
for i in range (0,len(a)):
theta[0,i] = testing[i]
x = np.ones((len(vd),len(a)))
z = np.ones((len(vd),len(a)))
for i in range (0,len(a)):
x[0,i] = x0[0]
x[1,i] = x0[0]+((dz[i]/np.tan(m.radians(theta[0,i])))/111.32)
z[0,i] = z0[0]
z[1,i] = z0[0] + dz[i]
for i in range (1,len(vd)-1):
for j in range(0,len(a)):
theta[i,j] = m.degrees(np.arcsin((v[i+1]/v[i])*np.sin(m.radians(theta[i-1,j]))))
for i in range (2,len(vd)):
for j in range (0,len(a)):
x[i,j] = x[i-1,j]+((dz[j]/np.tan(m.radians(theta[i-1,j])))/111.32)
z[i,j] = z[i-1,j]+dz[j]
plt.plot(x[:,0],z[:,0],'*-k',x[:,1],z[:,1],'*-b',a,b,'vr',c,d,'ok')
plt.show()
, где данные тестирования будут изменены с 89,9 до 0,1 с интервалом 0,1. и проблема в том, что многие получают цикл для получения значений тета, х и z. Как я могу выполнить этот цикл для быстрого расчета.