Em chạy chương trình và nó báo lỗi
Em muốn hỏi 2 vấn đề:
-
Em khai báo hàm với kiểu dữ liệu list như thế đúng chưa =)))
-
Lỗi của em là lỗi gì ạ
from math import*
def LapDon(n,Matrix=[]):Nhập nghiệm ban đầu
x0 = [0 for i in range(n)]
for i in range(n):
x0 = float(input(“Nhập giá trị nghiệm ban đầu x0” + str(i+1) + ": "))
y0 = [0 for i in range(n)]Nhập sai số hoặc số bước
z=int(input("Bạn muốn nhập số bước(1) hay sai số(2): (Nhập 1 hoặc 2) "))
Nếu nhập số bước
if z == 1:
SB = int(input("Nhập số bước: "))
for i in range(SB):
for k in range(n):
for l in range(n):
if l == k:
continue
else:
y0[k] += Matrix[k][l]*x0[l]
y0[k] = Matrix[k][n+1] - y0[k]
# Đổi giá trị của x0 cho y0
x0 = y0[:]
y0 = [0 for i in range(n)]
print("Nghiệm của phương trình sau “, SB,” bước là: ", x0)Nếu nhập sai số
if z == 2:
eps = float(input("Nhập sai số: "))
Test = True
while Test:
for k in range(n):
for l in range(n):
if l == k:
continue
else:
y0[k] += Matrix[k][l]*x0[l]
y0[k] = Matrix[k][n+1] - y0[k]
# Kiểm tra điều kiện dừng
Test = False
for i in range(n):
if abs(y0[i] - x0[i]) > eps:
Test = True
# Đổi giá trị của x0 cho y0
x0 = y0[:]
y0 = [0 for i in range(n)]
print(“Nghiệm của phương trình với sai số”, esp, "là: ", x0)Phần giải
n = int(input("Nhập số phương trình của hệ: "))
Khai báo và nhập ma trận
Matrix = [[0 for i in range(n+1)] for i in range(n)]
for i in range(n):
for j in range(n):
Matrix[i][j] = float(input(“Nhập hệ số a”+str(i+1)+str(j+1)+": "))Nhập cột giá trị của phương trình
for i in range(n):
Matrix[i][n] = float(input("Nhập giá trị của phương trình " + str(i+1)+ ": "))#Kiểm tra điều kiện hội tụ của hệ và giải
Hang = [0 for i in range(n)]
Cot = [0 for i in range(n)]
for i in range(n):
for j in range(n):
Hang[i] = Hang[i] + abs(Matrix[i][j]/Matrix[i][i])
for i in range(n):
for j in range(n):
Cot[i] = Cot[i] + abs(Matrix[j][i]/Matrix[i][i])
if max(Hang) < 2:
print(“Ta có thể áp dụng phương pháp lặp Jacobi với ma trận chéo trội hàng”)
LapDon(n,Matrix)
elif max(Cot) < 2:
print(“Ta có thể áp dụng phương pháp lặp Jacobi với ma trận chéo trội cột”)
LapDon(n,Matrix)
else:
print(“Tạm thời em chưa được học =)))”)