Решение системы линейных уравнений с трехмерным массивом
Наверняка такая задача кем-то решалась. Задача из допотопного учебника. Но в поиске: "система линейных уравнений" ничего нет. На поиск: "линейные уравнения" нашлась только программа "Калькулятор OSA". Может что-то не так ищу? Если кто-то видел такой код или метод решения, подскажите, пожалуйста. Или как это запрограммировать в Паскале.
Итак. Требуется решить систему уравнений с трехмерным массивом:
Постановка задачи.
Дано: КУБ из 27 чисел 3 х 3 х 3
в общем виде каждое уравнение это: a[ i, j, k]= 1/7*( a[i-1, j, k] + a[i+1, j, k] + a[ i,j-1, k] + a[ i,j+1, k] + a[ i, j,k-1] + a[ i, j,k+1]+ t[ i , j , k] )
t[ i,j,k]= 333777 или любое другое постоянное число
i, j, k = 1,2,3
Конкретный пример приведен ниже:
Код:
t[ 1, 1, 1]=333
t[ 3, 3, 3]=777
! слой по Z=1
a[ 1, 1, 1]= 1/4*( a[ 2, 1, 1] + a[ 1, 2, 1] + a[ 1, 1, 2] + t[ 1, 1, 1])
a[ 1, 2, 1]= 1/4*( a[ 2, 2, 1] + a[ 1, 1, 1] + a[ 1, 3, 1] + a[ 1, 2, 2] )
a[ 1, 3, 1]= 1/3*( + a[ 2, 3, 1] + a[ 1, 2, 1] + + a[ 1, 3, 2] )
a[ 2, 1, 1]= 1/4*( a[ 1, 1, 1] + a[ 3, 1, 1] + a[ 2, 2, 1] + a[ 2, 1, 2] )
a[ 2, 2, 1]= 1/5*( a[ 1, 2, 1] + a[ 3, 2, 1] + a[ 2, 1, 1] + a[ 2, 3, 1] + a[ 2, 2, 2] )
a[ 2, 3, 1]= 1/4*( a[ 1, 3, 1] + a[ 3, 3, 1] + a[ 2, 2, 1] + a[ 2, 3, 2] )
a[ 3, 1, 1]= 1/3*( a[ 2, 1, 1] + a[ 3, 2, 1] + a[ 3, 1, 2] )
a[ 3, 2, 1]= 1/4*( a[ 2, 2, 1] + a[ 3, 1, 1] + a[ 3, 3, 1] + a[ 3, 2, 2] )
a[ 3, 3, 1]= 1/2*( a[ 2, 3, 1] ] + a[ 3, 2, 1] + a[ 3, 3, 2] )
! слой по Z=2
a[ 1, 1, 2]= 1/4*( a[ 2, 1, 2] + a[ 1, 2, 2] + a[ 1, 1, 1] + a[ 1, 1, 3] )
a[ 1, 2, 2]= 1/5*( a[ 2, 2, 2] + a[ 1, 1, 2] + a[ 1, 3, 2] + a[ 1, 2, 1] + a[ 1, 2, 3] )
a[ 1, 3, 2]= 1/4*( + a[ 2, 3, 2] + a[ 1, 2, 2] + a[ 1, 3, 1] + a[ 1, 3, 3] )
a[ 2, 1, 2]= 1/5*( a[ 1, 1, 2] + a[ 3, 1, 2] + a[ 2, 2, 2] + a[ 2, 1, 1] + a[ 2, 1, 3] )
a[ 2, 2, 2]= 1/6*( a[ 1, 2, 2] + a[ 3, 2, 2] + a[ 2, 1, 2] + a[ 2, 3, 2] + a[ 2, 2, 1] + a[ 2, 2, 3] )
a[ 2, 3, 2]= 1/5*( a[ 1, 3, 2] + a[ 3, 3, 2] + a[ 2, 2, 2] + a[ 2, 3, 1] + a[ 2, 3, 3] )
a[ 3, 1, 2]= 1/4*( a[ 2, 1, 2] + a[ 3, 2, 2] + a[ 3, 1, 1] + a[ 3, 1, 3] )
a[ 3, 2, 2]= 1/5*( a[ 2, 2, 2] + a[ 3, 1, 2] + a[ 3, 3, 2] + a[ 3, 2, 1] + a[ 3, 2, 3] )
a[ 3, 3, 2]= 1/4*( a[ 2, 3, 2] + a[ 3, 2, 2] + a[ 3, 3, 1] + a[ 3, 3, 3] )
! слой по Z=3
a[ 1, 1, 3]= 1/3*( a[ 2, 1, 3] + a[ 1, 2, 3] + a[ 1, 1, 2])
a[ 1, 2, 3]= 1/4*( a[ 2, 2, 3] + a[ 1, 1, 3] + a[ 1, 3, 3] + a[ 1, 2, 2])
a[ 1, 3, 3]= 1/3*( + a[ 2, 3, 3] + a[ 1, 2, 3] + a[ 1, 3, 2])
a[ 2, 1, 3]= 1/4*( a[ 1, 1, 3] + a[ 3, 1, 3] + a[ 2, 2, 3] + a[ 2, 1, 2])
a[ 2, 2, 3]= 1/5*( a[ 1, 2, 3] + a[ 3, 2, 3] + a[ 2, 1, 3] + a[ 2, 3, 3] + a[ 2, 2, 2])
a[ 2, 3, 3]= 1/5*( a[ 1, 3, 3] + a[ 3, 3, 3] + a[ 2, 2, 3] + a[ 2, 4, 3] + a[ 2, 3, 2])
a[ 3, 1, 3]= 1/3*( a[ 2, 1, 3] + a[ 3, 2, 3] + a[ 3, 1, 2])
a[ 3, 2, 3]= 1/4*( a[ 2, 2, 3] + a[ 3, 1, 3] + a[ 3, 3, 3] + a[ 3, 2, 2])
a[ 3, 3, 3]= 1/4*( a[ 2, 3, 3] + a[ 3, 2, 3] + a[ 3, 3, 2] + t[ 3, 3, 3])
Админ: Пользуемся тегами при оформлении!
|