求2,3元线性方程组的解(python代码)

a = []
iu=[]
num=input('请输入是几元:')    #输入要求解的线性方程组是几元的
count=0
for i in range(num*(num+1)):        #将方程组对齐,把系数提出来做矩阵,之后按列输入进去存储起来
u = input('请输入第%d个数:' %(i+1))
iu.append(u)
if (i+1) % num == 0:
a.append(iu)
iu=[]

def fun(list):            #传入参数list(list是一个二维列表)
sum = sum1 = 0
for z in range(num):          #计算从左往右斜乘积之和
ss=1
row=-1
for g in range(z,z+num):
row+=1
ss *= list[row][g % num]
sum+=ss
for i in range(num-1, -1, -1):    #计算从右往左斜乘积之和
zz=1
row = -1
for u in range(i,i-num,-1):
row+=1
if u<0:
zz*=list[row][num+u]
else:
zz*=list[row][u]
sum1+=zz
a1 = sum - sum1          #从右往左斜乘积之和减去从右往左斜乘积之和
return a1        #返回结果值a


y=fun(a)            #得到分母的值,即系数行列式的值
for c in range(num):      #把值组成的列替换第1至num列的其中一列
ff=a[:]
ff[c]=a[num]
print "x%d的值为:%d"%((c+1),(fun(ff)/y))    #得到num元方程组的未知数的解



#样列输入:

请输入是几阶:3
请输入第1个数:7
请输入第2个数:9
请输入第3个数:0
请输入第4个数:2
请输入第5个数:0
请输入第6个数:1
请输入第7个数:3
请输入第8个数:2
请输入第9个数:1
请输入第10个数:0
请输入第11个数:2
请输入第12个数:7

#样列输出
x1的值为:-6
x2的值为:-21
x3的值为:28

7*x1+2*x2+3*x3=0

9*x1+0*x2+2*x3=2

0*x1+1*x2+1*x3=7

求出来的是该三元线性方程组的解。



原文地址:https://www.cnblogs.com/super-liuxueqi/p/8666222.html