Численные методы решения уравнений

Расчет сеточной задачи с использованием теорем Куранта (об областях зависимости) и Филлипова (о связи устойчивости, аппроксимации и сходимости). Создание программы на Паскале для решения смешанной задачи для уравнения гиперболического типа методом сеток.

Рубрика Математика
Вид курсовая работа
Язык русский
Дата добавления 04.02.2012
Размер файла 161,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

сеточная задача курант уравнение гиперболический

Математика как наука возникла в связи с необходимостью решения практических задач: измерений на местности, навигации и т.д. Вследствие этого математика была численной математикой, ее целью являлось получение решения в виде числа.

Численное решение прикладных задач всегда интересовало математиков. Крупнейшие представители прошлого сочетали в своих исследованиях изучение явлений природы, получение их математической модели явления, и его исследование. Анализ усложненных моделей потребовал создания специальных, как правило, численных или асимптотических методов решения задач.

Настоящее время характерно резким расширением приложений математики, во многом связаны с созданием и развитием средств вычислительной техники. В результате появления ЭВМ с программным управлением менее чем за пятьдесят лет скорость выполнения арифметических операций возросла от 0, 1 операции в секунду при ручном счете до 1012 операций на современных серийных ЭВМ.

Задача решения интегрированных уравнений возникает как вспомогательная при решении краевых задач для дифференцированных уравнений с частными производными и как самостоятельная при исследовании работы ядерных реакторов, при решении так называемых обратных задач геофизики, при обработке результатов наблюдений и т.п.

Глава 1. Основные понятия теории метода сеток

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

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

Рассмотрим простейшие примеры решения задач сеточным методом.

1. Пусть в полуполосе 0? х ? 1, 0? t < ? решается уравнением

ut - uxx = f(x,t) (1)

при начальном и граничных условиях

u(x,0)=ц(x), ux(0, t)+a(t)u(0, t)=b(t), u(1, t)=0. (2)

Зададимся некоторыми h, >0 (1/h=M-целое) - шагами сетки.

Точки (mh, n) назовем узлами сетки (m,n); пусть - приближения к значениям u (mh, n),

= f(mh, n ), an = a(n ), bn = b(n),

uh и fh - функции, определенные на сетке, со значениям в узлах сетки и соответственно. Если искомое решение исходной дифференциальной задачи есть гладкая функция, то выполняются соотношения

Lhu (mh, n) |(m,n) ? ?

? = (3)

= ut(mh, n) ? uxx (mh, n) + O (h2+ ) = f (mh, n) + O(h2 + ),

l hu (mh, n) |(0, n) = + a (n) u (0, n) = ux (0, n) + a (n) u (0, n) + O(h) = b (n) + O(h).(4)

Исходя из этого можно сделать предположение, что решение системы

Lhuh|(m, n) = , 0 < m < M, 0 ? n,(5)

lhuh| (0, n) = bn, = 0, n > 0,

= ц (nh), 0? m ? M,(6)

является приближением к точному решению исходной задачи. Значения решения системы (5) - (6) можно находить последовательно при каждом n следующим образом: нам заданы, при каждом n величина = 0, значения при 0 < m < М находим из (5), а затем - из (6).

2. Пусть в полуплоскости t ? 0 решается задача Коши для уравнения ut + aux = 0 при начальном условии u (x, 0) = u0 (x). Зададимся сеткой с узлами в точках (mh, n) и заменим исходную дифференциальную задачу разностной:

+ a = 0, = u0(mh).

Тогда значения при n > 0 определяем последовательно из соотношения

= (1+ a/h)- (a/h)(7)

Покажем, что даже при бесконечно дифференцируемом решении сходимость приближенного решения сеточной задачи к решению дифференциальной при , h > 0 не обязательно имеет место. Зафиксируем некоторую точку (х0, t0) и предполагаем, что при измельчении сетки /h = к = const, M = x0/h и N = t0/ целые. Проводимые построения являются примером доказательства формулированной далее теоремы куранта об областях зависимости на конкретном примере рассматриваемого уравнения.

Точное решение дифференциальной задачи есть u(x, t) = u0(x - at) и поэтому u(х0, t0) = u0(x0 - at0).

Рассмотрим случай, когда

