s=list(eval(input('lu')))
i=len(s)#增广矩阵行数
j=len(s[0])#增广矩阵列数
def primary(s1,a):
i=len(s1)#该步运算行数
j=len(s1[0])#该步运算列数:j=1+1
global s
#该步运算第一列元素按照大小编号,0对应绝对值最大元素,以用来做本步运算主元
ls=[]
ls1=[]
cnt={}
for item in range(i):
ls.append(abs(s1[item][0]))
ls1.append(s1[item][0])
ls.sort(reverse=True)
for item in ls1:
cnt[item]=ls.index(abs(item))
#换行:绝对值最大元素放到主元位置
s11=s.copy()
for item in range(i):
first=ls1[item]
if cnt[first]==0:
s[a]=s11[item+a]
s[item+a]=s11[a]
break
def tobe1(s1,a):#主元下方元素除以主元
for item in range(a+1,i):
s1[item][a]/=s1[a][a]
def mathi(s1,a,b):#计算主元所在行主元右侧元素
if a!=1:
for item in range(a):
s1[a][b]-=s1[item][b]*s1[a][item]
return s1[a][b]
el
LU分解-三角分解PYTHON实现
最新推荐文章于 2023-04-10 08:00:00 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)