import numpy as np

输入矩阵

mat = [] for i in range(3): row = input().strip().split() row = [float(x) for x in row] mat.append(row) mat = np.array(mat)

计算特征值和特征向量

eig_val, eig_vec = np.linalg.eig(mat)

输出特征值和特征向量

print("特征值:", eig_val) print("特征向量:", eig_vec)

单位化特征向量

eig_vec_norm = [] for i in range(3): norm = np.linalg.norm(eig_vec[:,i]) eig_vec_norm.append(eig_vec[:,i] / norm)

输出单位化后的特征向量

print("单位化特征向量:", eig_vec_norm)

计算正交向量

ortho_vec = np.zeros((3,3)) ortho_vec[:,0] = eig_vec_norm[0] ortho_vec[:,1] = eig_vec_norm[1] - np.dot(eig_vec_norm[1], ortho_vec[:,0]) * ortho_vec[:,0] ortho_vec[:,2] = eig_vec_norm[2] - np.dot(eig_vec_norm[2], ortho_vec[:,0]) * ortho_vec[:,0] - np.dot(eig_vec_norm[2], ortho_vec[:,1]) * ortho_vec[:,1]

输出正交向量

print("正交向量:", ortho_vec)

编写python代码实现以下功能:输入一个3×3的矩阵输出它的特征向量与特征值然后将特征向量单位化再输出然后输出各自的正交向量

原文地址: http://www.cveoy.top/t/topic/btCa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录