Python3修复:“ TypeError:'float'对象不可下标”

时间:2019-11-13 19:17:36

标签: python arrays matrix

似乎无法弄清楚发生了什么,我将所有矩阵都转换为float并仍然给我一个错误。

我正在尝试根据我的教授给出的“伪代码”来实现用于线性方程组求解的高斯-赛德尔(无松弛)方法

a=((-5.0,3.0,0.0,0.0,0.0),
   (3.0,-6.0,3.0,0.0,0.0),
   (0.0,3.0,-6.0,3.0,0.0),
   (0.0,0.0,3.0,-6.0,3.0),
   (0.0,0.0,0.0,3.0,-5.0))
b=(-80.0,0.0,0.0,60.0,0.0)


def norelax(a,b,k_max,precisao):
    n=5
    erro_max=200.0
    k=0
    x=[0.0,0.0,0.0,0.0,0.0]


    while abs(erro_max)>precisao and k<k_max:
        for i in range(0,n):
            soma_antes=0
            for j in range(0,i):
                soma_antes+=a[i][j]*x[j]
            soma_depois=0
            for j in range(i+1,n):
                soma_depois+=a[i][j]*x[j]
            x[i]=(b[i]-soma_antes-soma_depois)/a[i][i]
            print(x)
            x_anterior=x[i]
            erro_max=max(x[i]-x_anterior[i]/x[i])
            print(x)
        k+=1
    return x

print(norelax(a,b,300,0.0001))

0 个答案:

没有答案