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

python——高斯消元法解线性方程组,第1张

方程组如下: 

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


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.]

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/568807.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-09
下一篇2022-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存