Python3修改的Gram-Schmidt

时间:2018-06-30 03:44:25

标签: python-3.x

我是python3的新手,我试图编写一个以矩阵为参数的代码,并使用修改后的Gram-Schmidt算法计算并打印QR分解。我正在尝试对代码使用嵌套的for循环,而根本不使用NUMPY。我已经在下面附加了我的代码,将不胜感激。预先谢谢你。

def twoNorm(vector):
'''
twoNorm takes a vector as it's argument. It then computes the sum of  
the squares of each element of the vector. It then returns the square 
root of this sum.
'''
# This variable will keep track of the validity of our input.
inputStatus = True  
# This for loop will check each element of the vector to see if it's a number. 
for i in range(len(vector01)):  
    if ((type(vector01[i]) != int) and (type(vector01[i]) != float) and (type(vector01[i]) != complex)):
      inputStatus = False
      print("Invalid Input")
# If the input is valid the function continues to compute the 2-norm
      if inputStatus == True:
          result = 0
# This for loop will compute the sum of the squares of the elements of the vector. 
          for i in range(len(vector01)):
              result = result + (vector01[i]**2)
          result = result**(1/2)
          return result
def QR(matrix):
    r[i][i] = twoNorm(vector01)
    return [vector01 * (1/(twoNorm(vector01)) for i in matrix]
    for j in range(len(matrix)):
        r[i][j] = q[i] * vector02[i]
        vector02 = vector02[i] - (r[i][j] * q[i])
matrix = [[1, 2], [0, 1], [1, 0]]
vector01 = [1, 0, 1]
vector02 = [2, 1, 0]

0 个答案:

没有答案