У меня есть код, который перебирает некоторый интервал в x и вычисляет разницу между вычисленным и ожидаемым значением, y.
def find_alpha_max():
alpha=0
alphamax=1
alphamin=0
n=10
alphastep=(alphamax-alphamin)/n
data= np.zeros([n,2])
for i in range(1,len(data)):
alpha=i*alphastep
data[i,0] = alpha
data[i,1] = abs(wavelen(alpha)-121)
print(data)
def wavelen(alpha):
val1,val2= energy_levels(alpha)
transition= abs(val1-val2)
wavelength=(h*c/abs(transition*(1e-19)))/(1e-9)
return wavelength
Это дает вывод:
[[ 0. 0. ]
[ 0.1 61.37844557]
[ 0.2 47.07247138]
[ 0.3 33.72835938]
[ 0.4 21.50950112]
[ 0.5 10.44535124]
[ 0.6 0.49201146]
[ 0.7 8.43091667]
[ 0.8 16.41859421]
[ 0.9 23.56862328]]
То, что я хочу сделать, это отсортировать порядок массивов на основе их значения y, от наименьшего к наибольшему, чтобы я мог получить значение x, которое я могу использовать для числовой минимизации. Как мне это сделать?