x0 - at0 [x0, x0,+ к -1t0].

Возьмем произвольную бесконечно дифференцируемую функцию u0(x), удовлетворяющую условиям u0(x0 - at0) ? 0, u0(x) = 0 при х [x0, x0 + к -1t0].

Из соотношения (7) следует, что значения uM выражается линейно через значения um при m [M, M +N], то есть, значения u0(mh) при mh [Mh, (M +N)h]. Так как Mh = х0, (M +N)h = x0 + к -1t0, то все эти значения u0(mh) равны нулю, и, следовательно, uM = 0. В то же время u(х0, t0) ? 0. Таким образом, построен пример когда решение сеточной задачи не сходится к решению дифференциальной.

Мы получим, что условие x0 - at0 [x0, x0,+ к -1t0] является необходимым условием сходимости решения сеточной задачи к решению дифференциальной в точке (х0, t0).

Последнее условие выполнено тогда и только тогда, если

0 ? ? а /h ? 1.

Заметим, что в случае рассматриваемой схемы этой условие случайно оказывается и достаточным условием сходимости. Можно показать, что при 0 ? ? а /h ? 1 и кусочно непрерывной u0(x) решение сеточной задачи сходится к решению дифференциальной во всех точках непрерывности u(x, t).

1.1 Теорема Куранта

Теорема Куранта (об областях зависимости). Для того, чтобы значения решений сеточной задачи в точке Р сходились при h > 0 к значению решения дифференциальной задачи необходимо, чтобы каждая точка Q множества зависимости для значения u(P) решения дифференциальной задачи была предельной h > 0 точкой для последовательности точек из областей зависимости сеточных задач.

Задача 1. Показать, что для разностной схемы (3) решение задачи Коши для уравнения (1) необходимым условием сходимости в классе бесконечно дифференцируемых правых частей и начальных условий является условие = 0(h).

Далее мы увидим, что в данном случае это условие не является достаточным.

Кроме вопроса о сходимости при анализе разностных аппроксимаций, возникает проблема анализа устойчивости получаемого результата относительно погрешностей в исходных данных задачи и при округлениях.

Проиллюстрируем сказанное на рассмотренном примере 2 гиперболического уравнения. Пусть a >0, a /h = 1. Тогда значение um определяются из рекуррентного соотношения

Un+1 = 2um - um+1.

При um = 0 решением сеточной задачи будет um = 0; пусть теперь u0 = е и um = 0 при m ? 0. Пользуясь этим рекуррентным соотношение, получаем, что тогда в узлах сетки um принимает следующие значения:

при m > 0 или m < - n,

при - n ? m ? 0.

Отсюда ¦um¦= 3nе, т.е. с ростом n разность между этим решением и решением um= 0 катастрофически возрастает; поэтому при a /h = 1 рассматриваемая схема не может быть признана пригодной для решения задачи в случае большого числа шагов также вследствие большого влияния вычислительной погрешности.

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

1) Сходится ли точное решение разностной задачи к решению дифференциальной;

2) Насколько сильно изменяется решение разностной задачи, если при вычислениях допускаются некоторые погрешности.

Построим формальный математический аппарат, помогающий при решении этих проблем.

Пусть в области D c границей Г = решается краевая задача

L(u) = f(8)

При граничных условиях

li(u) = ui на Гi, I = 1,…, s.(9)

Относительно Гi будим считать, что Гi - заданные части границы Г, причем различные Гi могут иметь непустое пересечение; li - некоторые операторы; f, ц1, …, цs - заданные функции.

Определим некоторое множество точек в пространстве независимых переменных Dh, которые назовем сеткой (как правило, Dh выбирают так, чтобы оно принадлежало замкнутой области D). Обычно сетка, на которой отыскивается решение, зависит от нескольких параметров (в предыдущем примере от T и h); однако во многих типичных случаях при дроблении сетки ее шаги связывают между собой каким-то законом вида = Аhб. Поэтому в дальнейших общих построениях и определениях для простоты мы указываем зависимость только от одного параметра h > 0.

