尝试使用Gauss seidel方法求解25乘25矩阵来解决2D传热化学工程问题。
但它没有进入第二次迭代
Do While error > 0.1
temps0 = temps1(UBound(matrix1, 1), 1) ' Old temperature for error calculation
'Conducts the gauss algorithm for each row
For i = 1 To UBound(matrix1, 1)
temps1(i, 1) = matrix1(i, UBound(matrix1, 2))
For j = 1 To (UBound(matrix1, 2) - 1)
If j <> i Then
temps1(i, 1) = temps1(i, 1) - (matrix1(i, j) * temps1(j, 1))
ElseIf j = i Then
divider = matrix1(i, j)
End If
Next j
temps1(i, 1) = temps1(i, 1) / divider
Next i
error = Abs((temps1(UBound(matrix1, 1), 1) - temps0) / temps1(UBound(matrix1, 1), 1))
iteration = iteration + 1
Loop
这是高斯赛德尔的do while循环 Matrix1是由先前函数生成的coeff矩阵
真的很感激任何帮助。 TY
答案 0 :(得分:0)
通过改变错误的值来解决问题,无论如何,谢谢