Я хочу создать ортогональные матрицы в Python, чтобы визуализировать снижение сигнала в соответствии с расстоянием от источника и углом к источнику.Для простоты мы можем описать снижение:
NewValue = cos(angle)*(StartingValue – a*(distance))
Я обнаружил, что Scipy.stats имеет ortho_group, который может использоваться для создания случайных ортогональных матриц:
from scipy.stats import ortho_group
x = ortho_group.rvs(3)
np.dot(x, x.T)
# returns:
array([[ 1.00000000e+00, 1.13231364e-17, -2.86852790e-16],
[ 1.13231364e-17, 1.00000000e+00, -1.46845020e-16],
[ -2.86852790e-16, -1.46845020e-16, 1.00000000e+00]])
import scipy.linalg
np.fabs(scipy.linalg.det(x))
# returns:
1.0
Поскольку случайная матрица нене очень полезно, я продолжаю задаваться вопросом, как я могу создать ортогональную матрицу со значениями в соответствии с моей функцией.
Вторая проблема, с которой я сталкиваюсь, состоит в том, как ограничить диапазон матрицы диапазоном углов 0-45 ° градусов.