ab - матрица 4 x 5, т. Е. ab(4,5) и x - массив длины 4, т. Е. x(4)
ab
4 x 5
ab(4,5)
x
4
x(4)
x(4) = ab(4,5)/ab(4,4) do i = 3, 1, -1 x(i) = ( ab(i,5) - ab(i,i+1:4) * x(i+1:4) ) / ab(i,i) end do
do l oop говорит несовместимые ранги 0 и 1.
do
Вы можете использовать функцию SUM, чтобы уменьшить умножение массива до скаляра. то есть x(i) = ( ab(i,5) - SUM(ab(i,i+1:4) * x(i+1:4)) ) / ab(i,i). В качестве альтернативы можно использовать функцию DOT_PRODUCT DOT_PRODUCT(ab(i,i+1:4) , x(i+1:4))
SUM
x(i) = ( ab(i,5) - SUM(ab(i,i+1:4) * x(i+1:4)) ) / ab(i,i)
DOT_PRODUCT
DOT_PRODUCT(ab(i,i+1:4) , x(i+1:4))