算法---使用雅克比(Jacobi)迭代法求解线性方程组

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): 已经打开的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luky!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值