Показать сообщение отдельно
  #1  
Старый 02.09.2022, 22:40
oblez-pascal oblez-pascal вне форума
Прохожий
 
Регистрация: 02.09.2022
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Решение системы линейных уравнений с трехмерным массивом

Наверняка такая задача кем-то решалась. Задача из допотопного учебника. Но в поиске: "система линейных уравнений" ничего нет. На поиск: "линейные уравнения" нашлась только программа "Калькулятор 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])


Админ: Пользуемся тегами при оформлении!
Ответить с цитированием