Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Контрольные работы » Рішення двовимірного рівняння Пуассона методом блокових ітерацій

Реферат Рішення двовимірного рівняння Пуассона методом блокових ітерацій





)

В 

де, 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...


Назад | сторінка 2 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Double Standards in Modern Politics
  • Реферат на тему: Double Entry Types of Balance Sheet
  • Реферат на тему: Double electric layer. Mechanism of formation and theory of structure
  • Реферат на тему: Поняття алгоритму. Обчислення значення функції
  • Реферат на тему: Рішення завдання Неймана для рівняння Пуассона в прямокутній області