Я пытался сделать то, что называется переупорядочением собственных значений. Чтобы сделать это, мне нужно сделать что-то, что в Wolfram Mathematica выглядит следующим образом:
lambdax[n_]:=n*Pi/2;
lambday[m_]:=m*Pi/2;
bii=(7 ((n^2 \[Pi]^2)/4 + 3/14 n \[Pi] Sin[(n \[Pi])/2] +
3/28 Sin[(n \[Pi])/2]^2 - 3/14 n \[Pi] Sin[(3 n \[Pi])/2] -
3/14 Sin[(n \[Pi])/2] Sin[(3 n \[Pi])/2] +
3/28 Sin[(3 n \[Pi])/2]^2 - 1/7 n \[Pi] Sin[2 n \[Pi]] +
1/28 Sin[2 n \[Pi]]^2))/(4 n^2 \[Pi]^2);
Reordbii=Flatten[Table[{n,m,(lambdax[n]^2+lambday[m]^2)/bii},{n,NN},{m,NN}],1];
Lambdabii = Sort[Reordbii, #1[[3]] < #2[[3]] &];
Lambdatakebii = Take[Lambdabii, NN];
Команда «Reordbii» запускает двумерный список, а затем сглаживает его в NN ^ 2 векторов размерности 1x3. Затем команда "Lambdabii" сортирует векторы NN ^ 2 на основе возрастающего порядка третьего элемента каждого вектора, то есть (lambdax [n] ^ 2 + lambday [m] ^ 2) / bii. Затем команда «Lambdatakebii» принимает первые NN векторов «Lambdabii». В настоящее время я новичок в Python, но я думаю, что этот простой алгоритм будет работать быстрее. Тем не менее, я не знаю, как я мог сделать это в Python. Я хотел переписать код в Python, чтобы запустить его на Colab. Кто-нибудь знает, как мне здесь помочь? Спасибо!