Пусть Uh - пространство функции uh, определенных в точках сетки Dh, которые иначе называют узлами сетки, Lh - оператор, преобразующий функции из Oh в функции, определенные на некотором множестве Dh Dh; будем предполагать, что Dh D. Множество функций, определенных в точках будем обозначать через Fh. Для аппроксимации граничных условий (8) выбираются некоторые множество Гih Гi и в точках этих множеств определяются значения некоторых операторов над пространством функций Uh. Пусть Фih - пространство функций, определенных в точках множеств Гih. Если Х У и функция v определена на множестве У, то ее следом на множестве Х называют функцию, определенную на множестве Х и совпадающую там v. Если функция v определена на некотором множестве, содержащим Dh, то ее след на Dh, будем обозначать [v]h. Если функция v определена на некотором множестве, содержащим Гih, то ее след на Dh будем обозначать {v}ih, то ее след на Гih будем обозначать {v}ih.

Пусть U- пространство, к которому мы относим решение задачи (8), (9); F - пространство правых частей f ; Фi - пространство функций, определенных на Гi. Пусть в пространствах функций U, Uh, F, Fh, Фi, Фih, определенны нормы

¦*¦U, ¦*¦Uh , ¦*¦F, ¦*¦Fh , ¦*¦Ф, ¦*¦ Фih.

Эти нормы называют согласованными, если при h> 0 для любых достаточно гладких функций u U, f F, цi Фi выполняются соотношения

¦[u]h¦Uh>¦u¦U; ¦[f]h¦Fh>¦f¦F; ¦{цi}ih¦Фih>¦цi¦UФi.

Говорят, что сеточная функция uh сходится к решению задачи (8), (9), если

Исследование сходимости разностных аппроксимаций имеет смысл производить лишь в нормах, согласованных с некоторыми нормами в пространствах гладких функций. Если отказаться от требования согласованности норм, то условие сходимости иногда может перестать быть содержательным: в случае любой последовательности сеточных функций uh путем введения некоторого множителя в определение нормы можно добиться, чтобы эта последовательность сходилась к решению задачи u.

Рассмотрим некоторую сеточную задачу

Lh(uh) = f h, (10)

lih(uh) = цih, I = 1,…, s. (11)

Говорят, что сеточная задача (10), (11) аппроксимирует дифференциальную задачу (8), (9), если выполняется следующее условие: при любых гладких u, f, цi

z(h) = ¦Lh([u]h) - [L(u)]h¦Fh + ¦fh - [f]h¦ Fh + ¦lih([u]h) - {li(u)}ih¦Фih + цih - {цi}ih¦Фih) > 0, если h> 0. (12)

Проиллюстрируем приведенные определения на примере рассмотренной аппроксимации уравнения теплопроводности. Через D будем обозначать множество точек 0 < х < 1, 0 < t ? Т; пусть Г1- отрезок [0, 1]оси х, Г2 - полуинтервал (0, Т] оси Т, Г3 - полуинтервал (0, Т] прямой х= 1; точки (0, 0),

(1, 0) можно было бы отнести и к множествам Г2, Г3 соответственно. Если 1/ h= M, N - целые, N = [T/], то через Dh обозначим множество точек (mh, n) - узлов (m,n), удовлетворяющих условиям 0? m ? M, 0 ? n ? N. Определим сеточный оператор Lh соотношением

Lhuh|(m,n) = -

Тогда множество Dh будет состоять из узлов (m, n) таких, что 0 < m < М, 0 ? n < N; в остальных узлах (m,n) при uh Uh значения Lhuh не будут определенны. Если бы мы положили правую часть (13) равной Lhuh|(m,n+1), то множество Dh состояло бы из узлов (m,n) таких, что 0 < m < М, 0 < n ? N. Правую часть сеточной задачи выберем в виде

fh |(m,n)= f (mh, n).

Тогда величина ¦ fh - [f ]h¦Fh, входящая в выражение z(h), есть нуль. Это соотношение выполняется не для всех схем; например, из соображения повышения точности для других схем иногда разумнее было бы полагать правую часть разностной задачи в точке (m,n) равной f(mh, (n+0.5)). В качестве согласованных норм ¦*¦Uh и ¦*¦U при исследование этой задачи обычно выбирают нормы

¦uh¦Uh = sup¦¦,

0?n?N, 0?m?M

¦u¦U = sup¦u(x,t)¦(14)

0?t?T, 0?x?1

или же нормы

