Численное решение дифференциальных уравнений с частными производными
Приближенное решение задачи Дирихле для уравнения Лапласа в квадрате. Выведение общей формулы для нахождения значений функции во внутренних точках. Составление программы реализации метода Зайделя для решения системы линейных алгебраических уравнений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.02.2019 |
Размер файла | 437,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
федеральное государственное бюджетное образовательное учреждение высшего образования
«ОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ» (ОмГУПС (ОмИИТ))
Кафедра «Информационная безопасность»
Численное решение дифференциальных уравнений с частными производными
Пояснительная записка к курсовой работе
по дисциплине «Численные методы»
Студент гр. 25с
А.К. Шмаков
Руководитель -
доцент кафедры ИБ
М.Я. Епифанцева
Омск 2017
Аннотация
В работе рассматривается приближенное решение задачи Дирихле для уравнения Лапласа в квадрате с вершинами А(0;0), B(0;1), C(1;1), D(1;0) с шагом h=0,2. Для реализации метода выведена общая формула для нахождения значений функции во внутренних точках. Также составлена система линейных алгебраических уравнений. Для решения системы линейных алгебраических уравнений составлена программа реализации метода Зайделя с точностью e=0,001.
задача уравнение дирихле лаплас
Содержание
Введение
1. Численная постановка задачи
2. Получение начальных значений
3. Решение системы уравнений
Заключение
Библиографический список
Введение
Дифференциальным уравнением, содержащим частные производные, называется дифференциальное уравнение с частными производными. Дифференциальные уравнения с частными производными помогают решать задачи не только в математике, но также в физике, экономике и даже в биологии. В данной работе рассматривается численный метод решения задачи Дирихле для уравнения Лапласа.
1. Численная постановка задачи
Используя метод сеток, составить приближенное решение задачи Дирихле для уравнения Лапласа в квадрате с вершинами А(0;0), B(0;1), C(1;1), D(1;0), с шагом h=0,2.
Заменив частные производные в уравнении Лапласа конечно-разностными соотношениями получим:
По условию . Сложим эти два уравнения:
=1/4* (1).
Таким образом можно вывести уравнение, с помощью которого можно будет считать значение функции во внутренних точках.
Графическая интерпретация шаблона типа крест представлена на рисунке 1.
Рисунок 1 - Графическая интерпретация шаблона типа «крест»
Также существуют другие шаблоны. Например, шаблон типа «Прямоугольник». Графическая интерпретация шаблона «прямоугольник» представлена на рисунке 2.
Рисунок 2 - Графическая интерпретация шаблона типа «прямоугольник»
2. Получение начальных значений
Значения функции U(x,y) на стороне AB находится по формуле U(x,y)=45*y*(1-y); на стороне BC: U(x,y)=25*x; на стороне CD: U(x,y)=25; на стороне AD: U(x,y)=25*x*.
AB: U(x,y)=45y(1-y);
BC: U(x,y)=25x;
CD: U(x,y)=25;
AD: U(x,y)= 25*x*.
На рисунке 3 представлена область G, в которой ищется решение.
Рисунок 3 - Область G
AB: BC: CD: AD:
U(0;0)=0; U(0,2;1)=5; U(1;0,8)= U(0,2;0)=1,545;
U(0;0,2)=7,2; U(0,4;1)=10; = U(1;0,6)= U(0,4;0)=5,878;
U(0;0,4)=10,8; U(0,6;1)=15; = U(1;0,4)= U(0,6;0)=12,135;
U(0;0,6)=10,8; U(0,8;1)=20; = U(1;0,2)= U(0,8;0)=19,021;
U(0;0,8)=7,2; U(1;1)=25; = U(1;0)=25
U(0;1)=0;
На рисунке 4 представлена область G с вычисленными граничными значениями и пронумерованными внутренними точками.
Рисунок 4 - Область G с вычисленными значениями граничных точек
Используя шаблон типа «крест» (1) составляем следующую систему уравнений (2):
Для дальнейших расчетов необходимо определить начальные значения. Будем считать, что функция U(x,y) по горизонталям области G распределена равномерно.
На рисунке 5 изображена горизонталь с точками (0;0,2) и (1;0,2).
(0;0,2) (1;0,2)
Рисунок 5 - Горизонталь с точками (0;0,2) и (1;0,2)
Шаг изменения функции H1=(25-7,2)/2=3,56.
Получим:
На рисунке 6 изображена горизонталь с точками (0;0,4) и (1;0,4).
(0;0,4) (1;0,4)
Рисунок 6 - Горизонталь с точками (0;0,4) и (1;0,4)
Шаг изменения функции Н2=(25-10,8)/2=2,84.
Получим:
На рисунке 7 изображена горизонталь с точками (0;0,6) и (1;0,6).
(0;0,6) (1;0,6)
Рисунок 7 - Горизонталь с точками (0;0,6) и (1;0,6)
Значения в точках данной горизонтали будут такие же, как и на горизонтали с точками (0;0,4) и (1;0,4):
На рисунке 8 изображена горизонталь с точками (0;0,8) и (1;0,8).
(0;0,8) (1;0,8)
Рисунок 8 - Горизонталь с точками (0;0,8) и (1;0,8)
Значения в точках данной горизонтали будут такие же, как и на горизонтали с точками (0;0,2) и (1;0,2):
В таблице 1 представлены начальные значения внутренних точек, значения на границе, а также значения аргументов x,y функции U(x,y).
Таблица 1
1 |
0 |
5 |
10 |
15 |
20 |
25 |
|
0,8 |
7,2 |
10,76 |
14,32 |
17,88 |
21,44 |
25 |
|
0,6 |
10,8 |
13,64 |
16,48 |
19,32 |
22,16 |
25 |
|
0,4 |
10,8 |
13,64 |
16,48 |
19,32 |
22,16 |
25 |
|
0,2 |
7,2 |
10,76 |
14,32 |
17,88 |
21,44 |
25 |
|
0 |
0,0 |
1,545 |
5,878 |
12,135 |
19,021 |
25 |
|
Yi|Xi |
0 |
0,2 |
0,4 |
0,6 |
0,8 |
1 |
3. Решение системы уравнений
Для решения системы уравнений будет использован модифицированный метод Зайделя. Следует преобразовать систему уравнений (2) к рабочим формулам метода Зайделя:
=1/4*(8,745++);
=1/4*(5,878+++);
=1/4*(12,135+++);
=1/4*(44,021++);
=1/4*(10,8+++);
=1/4*(+++);
=1/4*(+++);
=1/4*(25+++);
=1/4*(10,8+++);
=1/4*(+++);
=1/4*(+++);
=1/4*(25+++);
=1/4*(12,2++);
=1/4*(10+++);
=1/4*(15+++);
=1/4*(45++).
Ниже приведен листинг программы, реализующей модифицированный метод Зайделя.
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
var U: array [1..16] of real;
U1:array [1..16] of real;
flag:boolean;
i,m:integer;
begin
U1[1]:=10.76;
U1[2]:=14.32;
U1[3]:=17.88;
U1[4]:=21.44;
U1[5]:=13.64;
U1[6]:=16.48;
U1[7]:=19.32;
U1[8]:=22.16;
U1[8]:=13.64;
U1[10]:=16.48;
U1[11]:=19.32;
U1[12]:=22.16;
U1[13]:=10.76;
U1[14]:=14.32;
U1[15]:=17.88;
U1[16]:=21.44;
repeat
flag:=true;
m:=m+1;
U[1]:=1/4*(8.745+U1[2]+U1[5]);
U[2]:=1/4*(5.878+U[1]+U1[3]+U1[6]);
U[3]:=1/4*(12.135+U[2]+U1[4]+U1[7]);
U[4]:=1/4*(44.021+U[3]+U1[8]);
U[5]:=1/4*(10.8+U[1]+U1[6]+U1[9]);
U[6]:=1/4*(U[2]+U[5]+U1[7]+U1[10]);
U[7]:=1/4*(U[3]+U[6]+U1[8]+U1[11]);
U[8]:=1/4*(25+U[4]+U[7]+U1[12]);
U[9]:=1/4*(10.8+U[5]+U1[10]+U1[13]);
U[10]:=1/4*(U[6]+U[9]+U1[11]+U1[14]);
U[11]:=1/4*(U[7]+U[10]+U1[12]+U1[15]);
U[12]:=1/4*(25+U[8]+U[11]+U1[16]);
U[13]:=1/4*(12.2+U[9]+U1[14]);
U[14]:=1/4*(10+U[10]+U[13]+U1[15]);
U[15]:=1/4*(15+U[11]+U[14]+U1[16]);
U[16]:=1/4*(45+U[12]+U[15]);
for i:=1 to 16 do
if abs(U[i]-U1[i])>=0.001 then flag:=false;
for i:=1 to 16 do
U1[i]:=U[i];
writeln (u[13]:3:3,' ',u[14]:3:3,' ',u[15]:3:3,' ',u[16]:3:3);
writeln (u[9]:3:3,' ',u[10]:3:3,' ',u[11]:3:3,' ',u[12]:3:3);
writeln (u[5]:3:3,' ',u[6]:3:3,' ',u[7]:3:3,' ',u[8]:3:3);
writeln (u[1]:3:3,' ',u[2]:3:3,' ',u[3]:3:3,' ',u[4]:3:3);
writeln;
writeln;
until flag = true;
writeln (m);
readln;
end.
На таблицах 2-19 приведены значения во внутренних точках, которые изменяются в процессе вычислений.
Таблица 2
9,577 |
13,098 |
16,814 |
20,738 |
|
11,789 |
14,936 |
17,718 |
21,137 |
|
9,114 |
14,317 |
15,897 |
20,388 |
|
9,176 |
12,354 |
16,312 |
18,493 |
Таблица 3
9,226 |
12,489 |
16,325 |
20,543 |
|
11,607 |
13,916 |
17,075 |
20,845 |
|
11,115 |
13,241 |
16,433 |
20,567 |
|
7,553 |
11,015 |
14,385 |
19,698 |
Таблица 4
8,971 |
12,176 |
16,109 |
20,449 |
|
11,196 |
13,409 |
16,717 |
20,686 |
|
10,842 |
12,874 |
16,29 |
20,486 |
|
7,719 |
10,306 |
14,643 |
19,808 |
Таблица 5
8,829 |
12,013 |
15,992 |
20,395 |
|
10,941 |
13,115 |
16,505 |
20,587 |
|
10,586 |
12,625 |
16,11 |
20,394 |
|
7,473 |
10,217 |
14,612 |
19,78 |
Таблица 6
8,752 |
11,921 |
15,922 |
20,361 |
|
10,796 |
12,49 |
16,373 |
20,523 |
|
10,438 |
12,447 |
15,971 |
20,324 |
|
7,387 |
10,126 |
14,538 |
19,738 |
Таблица 7
8,707 |
11,865 |
15,879 |
20,34 |
|
10,709 |
12,832 |
16,288 |
20,481 |
|
10,343 |
12,325 |
15,874 |
20,275 |
|
7,327 |
10,048 |
14,473 |
19,704 |
Таблица 8
8,68 |
11,83 |
15,851 |
20,326 |
|
10,655 |
12,763 |
16,233 |
20,454 |
|
10,279 |
12,244 |
15,808 |
20,242 |
|
7,284 |
9,99 |
14,426 |
19,681 |
Таблица 9
8,663 |
11,808 |
15,833 |
20,317 |
|
10,62 |
12,718 |
16,197 |
20,436 |
|
10,238 |
12,19 |
15,765 |
20,221 |
|
7,254 |
9,95 |
14,393 |
19,664 |
Таблица 10
8,651 |
11,793 |
15,821 |
20,311 |
|
10,598 |
12,689 |
16,173 |
20,424 |
|
10,211 |
12,154 |
15,736 |
20,206 |
|
7,233 |
9,924 |
14,372 |
19,653 |
Таблица 11
8,644 |
11,784 |
15,813 |
20,307 |
|
10,583 |
12,67 |
16,158 |
20,417 |
|
10,193 |
12,131 |
15,717 |
20,197 |
|
7,22 |
9,906 |
14,358 |
19,646 |
Таблица 12
8,639 |
11,778 |
15,808 |
20,305 |
|
10,574 |
12,658 |
16,148 |
20,412 |
|
10,181 |
12,166 |
15,705 |
20,191 |
|
7,211 |
9,894 |
14,348 |
19,642 |
Таблица 13
8,636 |
11,774 |
15,805 |
20,303 |
|
10,568 |
12,65 |
16,142 |
20,408 |
|
10,174 |
12,106 |
15,697 |
20,187 |
|
7,205 |
9,887 |
14,342 |
19,638 |
Таблица 14
8,634 |
11,771 |
15,803 |
20,302 |
|
10,564 |
12,645 |
16,137 |
20,406 |
|
10,169 |
12,099 |
15,691 |
20,184 |
|
7,201 |
9,882 |
14,338 |
19,636 |
Таблица 15
8,633 |
11,769 |
15,802 |
20,302 |
|
10,561 |
12,641 |
16,135 |
20,405 |
|
10,165 |
12,095 |
15,688 |
20,182 |
|
7,199 |
9,879 |
14,335 |
19,635 |
Таблица 16
8,632 |
11,767 |
15,8 |
20,301 |
|
10,558 |
12,637 |
16,131 |
20,403 |
|
10,162 |
12,09 |
15,684 |
20,18 |
|
7,196 |
9,875 |
14,332 |
19,634 |
Таблица 17
8,632 |
11,768 |
15,801 |
20,301 |
|
10,559 |
12,639 |
16,133 |
20,404 |
|
10,163 |
12,092 |
15,686 |
20,181 |
|
7,197 |
9,876 |
14,334 |
19,634 |
Таблица 18
9,631 |
11,767 |
15,8 |
20,301 |
|
10,557 |
12,636 |
16,131 |
20,403 |
|
10,161 |
12,089 |
15,683 |
20,18 |
|
7,195 |
9,874 |
14,332 |
19,633 |
Таблица 19
8,631 |
11,767 |
15,799 |
20,3 |
|
10,557 |
12,636 |
16,13 |
20,403 |
|
10,16 |
12,088 |
15,683 |
20,18 |
|
7,195 |
9,873 |
14,331 |
19,633 |
В таблице 20 представлены конечные значения во внутренних точках, значения на границе, а также значения аргументов x,y функции U(x,y).
Таблица 20
0 |
5 |
10 |
15 |
20 |
25 |
||
0,8 |
7,2 |
8,63 |
11,77 |
15,80 |
20,30 |
25 |
|
0,6 |
10,8 |
10,56 |
12,64 |
16,13 |
20,40 |
25 |
|
0,4 |
10,8 |
10,16 |
12,09 |
15,68 |
20,18 |
25 |
|
0,2 |
7,2 |
7,20 |
9,87 |
14,33 |
19,63 |
25 |
|
0 |
0,0 |
1,55 |
5,88 |
12,14 |
19,02 |
25 |
|
Yi|Xi |
0 |
0,2 |
0,4 |
0,6 |
0,8 |
1 |
Заключение
В ходе курсовой работы представлен метод приближенного решения задачи Дирихле для уравнения Лапласа. Выведена общая формула для нахождения значений функции во внутренних узловых точках, а также посчитаны значения функции на границе и начальные значения функции во внутренних точках. С помощью общей формулы составлена система линейных алгебраических уравнений, которая впоследствии преобразована в рабочие формулы для метода Зайделя для решения систем линейных алгебраических уравнений. Для решения системы уравнений написана программа, реализующая метод Зайделя.
Библиографический список
1 Численные методы: учебное пособие : в 2 ч., Ч. 2 / Пименов В. Г. , Ложников А. Б. Екатеринбург: Издательство Уральского университета, 2014. 107 c.
2 Численные методы: лекции / Слабнов В. Д. Казань: Познание, 2012 2012. 192 c.
3 Численные методы: учебное пособие / Балабко Л. В. Архангельск: САФУ, 2014 Томилова А. В., 2014. 163 c.
Размещено на Allbest.ru
Подобные документы
Решение конечно-разностной задачи Дирихле для уравнения Лапласа в прямоугольной области. Погрешность замены дифференциального уравнения разностным. Использование схемы узлов при получении сеточных уравнений. Сущность метода Зайделя. Листинг программы.
курсовая работа [348,5 K], добавлен 26.04.2011Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012Использование метода Зейделя для нахождения корней системы линейных алгебраических уравнений. Суть метода простых итераций. Оценка погрешности нормальной системы. Составление алгоритма, блок-схемы и кода программы. Тестовый пример и проверка в MathCad.
лабораторная работа [174,8 K], добавлен 02.10.2013Постановка задачи, математические и алгоритмические основы решения системы линейных алгебраических уравнений. Решение системы данных уравнений методом Гаусса с выбором главного элемента по столбцу. Функциональные модели и блок-схемы решения задачи.
курсовая работа [428,9 K], добавлен 25.01.2010Математическое описание алгоритмов схемы и операций для уравнения Лапласа. Изучение разностной схемы "крест" для нахождения численного решения эллиптического уравнения, задача Дирихле. Использование указателей в среде Matlab для решений методом Гаусса.
дипломная работа [859,3 K], добавлен 23.10.2014Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.
курсовая работа [149,7 K], добавлен 16.11.2008Приведение системы линейных алгебраических уравнений к треугольному виду прямым ходом метода Гаусса. Применение обратного хода метода вращений. Создание алгоритма, блок-схемы и кода программы. Тестовый пример решения уравнения и его проверка в MathCad.
лабораторная работа [164,3 K], добавлен 02.10.2013Решение задачи Коши для дифференциального уравнения методом Рунге-Кутта и Адамса с автоматическим выбором шага и заданным шагом. Интерполирование табличной функции. Численное решение системы линейных алгебраических уравнений методами простой итерации.
методичка [35,8 K], добавлен 15.03.2009Проектирование приложения, позволяющего находить решение системы алгебраических линейных уравнений матричным методом. Выбор количества уравнений, заполнение значений коэффициентов системы уравнений и свободных членов, алгоритм решения линейных уравнений.
курсовая работа [939,4 K], добавлен 16.01.2014Применение итерационных методов численного решения системы линейных алгебраических уравнений при вычислении на ЭВМ. Математические и алгоритмические основы решения задачи, метод Гаусса. Функциональные модели и блок-схемы, программная реализация решения.
курсовая работа [527,5 K], добавлен 25.01.2010