1112112我玩玩

2112

import numpy as np  # 本次仅需要用到这一个库

# a = input('需要计算的方程组为:')
a = np.array([[0.01, 2, -0.5, -5], [-1, -0.5, 2, 5], [5, -4, 0.5, 9]])  # 双括号   a即要计算的
i = a.shape[0]  # 得到a的行数
j = a.shape[1]  # 得到a的列数
print(i)
print(j)
X = []  # 建立一个X空列表,便于放入所得解
print(X)

for z in range(0, j - 2):  # 当z从第1列到j-1列循环,每一次循环中,都是#针对所在列,先排序,后消元(以下对应这两部分) 2.z还代表循环次数
    for x in range(z, i):  # x从z行到第最后一行循环,每次循环扔掉上次循#环的第一行,因为每次的第一行都用来存储每次的最大
        n = np.argmax(abs(a[x:i, z]))  #n为剩下的几行中,绝对值最大的值#所在行的索引
        print(n + x)  # 索引再加x,因为n为剩下的几行中的索引,而我们
#接下来的交换针对所有行
        a[[x, n + x], :] = a[[n + x, x], :]  # 数组特殊的交换数值方式
        print(a)

    for y in range(1 + z, i):  # 之所以从1+z,开始,最开始的z循环不仅仅#是列,也是循环次数,每循环一次,向下移动一列
        k = a[z, z] / a[y, z]
        print(k)
        a[y,] = a[z,] - k * a[y,]
print(a)

w = j - 1
g = 0
for q in range(i - 1, -1, -1):  # i为矩阵行数  这里是从最后一行开始向上#循环行!
    w = w - 1
    h = 2 - q  #3元,所以2

    if h == 0:
        X.append(a[q, j - 1] / a[q, w])
        print(X)
    else:
        for n in range(0, h):  # e+1决定让n循环几次
            g = g + a[q, 2 - n] * X[n]
            print(g)
        X.append((a[q, j - 1] - g) / a[q, w])  # 公式
        print(X)
        g = 0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值