¦uh¦Uh = sup,

0?n?N

¦u¦U = sup

0?t?T(15)

В дальнейшем для простоты изложения рассматриваем случай линейных задач, когда операторы L, li, Lh, lih линейные.

Тогда вводятся следующее определение устойчивости (корректности) сеточной задачи (10), (11). Эту задачу называют устойчивой, если при h?h0 существуют постоянные М0 u Мi, не зависящие от h, такие, что

¦uh¦Uh ? M0¦Lhuh¦Fh + (16)

Как видно из определения, в случае линейной задачи в определение устойчивости не входят функции fh и цih. Для случаю линейных задач разностная схема (10), (11) представляет собой систему линейных алгебраических уравнений. Поэтому из (16) следует, что при fh?0, цih ? 0, система уравнений (10), (11) имеет лишь нулевое решение; поэтому на основании теоремы Кронекера-Капелли задача (10), (11) разрешима при любых правых частях fh, цih. Таким образом, в случае линейной задачи из условия следует однозначная разрешимость системы сеточных уравнений при любых правых частях. Если и - решения сеточных задач

Lh = , lih = , i = 1, . . . , s;

Lh = , lih = , i = 1, . . . , s,

то при линейных Lh и lih согласно (15) можно написать

¦ - ¦Uh ?M0¦ Lh - Lh¦Fh + = M0 ¦ - ¦ Fh + .(17)

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

Пусть u U. Величину = Lh[u]h - fh называют погрешностью аппроксимации уравнения на решении задачи, а величины rh= lih[u]h - цih - погрешностями аппроксимации граничных условий на решении задачи. Положим

с0 (h) = ¦ Lh[u]h - fh¦Fh, сi (h) = ¦ lih[u]h - цih¦Фih.

Если u - решение задачи (8), (9), то величину с (h) = называют мерой погрешности аппроксимации разностной схемы (10), (11) дифференциальной задачи (8), (9) на решении. Если с (h) > 0 при h > 0 и u - решение (8), (9), то говорят, что (10), (11) аппроксимирует (8), (9) на решении задачи. Порядок величины с (h) при h > 0 называют порядком аппроксимации на решении.

Выше обсуждалась проблема чувствительности реально получаемого приближенного решения сеточной задачи к округлениям в процессе вычисления этого решения, или, иначе, проблема устойчивости приближенного решения сеточной задачи к погрешностям округления. решение этой проблемы тесно связано с решением вопроса об устойчивости сеточной задачи, поскольку округления, допускаемые при вычислениях, можно рассматривать как возмущения коэффициентов сеточной задачи.

Найдем связь между аппроксимацией, устойчивостью и сходимостью.

Предположим, что сеточная аппроксимация (10), (11) удовлетворяет следующим условиям:

1)решение дифференциальной задачи удовлетворяет точно (s- k)-сеточным граничным условиям

Lih[u]h = цih, i= l + 1, …, s, т.е. pi(h) = 0, I = k + 1, …, s;

2)на классе функций из Uh , удовлетворяющих однородным граничным условиям

lihuh = 0, i = k + 1, …, s,

выполняется условие устойчивости

¦uh¦Uh ? M0¦Lhuh¦Fh + uh¦Фih

1.2 Теорема Филлипова

Теорема Филлипова (о связи устойчивости, аппроксимации и сходимости). При сформулированных выше условиях выполняется неравенство

¦uh- [u]h¦Uh ? (18)

Если разностная задача аппроксимирует дифференциальную, то

¦uh- [u]h¦Uh > 0 при h > 0.

Доказательство. Поскольку lih(uh - [u]h) = 0 при i = k + 1,…, s, то воспользуемся условием (2), подставив в него uh - [u]h вместо uh. Имеем

¦uh- [u]h¦Uh ? M0 ¦ Lh uh - Lh[u]h¦Fh + uh - lih[u]h¦Фih;

Подставляя сюда Lh uh = f h, lihuh = цh и воспользовавшись определением pi(h), получаем (18). Если имеет место аппроксимация, т.е. pi(h) > 0, I = 0,…,k, pi(h) > 0 при h > 0, то из (18) следует справедливость второго утверждения теоремы: ¦uh- [u]h¦Uh > 0.

