kateli1991

如何在python中计算正交向量?



我有下面的代码来计算作为I,j维矩阵输入的每个向量的正交向量。所以矩阵中的每一行都是向量。代码如下:

for i in range(data.shape[0]):
          for j in range(data.shape[1]):
              s=0 #row counter set to 0
              if j == data.shape[1]-1: #check if last row element has been reached
                  for k in range(j): #compute the sum of all previous values.
                      s=s+data2[i][k]*data[i][k]
                  data2[i][j] = -s/data[i][k]
              else:
                  data2[i][j] = random.uniform(1,random.getrandbits(10))
          dot(data[i],data2[i])

但它不起作用,因为点函数很少返回0,在向量正交的情况下应该是0。我看不出代码的逻辑流程。我简单地将j-1随机元素固定为正交向量的系数,然后为了找到最后一个系数,我解了一个简单的方程,这个方程是随机元素先前系数与向量系数除以最后一个系数的点积。a1r1+a2r3+…+anrn=0。我知道ai,我固定随机I-1ri,然后解1var方程线性问题,找到rn-suth,比ri向量与a1向量正交。我得到的上一个点积计算结果如下:

===================================================
8.90285882653
===================================================
15.1275777619
===================================================
25.0847305913
===================================================
30.8608285102
===================================================
35.2496752739
===================================================
-53.3796252747
===================================================
16.302777
===================================================
29.3607765359
===================================================
-39.8982101139
===================================================
42.97222625


浏览 818
评论 - 1 月,3 周 之前提问
0 个回答

目前没有回答

撰写回答

侧边栏

A


B