Код: Выделить всё
| sxx sxy szx |
S = | sxy syy syz |
| szx syz szz |
< /code>
Я могу получить 3 собственных значений (основные напряжения) от < /p>
import numpy as np
S = np.array([[sxx, sxy, szx],
[sxy, syy, syz],
[szx, syz, szz]])
e_val, e_vec = np.linalg.eig(S)
principal_stress = np.sort(e_val) # 3 principal components sorted from min to max
# with sxx=100, syy=-50, sxy=75, szz=szx=syz=0 the result is
# (-81.07, 0.0, 131.07)
< /code>
Теперь у меня есть большой 2D массив, в котором каждый столбец содержит 6 элементов
(sxx
Может быть сотни тысяч столбцов (если не миллионы) в этой массиве ...
Код: Выделить всё
| sxx_1 sxx_2 ... sxx_n |
| syy_1 syy_2 ... syy_n |
S_by_poi = | szz_1 szz_2 ... szz_n |
| sxy_1 sxy_2 ... sxy_n |
| szx_1 szx_2 ... szx_n |
| syz_1 syz_2 ... syz_n |
< /code>
Что было бы самым быстрым способом вычисления 3 собственных значений, сортировать их и поместить в массив
P
Код: Выделить всё
| pmin_1 pmin_2 ... pmin_n |
P_by_poi = | pmid_1 pmid_2 ... pmid_n |
| pmax_1 pmax_2 ... pmax_n |
Подробнее здесь: https://stackoverflow.com/questions/727 ... nts-stored