В случае гладких решений исследование аппроксимации схемы на решении является относительно несложной задачей и теорема Филлипова переносит центр тяжести на исследование устойчивости сеточной задачи.

Часто случается, что сеточная задача устойчива в одной норме, согласованной с некоторой дифференциальной нормой, но неустойчива в другой. Так может, например, обстоять дело в случае норм, определяемых равенствами (14), (15). В случае гладких решений для практической приемлемости схемы обычно достаточно устойчивости в какой-либо согласованной норме. В случае разрывных решений к разностным аппроксимациям часто предъявляются некоторые дополнительные требования относительно поведения их решений вблизи мест разрыва решений; в этих случаях часто недостаточно устойчивости в произвольной согласованной норме. Например, требование устойчивости в определенных нормах предъявляется в отношения аппроксимаций задач газовой динамики.

Если выполняется условие согласования, то при гладких u, переходя к пределу в (16) при h>0, получаем неравенство

¦u¦U ? M0¦Lu¦F + Фi (19)

Из этого соотношения следует корректность постановки дифференциальной задачи (8), (9). Такой путь-получение оценок (16), а из них оценок (19)-используется для исследования корректности дифференциальных задач вида (8), (9), для доказательства существования и единственности их решений.

Глава 2. Решение смешанной задачи для уравнения гиперболического типа методом сеток

Рассмотрим смешанную задачу для волнового уравнения ( 2 u/ t2) = c 2 * ( 2u/ x2) (1). Задача состоит в отыскании функции u(x,t) удовлетворяющей данному уравнению при 0 < x < a, 0 < t T, начальным условиям u(x,0) = f(x), u(x,0)/ t = g(x) , 0 x a и нулевыми краевыми условиями u(0,t) = u(1,t)=0.

Так как замена переменных t ct приводит уравнение (1) к виду ( 2 u/ t2) = ( 2u/ x2), то в дальнейшем будем считать с = 1.

Для построения разностной схемы решения задачи строим в области D = {(x,t) | 0 x a, 0 t T } сетку xi = ih, i=0,1 ... n , a = h * n, tj = j* , j = 0,1 ... , m, m = T и аппроксимируем уравнение (1) в каждом внутреннем узле сетки на шаблоне типа "крест".

Используя для аппроксимации частных производных центральные разностные производные, получаем следующую разностную аппроксимацию уравнения (1) .

Здесь uij - приближенное значение функции u(x,t) в узле (xi,tj).

Полагая, что = / h , получаем трехслойную разностную схему

ui,j+1 = 2(1- 2 )ui,j + 2 (ui+1,j- ui-1,j) - ui,j-1 , i = 1,2 ... n. (5)

Для простоты в данной лабораторной работе заданы нулевые граничные условия, т.е. 1(t) 0, 2(t) 0. Значит, в схеме (5) u0,j= 0, unj=0 для всех j. Схема (5) называется трехслойной на трех временных слоях с номерами j-1, j , j+1. Схема (5) явная, т.е. позволяет в явном виде выразить ui,j через значения u с предыдущих двух слоев.

Численное решение задачи состоит в вычислении приближенных значений ui,j решения u(x,t) в узлах (xi,tj) при i =1, ... n, j=1,2, ... ,m . Алгоритм решения основан на том, что решение на каждом следующем слое ( j = 2,3,4, ... n) можно получить пересчетом решений с двух предыдущих слоев ( j=0,1,2, ... , n-1) по формуле (5). На нулевом временном слое (j=0) решение известно из начального условия ui0 = f(xi).

Для вычисления решения на первом слое (j=1) в данной лабораторной работе принят простейший способ, состоящий в том, что если положить u(x,0)/ t ( u( x, ) - u(x,0) )/ (6) , то ui1=ui0+ + (xi), i=1,2, ... n. Теперь для вычисления решений на следующих слоях можно применять формулу (5). Решение на каждом следующем слое получается пересчетом решений с двух предыдущих слоев по формуле (5).

Описанная выше схема аппроксимирует задачу с точностью до О( +h2). Невысокий порядок аппроксимации по объясняется использованием слишком грубой аппроксимации для производной по е в формуле (6).

