QuiRk in numpy - все нормализованные элементы присваиваются 0 при разложении QR с использованием отражателей - PullRequest
0 голосов
/ 04 ноября 2019

Все нормализованные элементы в массиве установлены в 0.

Я пытаюсь создать отражатель для массива. Когда я нормализую все элементы в массиве по первому элементу (x[1:] /= x[0], x[0] = 1) в Python, я просто получаю все нули и 1 в первом элементе.

import numpy as np
#project x via householder
u = np.array([9,4,1,3,1])
x = np.array([3,4,1,3,1])

for i in range(1,len(u)):
  u[i] /= u[0]
u[0] = 1

Результат должен выглядеть следующим образом (u = [1, 4/9, 1/9, 3/9, 1/9])

1 Ответ

1 голос
/ 04 ноября 2019

Когда мы определяем пустой массив, мы можем определить его тип, указав dtype в np.array.

import numpy as np
#project x via householder
u = np.array([9,4,1,3,1], dtype = np.float64)

for i in range(1,len(u)):
  u[i] /= u[0]
u[0] = 1
print(u)

дает нам

[1.         0.44444444 0.11111111 0.33333333 0.11111111]
...