) В  
  де, n - номер ітерації. 
  Значення сіткової функції на кордонах області відомо з граничних умов. Схему (4) можна записати у вигляді, зручному для реалізації її за допомогою методу скалярної прогонки: 
   де 
В   
 Значення прогоночние коефіцієнтів знаходяться по рекурентним формулами, які можна записати у вигляді: 
  , 
 ,. 
   З граничних умов на лівій межі визначаються значення прогоночние коефіцієнтів. p> Після цього, враховуючи, що, зворотної прогоном знаходяться всі значення сіткової функції на n +1 - му ітераційному кроці: 
 В   
 Рахунок слід проводити прогоном по осі ОХ (індекс i), починаючи з індексу j = 1. У цьому випадку значення змінної відомо з граничної умови. Закінченням ітераційного процесу є виконання умови 
 В   
 В якості початкових значень для внутрішніх точок області можна взяти, наприклад, результати лінійної інтерполяції між кордонами і цими точками. 
   3. Реалізація поставленого завдання  
    3.1 Блок-схема алгоритму  
 В  
  3.2 Паралельна програма  
   # include 
  # include 
  # include 
  # include 
  # define N1 50 
  # define N2 50 
				
				
				
				
			  # define eps 0.00001Y [N1 + 1] [N2 + 1], Ysh [N1 + 1] [N2 + 1]; 
  double hx = 1. f/N1, hy = 2. f/N2; 
 /* Функия точного рішення */
  double Fresh (double x, double y) {pow (x, 
 ) * pow (y, 
 ); 
 } RoFresh (double x, double y) {2 * (pow (x, 
 ) + pow (y, 
  2)); 
 } 
 /* Підпрограма ініціалізації матриці */Inic () {
  int i, j; (i = 0; i 
} 
 } main (int argc, char ** argv) {size, rank, flag = 1; i, j, f, it = 0; A = pow (hx, 
 ), B = A, D = pow (hy, 
 ), C = - 2. f/A - 2. f/D, F1, Fi, pogr = 0; t_c = 0.0, time = 0.0, s_t = 0.0; 
  double max, m; alfa [N-1], beta [N-1]; 
 // double Y [N1 + 1] [N2 + 1], Ysh [N1 + 1] [N2 + 1]; 
 // double hx = 1. f/N1, hy = 2. f/N2; _Status stat; _Init (& argc, & argv); _Comm_size (MPI_COMM_WORLD, & size); _Comm_rank (MPI_COMM_WORLD, & rank); - = MPI_Wtime (); _c - = MPI_Wtime (); ( rank == 0) {("% d n", size); (); 
 } _Barrier (MPI_COMM_WORLD); _Bcast (Y, (N...