python——高斯消元法解线性方程组

方程组如下: 

 求解上述方程,我们可以使用高斯消元法进行求解。

import numpy as np
def f(x,n):#高斯消元法
    jie=np.zeros(n*(n-1)).reshape(n-1,n);t=1;xj=np.ones(n-1)#定义参数
    jie1=np.zeros(n*(n-1)).reshape(n-1,n);jie1[:,:]=x[:,:];#这一步很重要,要不然会出现超大的BUG,耗时巨久。
    for i in range(n-1):#正迭代化为上三角矩阵
        jie[i,i:]=jie1[i,i:]/jie1[i,i];
        for j in range(i+1,n-1):
            jie1[j,:]=jie1[j,:]-jie1[j,i]*jie[i,:];
    for o in range(n-2,0,-1):#反迭代计算X值
         t+=1
         for q in range(n-t,0,-1):
            jie[q-1,-1]=jie[q-1,-1]-jie[o,-1]*jie[q-1,o]
            jie[q-1,o]=0
    for r in range(n-1):
        xj[r]=jie[r,-1]
    return xj
x=np.array([[10,-1,-2,2,4],[1,-10,2,-1,-14],[1,1,-5,2,-10],[1,-2,2,-1,2]])
x0=np.array([0,0,0,0,1])
n=5

最后的运行结果

print('高斯消元法,最终的解X_i(角标从小到大):{}'.format(f(x,n)))



高斯消元法,最终的解X_i(角标从小到大):[1. 2. 3. 1.]

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Eyu.sir

谢谢。

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

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

打赏作者

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

抵扣说明:

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

余额充值