Решение задачи Неймана для уравнения Пуассона в прямоугольной области

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Курсовая работа

Решение задачи Неймана для уравнения Пуассона в прямоугольной области

 

Содержание

 

Введение

Аннотация

. Численная постановка задачи

. Решение заданного примера

. Листинг программы

. Результаты работы программы

Литература

 

Введение

 

Актуальность решения уравнения Пуассона состоит в том что, при вычислении решения системы уравнений Навье-Стокса, алгоритм решения этой системы происходит в несколько этапов одним из сложных является решение уравнения Пуассона.

 

Аннотация

 

Разработать программу для решения дифференциального уравнения Лапласа:

 

 

в прямоугольной области ABCD, с вершинами A(0;0), B(0:1), C(1;1), D(1,0), шагом h=l/n, где n-количество узлов, принимающее условия Дирихле на всех границах кроме правой (на правой поставлено условие Неймана). Уравнение решается методом сеток, c точностью ?= 0,0000001. Программа разработана на языке C++.

 

1. Численная постановка задачи

 

Уравнение Лапласа является модельным для эллиптических уравнений в частных производных.

Некоторые важные задачи, часто встречающиеся в приложениях, сводятся к решению одного эллиптического уравнения. К ним относятся задачи расчета дозвукового безвихревого (потенциального) течения газа и определения стационарного поля температуры в твердом теле.

В данной работе требуется решить, конечно - разностную задачу Дирихле или Неймана для уравнения Лапласа в прямоугольной области т. е. найти непрерывную функцию u(х,у), удовлетворяющую внутри многоугольной области

 

уравнению Лапласа

(1)

 

и принимающую на границе области W заданные значения, т. е.

 

, ,

, ,

 

где f1=0, f2=0, f3=0, f4=0.

Будем считать, что u(х,у) непрерывна на границе области W, т. е.

 

,

,

,

.

 

Выбрав шаги h, l по x и y соответственно, строим сетку:

 

, , , ,

 

где , .

Вводя обозначения

 

,

 

аппроксимируем частные производные и в каждом внутреннем узле сетки центральными разностными производными второго порядка

 

,

 

и заменим уравнение Лапласа конечно-разностным уравнением

 

, (2)

, .

 

 

Погрешность замены дифференциального уравнения разностным, составляет величину .

Уравнения (2) вместе со значениями в граничных узлах образуют систему линейных алгебраических уравнений относительно приближенных значений функции и(х, у) в узлах сетки . Наиболее простой вид имеет эта система при :

 

, , , , (3)

, .

 

При получении сеточных уравнений (3) была использована схема узлов. Набор узлов, используемых для аппроксимации уравнения в точке, называется шаблоном. В данной работе используется шаблон типа крест.

 

 

Численное решение задачи Дирихле для уравнения Лапласа в многоугольнике состоит в нахождении приближенных значений искомой функции u(х,у) во внутренних узлах сетки. Для определения величин требуется решить систему линейных алгебраических уравнений (3).

В данной работе она решается методом минимальных невязок, который состоит в построении последовательности итераций вида:

 

,

где - невязка

- итерационный параметр

 

(верхним индексом s обозначен номер итерации). При последовательность сходится к точному решению системы (3). В качестве условия окончания итерационного процесса можно принять

 

.

 

Таким образом, погрешность приближенного решения, полученного методом сеток, складывается из двух погрешностей: погрешности аппроксимации дифференциального уравнения разностными значениями; погрешности, возникающей в результате приближенного решения системы разностных уравнений (3).

Известно, что описанная здесь разностная схема обладает свойством устойчивости и сходимости. Устойчивость схемы означает, что малые изменения в начальных данных приводят к малым изменениям решения разностной задачи. Только такие схемы имеет смысл применять в реальных вычислениях. Сходимость схемы означает, что при стремлении шага сетки к нулю () решение разностной задачи стремится к решению исходной задачи. Таким образом, выбрав достаточно малый шаг h, можно как угодно точно решить исходную задачу.

Пример решения такой задачи Дирихле, приведен в решении заданного примера.

 

. Решение заданного примера

программа уравнение лаплас прямоугольный

Используя метод сеток, составить приближенное решение задачи Дирихле для уравнения Лапласа (1).

Решение получить в квадрате ABCD, с вершинами A(0;0), B(0:1), C(1;1), D(1,0) шагом h=l/n, где n-количество узлов, принимающее условия Дирихле на всех границах кроме правой (на правой границе поставлено условие Неймана).

 

; ; ; .

 

Систему линейных алгебраических уравнений решить по методом минимальных невязок, при ?=0,0000001.

 

1)Построим сетку с шагом h=l=0,2

 

 

2. Построим итерационный процесс

 

 

В виде начального приближения возьмем ,

условия окончания итерационного процесса: .

 

. Листинг программы

 

#define _USE_MATH_DEFINES

#include

#include

#include

#include

#includenamespace std;

//объявление типов точек области начало

<