import numpy as np # 最大迭代次数,用于控制迭代求解线性方程组的循环次数,防止无限循环 max_iter = 100 # 收敛精度,当相邻两次迭代结果的差值小于此值时,认为迭代收敛,找到了满足精度要求的解 Delta = 0.01 # 矩阵的行数,这里特意设置为与列数相等,确保要处理的矩阵是方阵(因为后续一些操作要求矩阵为方阵,比如求逆) m = 3 # 矩阵的列数,与行数相等,共同确定矩阵的形状 n = 3 # 定义矩阵的形状,为一个包含行数和列数的元组,用于后续创建和操作矩阵 shape = (m, n) def read_tensor(f, shape): """ 从给定的文件对象中读取数据,并将其转换为指定形状的多维数组(在这里表示二维矩阵)。 参数: f (file object): 已经打开的文件对象,从中按行读取数据。 shape (tuple): 期望得到的矩阵形状,格式为 (行数, 列数)。 返回: np.array: 转换后的多维数组(二维矩阵),其形状与传入的 shape 参数一致。 """ data = [] # 按矩阵的行数进行循环,逐行读取数据 for i in range(shape[0]): line = f.readline() # 将读取到的每行字符串数据按逗号分割,然后使用 eval 函数将每个元素转换为合适的Python对象(通常是数字), # 并添加到 data 列表中,这里使用 eval 需要确保文件中的数据格式是合法的,否则可能存在安全风险, # 更安全的做法可以是明确转换为特定的数据类型(如 float),如果数据格式固定的话。 data.append(list(map(eval, line.split(",")))) return np.array(data).reshape(shape) def read_vector(f): """ 从给定的文件对象中读取一行数据,并将其转换为一维数组(向量)。 参数: f (file object): 已经打开的
05-11
6075
