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.]
下一篇:
JavaSE学习路线以及学习建议