Схема устойчива, если выполнено условие Куранта < h. Это означает, что малые погрешности, возникающие, например, при вычислении решения на первом слое, не будут неограниченно возрастать при переходе к каждому новому временному слою. При выполнении условий Куранта схема обладает равномерной сходимостью, т.е. при h 0 решение разностной задачи равномерно стремится к решению исходной смешанной задачи.

Недостаток схемы в том, что как только выбранная величина шага сетки h в направлении x , появляется ограничение на величину шага по переменной t . Если необходимо произвести вычисление для большого значения величины T , то может потребоваться большое количество шагов по переменной t. Указанный недостаток характерен для всех явных разностных схем.

Для оценки погрешности решения обычно прибегают к методам сгущения сетки.

Для решения смешанной задачи для волнового уравнения по явной разностной схеме (5) предназначена часть программы, обозначенная Subroutine GIP3 Begn ... End . Данная подпрограмма вычисляет решение на каждом слое по значениям решения с двух предыдущих слоев.

Входные параметры :

hx - шаг сетки h по переменной х;

ht - шаг сетки по переменной t;

k - количество узлов сетки по x, a = hn;

u1 - массив из k действительных чисел, содержащий значение решений на ( j - 1 ) временном слое, j = 1, 2, ... ;

u2 - массив из n действительных чисел, содержащий значение решений на j - м временном слое, j = 1, 2, ... ;

u3 - рабочий массив из k действительных чисел.

Выходные параметры :

u1 - массив из n действительных чисел, содержащий значение решения из j - м временном слое, j = 1, 2, ... ;

u2 - массив из n действительных чисел, содержащий значение решения из ( j +1) - м временном слое, j = 1, 2, ... .

К части программы, обозначенной как Subroutine GIP3 Begin ... End происходит циклическое обращение, перед первым обращением к программе элементам массива u2 присваиваются начальные значения, а элементам массива u1 - значения на решения на первом слое, вычисленные по формулам (6). При выходе из подпрограммы GIP3 в массиве u2 находится значение решения на новом временном слое, а в массиве u1 - значение решения на предыдущем слое.

Порядок работы программы:

1) описание массивов u1, u2, u3;

2) присвоение фактических значений параметрам n, hx, ht, наблюдая условие Куранта;

3) присвоение начального значения решения элементам массива и вычисленное по формулам (6) значение решения на первом слое;

4) обращение к GIP3 в цикле k-1 раз, если требуется найти решение на k-м слое ( k 2 ).

Пример:

Решить задачу о колебании струны единичной длины с закрепленными концами, начальное положение которой изображено на рисунке. Начальные скорости равны нулю. Вычисления выполнить с шагом h по x, равным 0.1, с шагом по t, равным 0.05, провести вычисления для 16 временных слоев с печатью результатов на каждом слое. Таким образом, задача имеет вид

( 2 u/ t2) = ( 2 u/ x 2) , x [0,1] , t[0,T] ,

u (x,0)=f (x) , x[0,a], u(x,0)/ t=g(x), x[0,a],

u ( 0 , t ) = 0, u ( 1 , t ) = 0, t [ 0 , 0.8 ],

2x , x [0,0.5] ,

f(x) = g( x ) = 0

2 - 2x , x [0.5,1] ,

Строим сетку из 11 узлов по x и выполняем вычисления для 16 слоев по t. Программа, и результаты вычисления приведены далее.

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

Program Laboratornaya_rabota_43;

Const

hx = 0.1 ; { Шаг по x - hx }

ht = 0.05 ; { Шаг по t - ht }

n = 11 ; { Количество узлов }

Function f(x : Real) : Real; { Данная функция }

{ вычисляющая решение при t=0 }

Begin

If x <= 0.5 then

f := 2 * x

else

f := 2 - 2 * x;

End;

Function g(x : Real) : Real; { Данная функция }

{ вычисляющая производную решения при t=0 }

Begin

g := 0;

End;

Var

xp : Array[1..n] of Real;

i,j,n1 : Word;

x,t,a1,b1 : Real;

u1,u2,u3 : Array[1..n] of Real;

Begin

n1 := n;

WriteLn('Приложение 2');

WriteLn('------------');

WriteLn('Результат, полученный при вычислении программы :');

WriteLn;

xp[1] := 0;

xp[n] := 1;

For i := 2 to ( n - 1 ) do

