LU分解-三角分解PYTHON实现

本文介绍了在科学计算中LU分解(三角分解法)的重要性,特别是对于求解方程组的应用。作者提供了使用Python实现的列主元三角分解法代码,以避免大数吃小数导致的误差。虽然示例未展示换主元法如何改善这一现象,但阐述了计算步骤,并给出了一组精确解的例子。在IDLE环境中运行时,注意代码可能对副本S的影响。
摘要由CSDN通过智能技术生成
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
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值