Begin

x := (i-1) * hx;

xp[i] := x;

u1[i] := f(x); { u(x,0) на 0 слое }

u2[i] := u1[i] + ht * g(x); { u(x,ht) на 1 слое }

End;

{ /// Задание граничных условий \\\ }

u1[1] := 0 ; { u(0,0) }

u1[n] := 0 ; { u(1,0) }

u2[1] := 0 ; { u(0,ht) }

u2[n] := 0 ; { u(1,ht) }

u3[1] := 0 ; { u(0,2ht) }

u3[n] := 0 ; { u(1,2ht) }

{ /// Печать заголовка \\\ }

Write(' ');

For i := 1 to n do Write(' x=', xp[i]:1:1);

WriteLn;

t := 0;

{ /// Печать решения на нулевом слое \\\ }

Write('t=',t:2:2,' ');

For i := 1 to n do

If u1[i] >= 0 then Write(' ',u1[i]:3:3) else Write(u1[i]:3:3) ;

t := t + ht;

{ /// Печать решения на первом слое \\\ }

WriteLn;

Write('t=',t:2:2,' ');

For i := 1 to n do

If u2[i] >= 0 then Write(' ',u2[i]:3:3) else Write(u2[i]:3:3);

For j := 1 to 15 do

Begin

{Subroutine GIP3 Begin}

n1 := n1-1;

{Вычисление параметра сетки для проверки условия Куранта}

a1 := ht/hx;

if a1 > 1 then WriteLn('Нарушено условие Куранта') else

Begin

b1 := a1 * a1;

a1 := 2 * ( 1 - b1);

{Вычисление решения на очередном слое}

For i := 2 to n do u3[i] := a1*u2[i] + b1 * (u2[i+1] +

u2[i-1]) - u1[i];

For i := 2 to n do

Begin

u1[i] := u2[i];

u2[i] := u3[i]

End;

End;

u1[n] := 0;

u2[n] := 0;

u3[n] := 0;

{Subroutine GIP3 End}

t := t + ht;

WriteLn;

Write('t=',t:2:2,' ');

For i := 1 to n do

{Вывод результатов}

If u2[i] >= 0 then Write(' ',u2[i]:3:3) else Write(u2[i]:3:3);

End;

WriteLn;

WriteLn;

End.

ЗАКЛЮЧЕНИЕ

В данной курсовой работе рассмотрены использование численных методов для решения смешанной задачи для уравнения гиперболического типа методом сеток, приводятся основные понятия. Рассмотренные теоретические вопросы дают возможность создания программы на Паскале для решение смешанной задачи для уравнения гиперболического типа методом сеток. В курсовой работе приводится текст данной программы, рассматривается структура программы, анализируются все подпрограммы.

Данная программа может быть использована в различных областях, где требуется решение смешанной задачи для уравнения гиперболического типа методом сеток.

СПИСОК ЛИТЕРАТУРЫ

1. Бахвалов Н., Жидков Н., Кобельков Г. Численные методы. - М., 2007.- 636 с.

2. Кацман Ю.Я. Прикладная математика. Численные методы. ТПУ, 2000.- 168 с.

3. Гениева Е. Что такое Интернет // Библиотека.-1996.-№5.-С.44-47.

4. Иванова А.И. Проблемы изучения информационных потребностей на современном этапе.-М.,1991.-29 с.-(Деп. в ИНИОН 17.02. 96. №19144).

5. Самарский А.А., Капорин И.Е. Некоторые современные методы решения сеточных уравнений. - М., 1983, 575 с.

6. Колюжов Ю.И. Разработка и перспективы применения экспертных систем в библиотеках: Автореф. дисс... канд. пед. наук.- М., 1988.- 16 с.

7. Основы компьютерной культуры: Программа курса для студентов библ.-инф. фак-та / Сост. проф. А.И. Каптерев.-М.: МГУК, 1996.- 15 с.

8. Форсайт Дж. и др. Машинные методы математический вычислений. - М., 1980. - 342 с.

9. Крылов В.И., Бобков В.В. Вычислительные методы. - М., 1976. - 236с.

10. Самарский А.А., Николаев Е.С. Методы решения сеточных уравнений. - М., 1978. - 420 с.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.