Рефетека.ру / Информатика и програм-ие

Дипломная работа: Разностные схемы для уравнения переноса на неравномерных сетках

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Якутский государственный университет имени М.К. Аммосова

Институт математики и информатики

Кафедра прикладной математики


Дипломная работа

“Разностные схемы для уравнения переноса на неравномерных сетках”


“Специальность 010501.65-

Прикладная математика и информатика”

Специализация “Математическое моделирование”

Едисеева Зоя Никитична


Научный руководитель: Охлопков Н.М

к.ф-м.н. профессор


Рецензент: Николаев Владимир Егорович

к.ф.-м.н., доцент


Якутск 2009

Содержание


Введение

Глава I. Основные понятия разностных схем

1.1 Сеточная область

1.2 Сеточная функция. Пространство сеточных функций. Нормы сеточных функций

1.3 Аппроксимация дифференциальных операторов

1.4 Разностная схема

1.5 Корректность разностной схемы

1.6 Аппроксимация и сходимость

1.7 Неравномерная сетка

1.7.1 Построение сеточной области

1.7.2 Формирование сетки

Глава II. Одномерное уравнение переноса с переменными коэффициентами

2.1 Постановка задачи

2.2 ”Явные” схемы

2.3 Неявные схемы

2.3.1 Центрально-разностная схема

2.3.2 Трехточечная схема с весом

Глава III. Одномерное уравнение переноса с постоянными коэффициентами

3.1 Постановка задачи

3.2 Схема бегущего счета

3.3 Неявные схемы

3.3.1 Центрально-разностная схема

3.3.2 Трехточечная схема весом

3.3.3 Схема “прямоугольник”

3.3.4 Схема со сглаживанием

3.3.5 Схема прямоугольник со сглаживанием

3.3.6 “Шахматная ” схема

Заключение

Использованная литература

Приложение 1

Приложение 2

Приложение 3

Приложение 4

Приложение 5

Приложение 6


Введение


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

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

Разностная схема должна удовлетворять следующим основным требованиям:

1.Определенный порядок аппроксимации, устойчивость экономичность, консервативность, однородность.

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

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

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

Объектом исследования выбраны разностные схемы, аппроксимирующие исходную задачу.

Цель дипломной работы – выбор наиболее устойчивой разностной схемы.

Для достижения цели поставлены следующие задачи:

- рассмотреть разностные методы решения для уравнений переноса с переменными и постоянными коэффициентами на неравномерных сетках;

- выполнить численный эксперимент рассматриваемых схем.

Глава I.Основные понятия теории разностных схем


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

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

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


1.1 Сеточная область


Для построения разностной схемы необходимо построить сетку Gh-конечное множество точек, принадлежащих G, плотность распределения которых характеризуется параметрами h-шагом сетки. Пусть область изменения аргумента x есть отрезок G={0≤x≤1}. Разобьем этот отрезок точками xi=i∙h, i=0,n на n равных частей длины h=1/n каждая. Множество точек xi=i∙h, называется равномерной сеткой на отрезке 0≤x≤1 и обозначим Разностные схемы для уравнения переноса на неравномерных сетках={xi=i∙h, i=0,n} , а число h-расстояние между точками (узлами) сетки называется шагом сетки. Разбиение отрезка 0≤x≤1 точками xi, i=0,n можно производить произвольным образом - 0<x1<…<xn-1<1. Тогда получаем сетку Разностные схемы для уравнения переноса на неравномерных сетках={xi, i=0,n, x0=0, xn=1} c шагами hi=xi-xi-1, которое зависит от номера узла сетки. Если hi≠hi+1 хотя бы в одной точке, то сетка называется неравномерной и такую сетку обозначают ŵРазностные схемы для уравнения переноса на неравномерных сетках. Точки x0 и xn назовем граничными узлами и обозначим их гh. Остальные узлы назовем внутренними и обозначим их wh. Узлы соседние с граничащими назовем приграничными. Тогда имеем


Разностные схемы для уравнения переноса на неравномерных сетках=wh Разностные схемы для уравнения переноса на неравномерных сеткахгh .


1.2 Сеточная функция. Пространство сеточных функций. Нормы сеточных функций


Функция y=y(xi) дискретного аргумента xi называется сеточной функцией, определенной на сетке Разностные схемы для уравнения переноса на неравномерных сетках. Сеточные функции можно рассматривать как функции целочисленного аргумента, являющегося номером узла сетки, т. е. y=y(xi)=y(i). Далее мы будем писать y(xi)=yi.

Сеточная область wh зависит от параметра h. При различных значениях параметра h имеем различные сеточные области. Поэтому и сеточные функции yh(x) зависят от параметра h.

Функции u(x) непрерывного аргумента являются элементами функционального пространства H. Множество сеточных функций yh(x) образует пространство Hh. Таким образом, в методе сеток пространство H, заменяется пространством Hh сеточных функций yh(x).

Так как рассматривается множество сеток {wh}, то мы получаем множество {Hh} пространств сеточных функций, определенных на {wh}.

Пусть u(x) - решение исходной непрерывной задачи


Lu(x)=f(x), (1)


Разностные схемы для уравнения переноса на неравномерных сетках; yh- решение разностной задачи, Разностные схемы для уравнения переноса на неравномерных сетках. Для теории приближенных вычислений представляет большой интерес оценка близости u(x) и yh(x), но u(x) и yh(x) являются элементами из различных пространств. Пространство H отображается на пространство Hh. Каждой функции Разностные схемы для уравнения переноса на неравномерных сетках ставится в соответствие сеточная функция yh(x), x Разностные схемы для уравнения переноса на неравномерных сеткахwh, так что yh=Phu Разностные схемы для уравнения переноса на неравномерных сеткахHh, где Ph- линейный оператор из H в Hh. Это соответствие можно осуществить различными способами, т. е. зависит от выбора оператора Ph. Теперь, имея сеточную функцию uh, образуем разность yh-uh, которая является вектором пространства Hh. Близость yh и uh характеризуется числом Разностные схемы для уравнения переноса на неравномерных сеткахyh-uhРазностные схемы для уравнения переноса на неравномерных сеткахHh , где Разностные схемы для уравнения переноса на неравномерных сеткахHh – норма на Hh.

Соответствие функций u(x) и uh можно установить различными способами, например,


uh=u(x), x Разностные схемы для уравнения переноса на неравномерных сетках wh.


В дальнейшем мы будем пользоваться этим способом соответствия.

В линейном пространстве Hh введем норму Разностные схемы для уравнения переноса на неравномерных сеткахHh, которая является аналогом нормы Разностные схемы для уравнения переноса на неравномерных сеткахН в исходном пространстве Н. Обычно принято выбирать норму в пространстве Hh так, чтобы при стремлении к нулю h она переходила в ту или иную норму функций, заданных на всем отрезке, т.е. чтобы выполнялось условие


Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сеткахHh=Разностные схемы для уравнения переноса на неравномерных сеткахH, (2)

где Разностные схемы для уравнения переноса на неравномерных сеткахН- норма в пространстве функций, определенных на отрезке, которому принадлежит решение.

Условие (2) называют условием согласования в пространствах Hh и Н.

Рассмотрим простейшие типы норм в Hh для случая сеток


wh={xi=i∙h} на отрезке 0≤x≤1.


1. Норма Разностные схемы для уравнения переноса на неравномерных сеткахHh=Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках

удовлетворяет условию (2), если в качестве Н рассматривать пространство непрерывных функций с нормой


Разностные схемы для уравнения переноса на неравномерных сеткахH=Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках, H=[a,b],


а сеточную функцию определять в виде (2), т.е.


yh(x)=uh(x), x Разностные схемы для уравнения переноса на неравномерных сетках wh


2. Норма Разностные схемы для уравнения переноса на неравномерных сеткахHh=Разностные схемы для уравнения переноса на неравномерных сетках

удовлетворяют условию (2), если за Н принять пространство непрерывных функций с нормой


Разностные схемы для уравнения переноса на неравномерных сеткахH=Разностные схемы для уравнения переноса на неравномерных сеткахu2(x)dx, H=C[a,b] ,


а сеточную функцию определять в виде


yh=uh(x), x Разностные схемы для уравнения переноса на неравномерных сетках wh.

1.3 Аппроксимация дифференциальных операторов


Пусть имеем дифференциальный оператор Разностные схемы для уравнения переноса на неравномерных сетках

Этот оператор можно аппроксимировать несколькими способами. Например,


Разностные схемы для уравнения переноса на неравномерных сетках - правая разностная производная; (3)

Разностные схемы для уравнения переноса на неравномерных сетках - левая разностная производная; (4)

Разностные схемы для уравнения переноса на неравномерных сетках - центральная разностная производная; (5)


Можно взять их линейную комбинацию

Разностные схемы для уравнения переноса на неравномерных сетках, (6) где у- вещественный параметр.

При у=1 из (6) получаем аппроксимацию (3); при у=0 – аппроксимацию (4), а при у=0.5- аппроксимацию (7).

Чтобы показать погрешность аппроксимации, разложим по формуле Тейлора


Разностные схемы для уравнения переноса на неравномерных сетках


предполагая, что функция v(x) достаточно гладкая в некоторой окрестности (x-h0,x+h0) точки х, h<h0,h0- фиксированное число.

Подставляя это разложение в (3),(4),(5), получим:


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда видно, что


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


Пусть L- дифференциальный оператор, Lh- разностный оператор, заданный на сетке wh. Говорят, что разностный оператор Lh:

аппроксимируем дифференциальный оператор L в узле xi Разностные схемы для уравнения переноса на неравномерных сетках wh, если

Разностные схемы для уравнения переноса на неравномерных сетках, где v(x)- достаточно гладкая функция, стремится к нулю при h→0;

аппроксимируем L с порядком n >0 в узле xi Разностные схемы для уравнения переноса на неравномерных сетках wh если Разностные схемы для уравнения переноса на неравномерных сетках, т.е.

Разностные схемы для уравнения переноса на неравномерных сетках, M=const>0.

В качестве следующего примера рассмотрим оператор Разностные схемы для уравнения переноса на неравномерных сетках.

Для аппроксимации этого оператора используем трехточечный шаблон (x-h, x, x+h).

Замечая Разностные схемы для уравнения переноса на неравномерных сетках, имеем


Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда


Разностные схемы для уравнения переноса на неравномерных сетках

Пользуясь разложением (7), покажем, что порядок аппроксимации равен двум, т.е.


Разностные схемы для уравнения переноса на неравномерных сетках


так как Разностные схемы для уравнения переноса на неравномерных сетках


1.4 Разностная схема


Как правило, дифференциальное уравнение решается с некоторыми дополнительными условиями - начальными (задача Коши), краевыми (краевая задача) либо и с начальными, и с краевыми условиями (смешанные задачи). Эти дополнительные условия при переходе к разностным уравнениям надо так же аппроксимировать.

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


Lu=f(x), xРазностные схемы для уравнения переноса на неравномерных сеткахG (8)


с дополнительным условием


lu=ц(x), xРазностные схемы для уравнения переноса на неравномерных сеткахГ. (9)


Введем в области Разностные схемы для уравнения переноса на неравномерных сетках Г сетку Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках

и поставим в соответствие задаче (8), (9) разностную задачу


Lhyh=fh, xРазностные схемы для уравнения переноса на неравномерных сеткахwh, (10)

Lhyh=цh, xРазностные схемы для уравнения переноса на неравномерных сеткахгh. (11)


Функция yh(x), fh(x), цh(x) зависят от шага сетки. Меняя h, получаем множества функций {yh}, {fh}, {цh}, зависящих от параметра h. Таким образом, мы рассматриваем не одну разностную задачу, а семейство задач, зависящее от параметра h. Это семейство задач называется разностной схемой.

Рассмотрим примеры разностных схем, аппроксимирующих дифференциальные задачи.

Пример 1. Имеем задачу Коши


Разностные схемы для уравнения переноса на неравномерных сетках, 0<x≤1, л = const

Разностные схемы для уравнения переноса на неравномерных сетках.


Используем аппроксимации:


Разностные схемы для уравнения переноса на неравномерных сетках;

Разностные схемы для уравнения переноса на неравномерных сетках.


После этого имеем разностную схему:


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


Расчетный алгоритм имеем вид


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


Пример 2. Рассмотрим задачу Коши.

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


Воспользуемся следующими аппроксимациями:


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


После этого имеем разностную схему


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках


1.5 Корректность разностной схемы


Пусть имеем дифференциальную задачу


Разностные схемы для уравнения переноса на неравномерных сетках, (12)


Разностные схемы для уравнения переноса на неравномерных сетках (13) и на сетке Разностные схемы для уравнения переноса на неравномерных сетках аппроксимируем ее разностной схемой


Разностные схемы для уравнения переноса на неравномерных сетках (14)

Разностные схемы для уравнения переноса на неравномерных сетках (15)

Задача (12), (13) поставлена корректно, если выполнены условия:

задача однозначно разрешима при любых правых частях Разностные схемы для уравнения переноса на неравномерных сетках

решение задачи непрерывно зависит от правых частей Разностные схемы для уравнения переноса на неравномерных сеткахт.е.


Разностные схемы для уравнения переноса на неравномерных сеткахH ≤ M1∙Разностные схемы для уравнения переноса на неравномерных сеткахH +M2∙Разностные схемы для уравнения переноса на неравномерных сеткахH.


Аналогично определяется понятие корректности разностной схемы (14), (15). Говорят, что разностная схема (14), (15) корректна, если при всех достаточно малых │h│< h0:

1) решение yh разностной схемы существует и единственно для всех входных данных f hРазностные схемы для уравнения переноса на неравномерных сеткахHh, цh Разностные схемы для уравнения переноса на неравномерных сетках Hh;

2) существуют постоянные M1>0, M2>0 не зависящие от h и такие, что при любых f hРазностные схемы для уравнения переноса на неравномерных сетках Hh, цh Разностные схемы для уравнения переноса на неравномерных сетках Hh справедлива оценка


Разностные схемы для уравнения переноса на неравномерных сеткахHh ≤ M1∙Разностные схемы для уравнения переноса на неравномерных сеткахHh +M2∙Разностные схемы для уравнения переноса на неравномерных сеткахHh. (16)


Свойство 2), означающее непрерывную зависимость, равномерную относительно h, решения разностной схемы от правых частей, называется устойчивостью разностной схемы. Рассмотрим примеры.

Пример 1. Пусть имеем задачу:


Разностные схемы для уравнения переноса на неравномерных сетках (17)


Точным решением задачи (17) является функция


Разностные схемы для уравнения переноса на неравномерных сетках

Если ввести новую функцию Разностные схемы для уравнения переноса на неравномерных сетках то получим задачу


Разностные схемы для уравнения переноса на неравномерных сетках (18)


Решением задачи (18) является функция


Разностные схемы для уравнения переноса на неравномерных сетках


Задачу (18) аппроксимируем на равномерной сетке Разностные схемы для уравнения переноса на неравномерных сетках = {xi=ih, i=0,n} схемой:


Разностные схемы для уравнения переноса на неравномерных сетках (19)


Перепишем схему (19) в виде


Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда имеем


Разностные схемы для уравнения переноса на неравномерных сетках


Рассмотрим фиксированную точку Разностные схемы для уравнения переноса на неравномерных сетках и выберем последовательность сеток Разностные схемы для уравнения переноса на неравномерных сетках таких, чтобы Разностные схемы для уравнения переноса на неравномерных сетках = i0 ∙ h, т.е. Разностные схемы для уравнения переноса на неравномерных сетках является узлом сетки Разностные схемы для уравнения переноса на неравномерных сетках при h→0.

Вычислим значение у в этой точке y(Разностные схемы для уравнения переноса на неравномерных сетках) = yi0=si0y0. Так как │s│< 1 при б>0

и любых h, то│ y(Разностные схемы для уравнения переноса на неравномерных сетках)│≤│si0│∙│y0│< │y(0)│ при любом h. Из этого

неравенства видно, что решение разностной схемы (19) непрерывно зависит от вход€ных данных. В таких случаях говорят, что разностная схема устойчива по входным данным (по начальным условиям и по правой части).

Пример 2. Имеем уравнение


Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (20)


Точным решением задачи (20) является функция


Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда следует неравенство


Разностные схемы для уравнения переноса на неравномерных сетках, (21)


при л>0.

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


Разностные схемы для уравнения переноса на неравномерных сетках (22)


Задачу (20) аппроксимируем явной схемой Эйлера


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (23)

Разностные схемы для уравнения переноса на неравномерных сетках.


Выражая решение схемы (23) через начальное условие, имеем

Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


Неравенство (22) будет выполнено, если


Разностные схемы для уравнения переноса на неравномерных сетках

т.е. Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках.


Таким образом, явная схема Эйлера условно устойчива.

Пример 3. Для численного решения задачи (20) используем неявную схему Эйлера


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (24)


Отсюда


Разностные схемы для уравнения переноса на неравномерных сетках т.е.

Разностные схемы для уравнения переноса на неравномерных сетках при Разностные схемы для уравнения переноса на неравномерных сетках


Схема (24) абсолютно устойчива, ибо выполнено условие (22) при любом h.

Пример 4. Задачу (20) аппроксимируем схемой с весом


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (25)


Отсюда имеем

Разностные схемы для уравнения переноса на неравномерных сетках


Условие (22) будет выполнено, если


Разностные схемы для уравнения переноса на неравномерных сетках т.е Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда получаем


Разностные схемы для уравнения переноса на неравномерных сетках


Схема абсолютно устойчива при


Разностные схемы для уравнения переноса на неравномерных сетках и Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


т.е. схема (25) условно устойчива при Разностные схемы для уравнения переноса на неравномерных сетках


1.6 Аппроксимация и сходимость


Для того, чтобы выяснить, с какой точностью приблизили функцию u=u(x) с помощью функции y(x), мы должны их сравнить. Пусть uh значение функции u(x) на сеточной области Разностные схемы для уравнения переноса на неравномерных сетках, т.е. uh Разностные схемы для уравнения переноса на неравномерных сеткахHh.

Рассмотрим погрешность решения разностной схемы (14), (15), которая аппроксимирует на сеткеРазностные схемы для уравнения переноса на неравномерных сетках дифференциальную задачу (12), (13).

Введем функцию погрешности решения

zh = yh –uh,


где yh – решение схемы (14), (15), uh- решение задачи (12), (13) на сетке ͞wh. Подставив yh = zh +uh в линейную задачу (14), (15), получим для zh задачу того же вида, что и (14), (15):


Разностные схемы для уравнения переноса на неравномерных сетках (26)

Разностные схемы для уравнения переноса на неравномерных сетках (27)

Разностные схемы для уравнения переноса на неравномерных сетках (28)


Функции (28) называются погрешностью аппроксимации задачи (12), (13), схемой (14), (15) на решение задачи (12), (13).

Будем говорить, что решение разностной схемы (14), (15) сходится к решению задачи (12), (13), если


Разностные схемы для уравнения переноса на неравномерных сеткахHh = Разностные схемы для уравнения переноса на неравномерных сеткахHh → 0 при h→0.


Разностная схема сходится со скоростью О(hn) или имеет n-ый порядок точности, если при достаточно малом h ≤ h0 выполняется неравенство


Разностные схемы для уравнения переноса на неравномерных сетках Hh =Разностные схемы для уравнения переноса на неравномерных сеткахHhM ∙ hn,


где M > 0, не зависит от h, n > 0.

Говорят, что разностная схема имеет n-ый порядок аппроксимации, если


шh = O(hn),

т.е Разностные схемы для уравнения переноса на неравномерных сеткахM∙hn.

Теорема. Пусть дифференциальная задача (12), (13) поставлена корректно, разностная схема (14), (15) является корректной и аппроксимирует исходную задачу (12), (13). Тогда решение разностной схемы (14), (15) сходится к решению исходной задачи (12), (13), причем порядок точности совпадает с порядком аппроксимации.

Доказательство. Если схема (14), (15) корректна, то не трудно получить оценку погрешности решения через погрешность аппроксимации (28).

Задача (26), (27) аналогична задаче (14), (15), поэтому для нее пользуясь априорной оценкой вида (16), получим оценку


Разностные схемы для уравнения переноса на неравномерных сеткахHh = Разностные схемы для уравнения переноса на неравномерных сеткахHhM1Разностные схемы для уравнения переноса на неравномерных сеткахHh + M2Разностные схемы для уравнения переноса на неравномерных сеткахHh. (29)


Таким образом, если схема (14), (15) корректна и аппроксимирует задачу (12), (13), то она сходится при h→0. Норма погрешности ‖zh‖Hh→0 при h→0, если Разностные схемы для уравнения переноса на неравномерных сеткахHh→0 и Разностные схемы для уравнения переноса на неравномерных сетках Hh→0 при h→0.

Из оценки (28) видно, что порядок точности схемы (14), (15) определяется порядком аппроксимации, и чтобы схема сходилась со скоростью O(hn), n>0 достаточно, чтобы она имела аппроксимацию того же порядка, т.е.


Разностные схемы для уравнения переноса на неравномерных сеткахHh = О(hn), Разностные схемы для уравнения переноса на неравномерных сеткахHh = O(hn).


Рассмотрим примеры.

Пример 1. Рассмотрим явную схему Эйлера


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках

которая аппроксимирует дифференциальную задачу (20). Покажем порядок погрешности аппроксимации и сходимость.

Рассмотрим функцию погрешности решения Разностные схемы для уравнения переноса на неравномерных сетках

Для zi получаем схему:


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (30)


Разложим ui+1 по формуле Тейлора в точке xi, имеем


Разностные схемы для уравнения переноса на неравномерных сетках (31)


Подставляя (31) в шi, получим


Разностные схемы для уравнения переноса на неравномерных сетках


т.е. имеем порядок аппроксимации. Из (30) имеем


Разностные схемы для уравнения переноса на неравномерных сетках


При Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках имеем Разностные схемы для уравнения переноса на неравномерных сетках Выражая zi через z0, получим:


Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда видно, что при h→0, │zi│→0. Для точности схемы имеем


│zi+1│≤ Разностные схемы для уравнения переноса на неравномерных сетках h∙│шs│≤ h ∙ i ∙ O(h) = xi∙O(h) ≤ M ∙ h,

т.е. схема имеет первый порядок точности.

Пример 2. Рассмотрим неявную схему Эйлера


Разностные схемы для уравнения переноса на неравномерных сетках,


которая аппроксимирует дифференциальную задачу (20). Для погрешности решения zi = yi –ui получаем разностную схему:


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


Подставляя разложение (31) в шi , получим


Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда имеем


Разностные схемы для уравнения переноса на неравномерных сетках


т.е. первый порядок аппроксимации. Для сходимости рассмотрим решение задачи для zi:


Разностные схемы для уравнения переноса на неравномерных сетках


Множитель Разностные схемы для уравнения переноса на неравномерных сетках при л > 0. Выражая zi через z0, имеем


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


Отсюда │zi│≤ M∙h, т.е. схема имеет первый порядок точности. Таким же образом можно показать, что схема с весом


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


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


1.7 Неравномерная сетка


1.7.1 Построение сеточной области

Пусть исходная область Разностные схемы для уравнения переноса на неравномерных сетках={Разностные схемы для уравнения переноса на неравномерных сетках}. Ее аппроксимируем сеточной областью:

Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках- средний шаг}- сетка по х;

Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках , Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках- средний шаг}- сетка по t;

Тогда искомая сетка есть Разностные схемы для уравнения переноса на неравномерных сетках - неравномерная сетка.

На этой сетке аппроксимируем дифференциальные операторы:

Разностные схемы для уравнения переноса на неравномерных сетках - правая разностная производная по х; (1)

Разностные схемы для уравнения переноса на неравномерных сетках-сеточная функция;

Разностные схемы для уравнения переноса на неравномерных сетках - левая разностная производная по х; (2)

Разностные схемы для уравнения переноса на неравномерных сетках- центральная разностная производная по х; (3)

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках- аппроксимация с весом Разностные схемы для уравнения переноса на неравномерных сетках; (4)

Разностные схемы для уравнения переноса на неравномерных сетках Аппроксимация первой производной по t имеет вид:

Разностные схемы для уравнения переноса на неравномерных сетках- правая разностная производная по t; (5)

Разностные схемы для уравнения переноса на неравномерных сетках - левая разностная производная по t; (6)

Разностные схемы для уравнения переноса на неравномерных сетках- центральная разностная производная по t; (7)

Аппроксимация второй производной по х и по t имеет вид:


Разностные схемы для уравнения переноса на неравномерных сетках; (8)

Разностные схемы для уравнения переноса на неравномерных сетках; (9)


Покажем погрешность аппроксимации первой производной по х.

Для этого введем функцию погрешности решения Разностные схемы для уравнения переноса на неравномерных сетках Найдем Разностные схемы для уравнения переноса на неравномерных сетках и подставим в (1).

Имеем Разностные схемы для уравнения переноса на неравномерных сетках=Разностные схемы для уравнения переноса на неравномерных сетках , Разностные схемы для уравнения переноса на неравномерных сетках

Функцию Разностные схемы для уравнения переноса на неравномерных сетках разложим по формуле Тейлора


Разностные схемы для уравнения переноса на неравномерных сетках,


и подставим в Разностные схемы для уравнения переноса на неравномерных сетках Имеем

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках,


отсюда получаем аппроксимацию первого порядка Разностные схемы для уравнения переноса на неравномерных сетках.


1.7.2 Формирование сетки

I вариант


Разностные схемы для уравнения переноса на неравномерных сетках ,Разностные схемы для уравнения переноса на неравномерных сетках (1)

Разностные схемы для уравнения переноса на неравномерных сетках , q>1-возраст.геометр.прогрессия

Разностные схемы для уравнения переноса на неравномерных сетках , q<1-убыв.геометр.прогрессия

1) Разностные схемы для уравнения переноса на неравномерных сетках, (2)

Разностные схемы для уравнения переноса на неравномерных сетках , q>1. (3)

2) Разностные схемы для уравнения переноса на неравномерных сетках, (4)

Разностные схемы для уравнения переноса на неравномерных сетках, q<1. (5)

Разностные схемы для уравнения переноса на неравномерных сеткахи Разностные схемы для уравнения переноса на неравномерных сетках- задаем сами.


Пример Пусть Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

q>1 и по формуле (3) nРазностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках

Пример Пусть Разностные схемы для уравнения переноса на неравномерных сетках

вычисляем по формуле (5)


Разностные схемы для уравнения переноса на неравномерных сетках


Действительно


Разностные схемы для уравнения переноса на неравномерных сетках


II вариант

Можно использовать другой подход:


Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках,

Разностные схемы для уравнения переноса на неравномерных сетках,

Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках.


a) Разностные схемы для уравнения переноса на неравномерных сетках, q<1 - убывающая геом. прогрессия n и q-задаем сами.

в) Разностные схемы для уравнения переноса на неравномерных сетках, q>1 – возрастающая геом. прогрессия.

Таким образом, можно рассматривать следующие модули сеток:

Равномерная сетка Разностные схемы для уравнения переноса на неравномерных сетках.

Квазиравномерная сетка (Разностные схемы для уравнения переноса на неравномерных сетках…).

Неравномерная по возрастающей геометрической прогрессии Разностные схемы для уравнения переноса на неравномерных сетках.

Неравномерная по убывающей геометрической прогрессии Разностные схемы для уравнения переноса на неравномерных сетках.

Среднеарифметический метод 3) и 4) Разностные схемы для уравнения переноса на неравномерных сетках.


Глава II.Одномерное уравнение переноса с переменными коэффициентами


2.1 Постановка задачи


Рассмотрим уравнение вида:


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (1)


удовлетворяющий начальным условиям


Разностные схемы для уравнения переноса на неравномерных сетках (2)


и граничным условиям:


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках (3)


Входные данные:


1) Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках l=1, T=1


точное решение: Разностные схемы для уравнения переноса на неравномерных сетках

2) Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


точное решение: Разностные схемы для уравнения переноса на неравномерных сетках


3) Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


точное решение: Разностные схемы для уравнения переноса на неравномерных сетках


4) Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


точное решение: Разностные схемы для уравнения переноса на неравномерных сетках

Для решения задачи (1) – (3) используем различные разностные схемы, вернее, явную и неявную.


2.2 “Явные ” схемы


Явные схемы для нашей задачи используются тогда, когда p(x,t) > 0, (p0>0, pN>0) или p(x,t)<0, (p0<0, pN<0). На практике часто используют схему бегущего счета. В зависимости от знака функции p(x,t) используют правую или левую разностные схемы.

Итак, рассмотрим схему бегущего счета в обоих случаях.


1) p(x,t)>0, (p0>0, pN>0)


Разностная схема (правая) имеет вид


Разностные схемы для уравнения переноса на неравномерных сетках; (1′)

Разностные схемы для уравнения переноса на неравномерных сетках; (2′)

Разностные схемы для уравнения переноса на неравномерных сетках ; (3′)

из (1′) Разностные схемы для уравнения переноса на неравномерных сетках,

где Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках.

2) p(x,t)<0, (p0<0, pN<0)


В этом случае используется левая разностная схема


Разностные схемы для уравнения переноса на неравномерных сетках; (1″)

Разностные схемы для уравнения переноса на неравномерных сетках; (2″)

Разностные схемы для уравнения переноса на неравномерных сетках ; (3″)

из (1′) Разностные схемы для уравнения переноса на неравномерных сетках,

где Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках.


Таблица 1 Численное решение уравнения переноса с переменными коэффициентами схема бегущего счета “явная ” схема (правая разностная схема)

-------------kogda p0>0, pN>0-------------50sloy
N priblijennoe tochnoe pogreshnosti
0 0.10039200 0.10004559 0.00034641
1 0.10731313 0.10694264 0.00037049
2 0.11471141 0.11431517 0.00039623
3 0.12261970 0.12219596 0.00042375
4 0.13107319 0.13062004 0.00045315
5 0.14010945 0.13962487 0.00048458
6 0.14976865 0.14925048 0.00051817
7 0.16009374 0.15953968 0.00055407
8 0.17113063 0.17053820 0.00059243
9 0.18292837 0.18229495 0.00063342
10 0.19553941 0.19486220 0.00067721
11 0.20901984 0.20829583 0.00072401
12 0.22342957 0.22265555 0.00077402
13 0.23883258 0.23800523 0.00082736
14 0.25528740 0.25441310 0.00087431
15 0.27195211 0.27195211 0.00000000

Таблица 2. Численное решение уравнения переноса с переменными коэффициентами схема бегущего счета “явная ” схема (левая разностная схема)

-------------kogda p0<0, pN<0-------------- 50sloy
N priblijennoe tochnoe pogreshnosti
0 0.14715178 0.14715178 0.00000000
1 0.14242453 0.14232757 0.00009697
2 0.13785337 0.13766151 0.00019185
3 0.13343317 0.13314843 0.00028474
4 0.12915902 0.12878331 0.00037571
5 0.12502613 0.12456129 0.00046484
6 0.12102988 0.12047768 0.00055219
7 0.11716580 0.11652796 0.00063785
8 0.11342959 0.11270772 0.00072187
9 0.10981705 0.10901272 0.00080434
10 0.10632415 0.10543886 0.00088530
11 0.10294698 0.10198216 0.00096483
12 0.09968176 0.09863879 0.00104298
13 0.09652483 0.09540502 0.00111981
14 0.09347266 0.09227727 0.00119539
15 0.09052183 0.08925206 0.00126976

Текст программы смотри в приложении 1


2.3 Неявные схемы


В отличие от явной схемы неявные схемы используются для задачи (1) – (3) во всех случаях 1) p0>0, pN>0; 2) p0<0, pN<0; 3) p0>0, pN<0; 4) p0<0, pN>0.

Рассмотрим 2 различные разностные схемы:

Центрально- разностная схема.

Трехточечная схема с весом.

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


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (4)


Коэффициенты Ai, Bi, Ci должны удовлетворять условиям:


Разностные схемы для уравнения переноса на неравномерных сетках (5)


Коэффициенты B0 , C0 , F0, AN ,CN ,FN находятся из граничных условий. В данной задаче в зависимости от знака функции p(x,t) ставятся граничные условия и тем самым находятся наши коэффициенты. Рассмотрим все 4 случая:

1) p0>0, pN>0, u(l,t)=м2(t), (3′)

из уравнения (3′) Разностные схемы для уравнения переноса на неравномерных сетках AN ,CN ,FN .

B0 , C0 , F0 находятся из дополнительного условия, которая ставится на левом конце.

2) p0<0, pN<0, u(0,t)=м1(t), (3″) из уравнения (3″) Разностные схемы для уравнения переноса на неравномерных сетках B0 , C0 , F0.

AN ,CN ,FN находятся из дополнительного условия, которая ставится на правом конце.

3) p0<0, pN>0, u(0,t)=м1(t), u(l,t)=м2(t), (3″′)

из уравненя (3″′) Разностные схемы для уравнения переноса на неравномерных сетках B0 , C0 , F0


Разностные схемы для уравнения переноса на неравномерных сетках AN ,CN ,FN


4) p0>0, pN<0, нет граничных условий.

Дополнительное условие ставится на левом и на правом концах. Находим B0, C0 , F0 , AN ,CN ,FN .

Алгоритм правой прогонки


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках.

Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках.


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


2.3.1 Центрально разностная схема

Разностная схема имеет вид (задачи (1)-(3)):

Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках.

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках


1) P0>0, PN>0


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках.

Разностные схемы для уравнения переноса на неравномерных сетках


2) P0<0, PN<0


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках .

Разностные схемы для уравнения переноса на неравномерных сетках

3) P0<0, PN>0


Разностные схемы для уравнения переноса на неравномерных сетках B0=0, C0=1, F0=Разностные схемы для уравнения переноса на неравномерных сетках ,

Разностные схемы для уравнения переноса на неравномерных сетках→ AN=0, CN=1, Разностные схемы для уравнения переноса на неравномерных сетках.


4) P0>0, PN<0


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


Таблица 3. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0>0, pN>0------------ 50sloy
N priblijennoe tochnoe pogreshnosti
0 0.18772094 0.18765555 0.00006539
1 0.18147920 0.18150347 0.00002427
2 0.17566576 0.17555308 0.00011268
3 0.16982701 0.16979776 0.00002924
4 0.16440069 0.16423113 0.00016956
5 0.15890974 0.15884699 0.00006275
6 0.15384782 0.15363937 0.00020845
7 0.14868453 0.14860247 0.00008206
8 0.14391438 0.14373070 0.00018368
9 0.13904086 0.13901865 0.00002221
10 0.13462315 0.13446108 0.00016208
11 0.13004378 0.13005292 0.00000914
12 0.12593278 0.12578928 0.00014351
13 0.12169429 0.12166541 0.00002888
14 0.11786577 0.11767675 0.00018903
15 0.11381884 0.11381884 0.00000000

Таблица 4. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0<0, pN<0-------------- 50sloy
N priblijennoe tochnoe pogreshnosti
0 0.14715178 0.14715178 0.00000000
1 0.14240331 0.14232757 0.00007574
2 0.13769681 0.13766151 0.00003530
3 0.13325746 0.13314843 0.00010903
4 0.12885248 0.12878331 0.00006918
5 0.12470227 0.12456129 0.00014098
6 0.12057943 0.12047768 0.00010174
7 0.11669966 0.11652796 0.00017170
8 0.11284082 0.11270772 0.00013310
9 0.10921401 0.10901272 0.00020130
10 0.10560221 0.10543886 0.00016335
11 0.10221201 0.10198216 0.00022985
12 0.09883137 0.09863879 0.00019259
13 0.09566248 0.09540502 0.00025746
14 0.09249816 0.09227727 0.00022089
15 0.08953626 0.08925206 0.00028420

Таблица 5. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0<0, pN>0--------------50sloy
N priblijennoe tochnoe pogreshnosti
0 0.03678794 0.03678794 0.00000000
1 0.03565917 0.03558189 0.00007728
2 0.03439784 0.03441538 0.00001754
3 0.03335557 0.03328711 0.00006846
4 0.03216179 0.03219583 0.00003404
5 0.03119895 0.03114032 0.00005863
6 0.03007027 0.03011942 0.00004915
7 0.02917987 0.02913199 0.00004788
8 0.02811435 0.02817693 0.00006258
9 0.02728957 0.02725318 0.00003639
10 0.02628567 0.02635971 0.00007405
11 0.02551993 0.02549554 0.00002439
12 0.02457633 0.02465970 0.00008337
13 0.02386341 0.02385126 0.00001215
14 0.02297890 0.02306932 0.00009042
15 0.02231302 0.02231302 0.00000000

Таблица 6. Численное решение уравнения переноса с переменными коэффициентами центральная разностная схема метод прогонки

-------------kogda p0>0, pN<0--------------50sloy
N priblijennoe tochnoe pogreshnosti
0 0.00379722 0.00375311 0.00004410
1 0.00328998 0.00328462 0.00000536
2 0.00291427 0.00287461 0.00003966
3 0.00250378 0.00251579 0.00001200
4 0.00225176 0.00220175 0.00005001
5 0.00190450 0.00192691 0.00002241
6 0.00172045 0.00168638 0.00003407
7 0.00145947 0.00147588 0.00001640
8 0.00129005 0.00129165 0.00000159
9 0.00109247 0.00113042 0.00003795
10 0.00092289 0.00098931 0.00006642
11 0.00074314 0.00086582 0.00012268
12 0.00056520 0.00075774 0.00019254
13 0.00038370 0.00066315 0.00027946
14 0.00020306 0.00058037 0.00037731
15 0.00002275 0.00050793 0.00048518

Текст программы смотри в приложении 2


2.3.2 Трехточечная схема с весом

Разностная схема для нашей задачи ((1)-(3)) имеет вид:


Разностные схемы для уравнения переноса на неравномерных сетках (0)

Уравнение (0) приведем к виду


Разностные схемы для уравнения переноса на неравномерных сетках (1)


Из уравнения (1) находим коэффициенты Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках,

Разностные схемы для уравнения переноса на неравномерных сетках.


1) P0>0, PN>0 yNj+1 = м2j+1 → AN =0, CN=1, FN 2j+1


Разностные схемы для уравнения переноса на неравномерных сетках (1.0)


Уравнение (1.0) приводим к виду


Разностные схемы для уравнения переноса на неравномерных сетках(1.1)


Из уравнения (1.1) находим Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках


Разностные схемы для уравнения переноса на неравномерных сетках, Разностные схемы для уравнения переноса на неравномерных сетках,

Разностные схемы для уравнения переноса на неравномерных сетках.


2) P0<0, PN<0 y0j+1 = м1j+1 → B0 =0, C0=1, F0 1j+1

Разностные схемы для уравнения переноса на неравномерных сетках. (2.0)


Уравнение (2.0) приводим к виду


Разностные схемы для уравнения переноса на неравномерных сетках (2.1)


Из уравнения (2.1) находим Разностные схемы для уравнения переноса на неравномерных сетках , Разностные схемы для уравнения переноса на неравномерных сетках,


Разностные схемы для уравнения переноса на неравномерных сетках.


3)P0<0, PN>0


y0j+1 = м1j+1 → B0=0 ,C0=1, F0= м1j+1 ,

yNj+1 = м2j+1 → AN=0 ,CN=1, FN= м2j+1.


4) P0>0, PN<0


Разностные схемы для уравнения переноса на неравномерных сетках

B0 =0,C0=1, F0= м1j+1

Разностные схемы для уравнения переноса на неравномерных сетках

AN =0,CN=1, FN= м2j+1


Таблица 7. Численное решение уравнения переноса с переменными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0>0, pN>0---------------kogda G=1
50sloy N priblijennoe tochnoe pogreshnosti
0 0.36842774 0.36787944 0.00054830
1 0.35627966 0.35581892 0.00046075
2 0.34461653 0.34415379 0.00046275
3 0.33324870 0.33287108 0.00037762
4 0.32234219 0.32195827 0.00038392
5 0.31170418 0.31140322 0.00030095
6 0.30150555 0.30119421 0.00031134
7 0.29155019 0.29131989 0.00023030
8 0.28201389 0.28176929 0.00024460
9 0.27269705 0.27253179 0.00016526
10 0.26378042 0.26359714 0.00018329
11 0.25506082 0.25495540 0.00010543
12 0.24672399 0.24659696 0.00012703
13 0.23856301 0.23851255 0.00005045
14 0.23076867 0.23069318 0.00007549
15 0.22313016 0.22313016 0.00000000

Таблица 8. Численное решение уравнения переноса на с переменнми коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0>0, pN>0---------------kogda G=0.5
50sloy N priblijennoe tochnoe pogreshnosti
0 0.22317966 0.36787944 0.14469979
1 0.32550240 0.35581892 0.03031652
2 0.21980791 0.34415379 0.12434588
3 0.32390953 0.33287108 0.00896156
4 0.17318247 0.32195827 0.14877580
5 0.30172608 0.31140322 0.00967714
6 0.15878469 0.30119421 0.14240953
7 0.28118803 0.29131989 0.01013186
8 0.16595060 0.28176929 0.11581869
9 0.25958363 0.27253179 0.01294816
10 0.10012442 0.26359714 0.16347272
11 0.23108668 0.25495540 0.02386872
12 0.10648083 0.24659696 0.14011613
13 0.24403326 0.23851255 0.00552071
14 0.10163574 0.23069318 0.12905744
15 0.22313016 0.22313016 0.00000000

Таблица 9. Численное решение уравнения переноса с переменными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0<0, pN<0--------------- kogda G=1
50sloy N priblijennoe tochnoe pogreshnosti
0 0.36787944 0.36787944 0.00000000
1 0.35801340 0.35581892 0.00219448
2 0.36845033 0.34415379 0.02429654
3 0.35906842 0.33287108 0.02619734
4 0.37000945 0.32195827 0.04805117
5 0.36101823 0.31140322 0.04961501
6 0.37246014 0.30119421 0.07126592
7 0.36379087 0.29131989 0.07247098
8 0.37571304 0.28176929 0.09394375
9 0.36731988 0.27253179 0.09478809
10 0.37968642 0.26359714 0.11608928
11 0.37154421 0.25495540 0.11658881
12 0.38430710 0.24659696 0.13771013
13 0.37640856 0.23851255 0.13789601
14 0.38951172 0.23069318 0.15881854
15 0.38186439 0.22313016 0.15873423

Таблица 10 Численное решение уравнения переноса с переменными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p0<0, pN<0---------------
kogda G=0,5 50sloy N priblijennoe tochnoe pogreshnosti
0 0.36787944 0.36787944 0.00000000
1 0.31801913 0.35581892 0.03779978
2 0.36478621 0.34415379 0.02063242
3 0.34573407 0.33287108 0.01286299
4 0.36983022 0.32195827 0.04787195
5 0.36678412 0.31140322 0.05538090
6 0.34570117 0.30119421 0.04450696
7 0.34004986 0.29131989 0.04872997
8 0.33360167 0.28176929 0.05183238
9 0.35119193 0.27253179 0.07866014
10 0.35046403 0.26359714 0.08686690
11 0.35792253 0.25495540 0.10296714
12 0.36451445 0.24659696 0.11791748
13 0.35527614 0.23851255 0.11676359
14 0.38271932 0.23069318 0.15202614
15 0.39593489 0.22313016 0.17280473

Текст программы смотри в приложении 3

Глава III.Одномерное уравнение переноса с постоянными коэффициентами


3.1 Постановка задачи


Рассмотрим уравнение переноса вида


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (3.1)


удовлетворяющее начальному условию


Разностные схемы для уравнения переноса на неравномерных сетках (3.2)


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

1. P>0 Разностные схемы для уравнения переноса на неравномерных сетках p>0, нет на левой границе условий.

2. P<0 Разностные схемы для уравнения переноса на неравномерных сетках p<0, нет на правой границе условий. (3.3)

Входные данные:

1) P>0


Разностные схемы для уравнения переноса на неравномерных сетках


2) P<0


Разностные схемы для уравнения переноса на неравномерных сетках

3.2 “Явные” схемы


Рассмотрим схему бегущего счета в обоих случаях.

1) p>0

В этом случае используется правая разностная схема


Разностные схемы для уравнения переноса на неравномерных сетках (3.1′)

Разностные схемы для уравнения переноса на неравномерных сетках; (3.2′)

Разностные схемы для уравнения переноса на неравномерных сетках. (3.3′)


Из уравнения (3.1′) следует


Разностные схемы для уравнения переноса на неравномерных сетках


2) p<0

Разностная схема(левая) имеет вид:


Разностные схемы для уравнения переноса на неравномерных сетках; (3.1″)

Разностные схемы для уравнения переноса на неравномерных сетках; (3.2″)

Разностные схемы для уравнения переноса на неравномерных сетках (3.3″)


Из уравнения (3.1″) следует


Разностные схемы для уравнения переноса на неравномерных сетках

Таблица 11. Численное решение уравнения переноса с постоянными коэффициентами схема бегущего счета “явная ” схема (правая разностная схема)

-------------kogda p>0-------------------------------------------50sloy
N priblijennoe tochnoe pogreshnosti
0 1.37301170 1.35914091 0.01387078
1 1.41878826 1.40520915 0.01357911
2 1.46606506 1.45283887 0.01322618
3 1.51488985 1.50208301 0.01280684
4 1.56531173 1.55299629 0.01231544
5 1.61738112 1.60563527 0.01174585
6 1.67114985 1.66005846 0.01109139
7 1.72667123 1.71632633 0.01034490
8 1.78400003 1.77450141 0.00949863
9 1.84319260 1.83464833 0.00854427
10 1.90430684 1.89683395 0.00747290
11 1.96740228 1.96112735 0.00627493
12 2.03254007 2.02759998 0.00494008
13 2.09978305 2.09632572 0.00345734
14 2.16919578 2.16738091 0.00181487
15 2.24084454 2.24084454 0.00000000

Таблица 12. Численное решение уравнения переноса с постоянными коэффициентами схема бегущего счета “явная ” схема (левая разностная схема)

-------------kogda p<0-------------50sloy
N priblijennoe tochnoe pogreshnosti
0 0.03678794 0.03678794 0.00000000
1 0.03444494 0.03558189 0.00113696
2 0.03220334 0.03441538 0.00221204
3 0.03005929 0.03328711 0.00322782
4 0.02800907 0.03219583 0.00418676
5 0.02604910 0.03114032 0.00509122
6 0.02417592 0.03011942 0.00594350
7 0.02238620 0.02913199 0.00674579
8 0.02067672 0.02817693 0.00750021
9 0.01904439 0.02725318 0.00820879
10 0.01748622 0.02635971 0.00887349
11 0.01599934 0.02549554 0.00949620
12 0.01458096 0.02465970 0.01007874
13 0.01322842 0.02385126 0.01062284
14 0.01193914 0.02306932 0.01113018
15 0.01071063 0.02231302 0.01160239

Текст программы смотри в приложении 4


3.3 Неявные схемы


Рассмотрим две различные разностные схемы:

1. Центрально-разностная схема.

2. Трехточечная схема с весом.

Все эти схемы сводятся к стандартному виду (3.4) и решаются методом прогонки


Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках (3.4)


Коэффициенты Ai, Bi, Ci должны удовлетворять условиям:


Разностные схемы для уравнения переноса на неравномерных сетках (3.5)


Коэффициенты B0 , C0 , F0, AN ,CN ,FN находятся из граничных условий. В данной задаче в зависимости от знака функции p(x,t) ставятся граничные условия и тем самым находятся наши коэффициенты.

Когда р>0 задается правое граничное условие:

Разностные схемы для уравнения переноса на неравномерных сетках (3.3′)


Используя уравнения (3.3′) находим коэффициенты AN ,CN ,FN . Коэффициенты B0 , C0 , F0 находятся из дополнительного условия, которое ставится на левом конце.


Разностные схемы для уравнения переноса на неравномерных сетках


2) Когда р<0 задается граничное условие на левом конце


Разностные схемы для уравнения переноса на неравномерных сетках (3.3″)


Используя уравнения (3.3″) находим коэффициенты B0 , C0 , F0

Коэффициенты AN ,CN ,FN находятся из дополнительного условия, которое ставится на правом конце.


Разностные схемы для уравнения переноса на неравномерных сетках


3.3.1 Центрально-разностная схема

Разностная схема задачи (3.1)-(3.3) имеет следующий вид:


Разностные схемы для уравнения переноса на неравномерных сетках

1) р>0. В этом случае граничное условие задается на правом конце:


Разностные схемы для уравнения переноса на неравномерных сетках (3.6)


Используя уравнение (3.6) находим коэффициенты AN =0, CN=1, Разностные схемы для уравнения переноса на неравномерных сетках

Дополнительное условие на левом конце имеет вид:


Разностные схемы для уравнения переноса на неравномерных сетках (3.7)


Приведем уравнение (3.7) к виду :


Разностные схемы для уравнения переноса на неравномерных сетках (3.7′)


Отсюда находим коэффициенты:


Разностные схемы для уравнения переноса на неравномерных сетках

В случае, когда р<0, граничное условие ставится на левом конце


Разностные схемы для уравнения переноса на неравномерных сетках (3.8)


Используя уравнение (3.8) находим коэффициенты B0,=0, C0=1, Разностные схемы для уравнения переноса на неравномерных сетках

Дополнительное условие на правом конце имеет вид:

Разностные схемы для уравнения переноса на неравномерных сетках (3.9)


Приводим уравнение (3.9) к виду :


Разностные схемы для уравнения переноса на неравномерных сетках (3.9′)


отсюда находим коэффициенты:


Разностные схемы для уравнения переноса на неравномерных сетках


Таблица 13. Численное решение уравнения переноса с постоянными коэффициентами центральная разностная схема метод прогонки

-------------kogda p>0--------------50sloy
N priblijennoe tochnoe pogreshnosti
0 0.03544452 0.03678794 0.00134342
1 0.03541069 0.03558189 0.00017120
2 0.03306824 0.03441538 0.00134714
3 0.03313883 0.03328711 0.00014828
4 0.03084494 0.03219583 0.00135089
5 0.03101552 0.03114032 0.00012480
6 0.02876471 0.03011942 0.00135472
7 0.02903119 0.02913199 0.00010080
8 0.02681828 0.02817693 0.00135865
9 0.02717688 0.02725318 0.00007630
10 0.02499699 0.02635971 0.00136272
11 0.02544422 0.02549554 0.00005132
12 0.02329272 0.02465970 0.00136698
13 0.02382538 0.02385126 0.00002588
14 0.02169787 0.02306932 0.00137145
15 0.02231302 0.02231302 0.00000000

Таблица 14. Численное решение уравнения переноса с постоянными коэффициентами центральная разностная схема метод прогонки

-------------kogda p<0--------------50sloy
N priblijennoe tochnoe pogreshnosti
0 0.03678794 0.03678794 0.00000000
1 0.03475182 0.03558189 0.00083008
2 0.03440516 0.03441538 0.00001021
3 0.03246493 0.03328711 0.00082218
4 0.03217504 0.03219583 0.00002079
5 0.03032529 0.03114032 0.00081503
6 0.03008771 0.03011942 0.00003171
7 0.02832337 0.02913199 0.00080861
8 0.02813396 0.02817693 0.00004297
9 0.02645027 0.02725318 0.00080290
10 0.02630518 0.02635971 0.00005453
11 0.02469766 0.02549554 0.00079788
12 0.02459330 0.02465970 0.00006639
13 0.02305773 0.02385126 0.00079352
14 0.02299077 0.02306932 0.00007855
15 0.02152320 0.02231302 0.00078982

Текст программы смотри в приложении 5


3.3.2 Трехточечная схема с весом

Разностная схема имеет вид:


Разностные схемы для уравнения переноса на неравномерных сетках


Разностные схемы для уравнения переноса на неравномерных сеткахвещественный параметр


1. p>0 Разностные схемы для уравнения переноса на неравномерных сетках


На левом конце ставится дополнительное условие

Разностные схемы для уравнения переноса на неравномерных сетках

2. p<0 Разностные схемы для уравнения переноса на неравномерных сетках


На правом конце ставится дополнительное условие


Разностные схемы для уравнения переноса на неравномерных сетках


Разностные уравнения и дополнительные условия сводятся к стандартному виду (3.4) и решаются методом прогонки.


Таблица 15. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

50sloy N priblijennoe tochnoe pogreshnosti
-------------------kogda p>0---------------kogda G=1
0 0.03684277 0.03678794 0.00005483
1 0.03562797 0.03558189 0.00004607
2 0.03446165 0.03441538 0.00004627
3 0.03332487 0.03328711 0.00003776
4 0.03223422 0.03219583 0.00003839
5 0.03117042 0.03114032 0.00003010
6 0.03015056 0.03011942 0.00003113
7 0.02915502 0.02913199 0.00002303
8 0.02820139 0.02817693 0.00002446
9 0.02726970 0.02725318 0.00001653
10 0.02637804 0.02635971 0.00001833
11 0.02550608 0.02549554 0.00001054
12 0.02467240 0.02465970 0.00001270
13 0.02385630 0.02385126 0.00000505
14 0.02307687 0.02306932 0.00000755
15 0.02231302 0.02231302 0.00000000

Таблица 16. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p>0---------------kogda G=0.5
50sloy N priblijennoe tochnoe pogreshnosti
0 0.02231797 0.03678794 0.01446998
1 0.03255024 0.03558189 0.00303165
2 0.02198079 0.03441538 0.01243459
3 0.03239095 0.03328711 0.00089616
4 0.01731825 0.03219583 0.01487758
5 0.03017261 0.03114032 0.00096771
6 0.01587847 0.03011942 0.01424095
7 0.02811880 0.02913199 0.00101319
8 0.01659506 0.02817693 0.01158187
9 0.02595836 0.02725318 0.00129482
10 0.01001244 0.02635971 0.01634727
11 0.02310867 0.02549554 0.00238687
12 0.01064808 0.02465970 0.01401161
13 0.02440333 0.02385126 0.00055207
14 0.01016357 0.02306932 0.01290574
15 0.02231302 0.02231302 0.00000000

Таблица 17. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p<0--------------- kogda G=1
50sloy N priblijennoe tochnoe pogreshnosti
0 0.03678794 0.03678794 0.00000000
1 0.03676351 0.03654351 0.00022000
2 0.03679165 0.03630069 0.00049096
3 0.03676949 0.03605949 0.00070999
4 0.03679966 0.03581990 0.00097976
5 0.03677973 0.03558189 0.00119784
6 0.03681190 0.03534547 0.00146643
7 0.03679418 0.03511062 0.00168357
8 0.03682831 0.03487732 0.00195098
9 0.03681277 0.03464558 0.00216719
10 0.03684883 0.03441538 0.00243345
11 0.03683543 0.03418671 0.00264872
12 0.03687339 0.03395955 0.00291384
13 0.03686210 0.03373391 0.00312820
14 0.03690193 0.03350976 0.00339217
15 0.03689273 0.03328711 0.00360562

Таблица 18. Численное решение уравнения переноса с постоянными коэффициентами Трехточечная схема с весом Метод прогонки

-------------------kogda p<0--------------- kogda G=0.5
50sloy N priblijennoe tochnoe pogreshnosti
0 0.03678794 0.03678794 0.00000000
1 0.03697886 0.03654351 0.00043535
2 0.03685351 0.03630069 0.00055282
3 0.03694215 0.03605949 0.00088265
4 0.03678490 0.03581990 0.00096500
5 0.03709634 0.03558189 0.00151445
6 0.03702149 0.03534547 0.00167603
7 0.03710468 0.03511062 0.00199406
8 0.03712939 0.03487732 0.00225206
9 0.03693008 0.03464558 0.00228450
10 0.03706115 0.03441538 0.00264577
11 0.03679396 0.03418671 0.00260725
12 0.03713746 0.03395955 0.00317791
13 0.03669566 0.03373391 0.00296175
14 0.03706614 0.03350976 0.00355638
15 0.03675340 0.03328711 0.00346629

Текст программы смотри в приложении 6


3.3.3 Схема “прямоугольник”

1. p>0 разностная схема правая имеет вид


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


2. p<0 разностная схема левая имеет вид

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


3.3.4 Схема со сглаживанием

Разностная схема имеет вид


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


1. p>0 Разностные схемы для уравнения переноса на неравномерных сетках


Разностные схемы для уравнения переноса на неравномерных сетках


2. p<0 Разностные схемы для уравнения переноса на неравномерных сетках


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


Схема сводится к стандартному виду и решается методом прогонки.


3.3.5 Схема прямоугольник со сглаживанием


1.p>0

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

2. p<0

Разностные схемы для уравнения переноса на неравномерных сетках Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сеткахРазностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках


3.3.6 “Шахматная” схема

Имеем схему с весом Разностные схемы для уравнения переноса на неравномерных сетках


Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

1. p>0 Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

2. p<0 Разностные схемы для уравнения переноса на неравномерных сетках

Разностные схемы для уравнения переноса на неравномерных сетках

Параметр Разностные схемы для уравнения переноса на неравномерных сетках управляет реализацией схемы. При Разностные схемы для уравнения переноса на неравномерных сетках=0 и

(i+j)- четном решаем по явной схеме, при Разностные схемы для уравнения переноса на неравномерных сетках=1 и

(i+j)- нечетном решаем по неявной схеме явно. В целом схема реализуется явно.

Заключение


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

Конечно –разностный метод (метод сеток) –один из мощных достаточно универсальных методов современной вычислительной математики. Этот метод относится к классу машинных методов решения широкого круга задач для дифференциальных уравнений.

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

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

Исследование показало, что наиболее устойчивым методом для одномерного уравнения переноса с переменными коэффициентами является:

При p0>0, pN>0 трехточечная схема с весом при G=1, абсолютная погрешность аппроксимации на 50-м слое составляет 0,00007549.

При p0<0, pN<0 неявная схема с центральной разностью, абсолютная погрешность аппроксимации на 50-м слое составляет 0,00007574.

При p0<0, pN>0 так же схема с центральной разностью, абсолютная погрешность составляет 0,00009042.

Так же произведены расчеты некоторых методов одномерного уравнения переноса с постоянными коэффициентами.

Исследование показало, что наиболее устойчивым методом для одномерного уравнения переноса с постоянными коэффициентами является:

При p>0 трехточечная схема с весом при G=1, абсолютная погрешность аппроксимации на 50-м слое составляет 0,00000755.

2) При p<0 также трехточечная схема с весом при G=1, абсолютная погрешность на 50-м слое составляет 0,00022000


Список использованной литературы


Самарский А.А. Теория разностных схем. М.:Наука, 1977, с. 616.

Самарский А.А., Гулин А.В.Численные методы. М.Наука, 1989, с. 315.

Охлопков Н.М. Численные методы решения обыкновенных дифференциальных уравнений. Якутск: Изд-во Ягу, 1993, с. 38.

Охлопков Н.М., Охлопков Г.Н. Введение в специальность “Прикладная математика” часть 1,2 Якутск: Изд-во Ягу, 1997, с. 93, с. 85.

Охлопков Н.М., Иванов Ф.В. Вычислительные алгоритмы решения задач для дифференциальных уравнений Якутск: Изд-воЯгу, 1992, с.65.

Охлопков Н.М.,Иванов Ф.В. Пакет программ численного решения задач математической физики ч.2, Якутск: Изд-во Ягу, 1989, с 15.

Охлопков Н.М. Об экономичных методах решения задач математической физики. Якутск: Изд-во Ягу, 1982, с. 39.


Приложение 1


Уравнение с переменными коэффициентами

“Явная” схема.

Левая разностная схема

p0<0, pN<0

uses crt;

const n=15;j0=20;tt=1;l=1;A=0.01;a1=1;q=2;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j:integer;

x,h,t,tau,d:hi;

u,u1,g,u2,u11,u12:m;

function ut(p,r:real):real;

begin ut:= A*exp(p+r);end;

function fi(p,r:real):real;

begin fi:=A*exp(p+r)*(p*(p+1)+r*(r+1)+7); end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

function p1(p,r:real):real;

begin p1:=-(p+r+2);end;

begin

clrscr;

writeln ( 'sxema begushego scheta');

writeln(' kogda p0<0,pN<0');

writeln(' levaya raznostnaya sxema');

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=l/n;

tau[j]:=tt/j0;

t[j]:=0;j:=1;

for i:=0 to n do

begin

x[i]:=i*h[i];t[j]:=j*tau[j];

u[i]:= A*(exp(x[i]));

end;

while t[j]<=tt do begin clrscr;

t[j]:=t[j]+tau[j];

u1[0]:=A*exp((t[j]));

for i:=n-1 downto 0 do

begin

g[i]:=tau[j+1]*p1(x[i],t[j+1])/h[i+1];

u11[i]:=(-g[i]*u1[i+1])+(ro(x[i],t[j+1])*u[i]);

u12[i]:=tau[j+1]*fi(x[i],t[j]);

u1[i]:=(u11[i]+u12[i])/(ro(x[i],t[j+1])+g[i]);

end;

for i:=n-1 downto 0 do

u[i]:=u1[i];

writeln('----------------------------------------------------------');

write(' ',j,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

j:=j+1;

writeln('--------------------------------------------------------------');

readln;

end;

end.


Уравнение с переменными коэффициентами

“Явная” схема.

Схема бегущего счета.

Правая разностная схема

p0>0, pN>0

uses crt;

const n=15;j0=50;tt=1;l=0.5;A=0.5;a1=2;q=2;

type w=array[0..n] of real;

hi=array[0..n] of real;

var i,j:integer;

x,h,t,tau,d:hi;

u,u1,g,u2,u11,u12:w;

function ut(p,r:real):real;

begin ut:= A*exp(p+r);end; {to4noe reshenie}

function fi(p,r:real):real;

begin fi:=A*exp(p+r)*(p*(p-1)+r*(r-1)+3);end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

function p1(p,r:real):real;

begin p1:=p+r+2;end;

begin clrscr;

writeln ( 'sxema begushego scheta');

writeln(' kogda p0>0,pN>0');

writeln(' pravaya raznostnaya sxema');

readln;

h[0] := 0;

h[1] := a1;

for i:=2 to n do

h[i] := h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];

tau[j]:=t[j]-t[j-1];

t[j]:=0;j:=1;

for i:=0 to n do

begin

x[i]:=i*h[i];t[j]:=j*tau[j];

u[i]:= A*exp(x[i]); {u0(x)}

end;

begin

while t[j]<=tt do begin clrscr;

t[j]:=t[j]+tau[j];

u1[i]:=A*exp(l+t[j]); {mu2(t)}

for i:=n-1 downto 0 do

begin

g[i]:=(tau[j+1]*p1(x[i],t[j+1])/h[i+1]); {R[i,j+1]}

u11[i]:=(g[i]*u1[i+1])+ro(x[i],t[j+1])*u[i];

u12[i]:=tau[j+1]*fi(x[i],t[j+1]);

u1[i]:=(u11[i]+u12[i])/(ro(x[i],t[j+1])+g[i]); {y

end;

for i:=n-1 downto 0 do begin

u[i]:=u1[i]; end;

writeln('----------------------------------------------------------');

write(' ',j,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i :=0 to n do

begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

j:=j+1;

writeln('--------------------------------------------------------------'

readln;

end;

end;

end.


Приложение 2


Уравнение с переменными коэффициентами

Схема с центральной разностью

p0>0, pN>0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;q=3;g1=1;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k:integer;

h,d,tau,t:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(p+r);end;

function fi(p,r:real):real;

begin fi:= begin fi:=A*exp(p+r)*(p*(p-1)+r*(r-1)+3);end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

p1(p,r:real):real;

begin p1:=p+r+2;end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p0>0,pn>0');

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(x[i]);

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=1+(p1(x[i],t[j])*tau[j])/h[i]+tau[j]*q;

b[0]:=(tau[j]*p1)/h[i];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=tau[j]*fi(x[0],t[j])+u[0];

f[n]:= A1*exp(l+t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Уравнение с переменными коэффициентами

Схема с центральной разностью

p0<0, pN<0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1; q=3;g1=1;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k:integer;

h,d,tau,t:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(p+r);end;

function fi(p,r:real):real;

begin fi:=A1*exp(p+r)*(p*(p+1)+r*(r+1)+7);end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

function p1(p,r:real):real;

begin p1:=-(p+r+2);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p0<0,pn<0');

readln;

h[0]:=0;

h[1]:=g1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(x[i]);

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=1;

b[0]:=0;

a[n]:=-(tau[j]*p1[x)/h[i];

c[n]:=1-(p1*tau[j])/h[i]+tau[j]*q;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=A1*exp(t[j]);

f[n]:= (tau[j]*fi(x[n],t[j])+u[n]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Уравнение с переменными коэффициентами

Схема с центральной разностью.

p0<0, pN>0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;q=3;a2=1;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k:integer;

h,d,tau,t:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= v*exp(p+r);end;

function fi(p,r:real):real;

begin fi:=A1*exp(p+r)*((p+r+10)-(2*p-1)*exp(2*r);end;

function ro(p,r:real):real;

begin ro:=p+r+10;end;

function p1(p,r:real):real;

begin p1:=(2*p-1)*exp(2*r);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p0<0,pn>0');

readln;

h[0]:=0;

h[1]:=a2;

for i:=2 to n do

h[i]:=h[i-1]*q1;

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i];

u[i]:= A1*exp(x[i]);

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=1;

b[0]:=0;

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

r[i]:=tau[j+1]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j+1]*fi(x[i],t[j]);end;

f[0]:=A1*exp(t[j]);

f[n]:=A1*exp(l+t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Уравнение с переменными коэффициентами

Схема с центральной разностью.

p0>0, p<0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1; a2=1;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k:integer;

h,d,tau,t:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(p+r);end;

function fi(p,r:real):real;

begin fi:=A1*exp(p+r)*((p+r+10)-(2*p-1)*exp(2*r);end;

function ro(p,r:real):real;

begin ro:=p+r+10;end;

function p1(p,r:real):real;

begin p1:=(2*p-1)*exp(2*r);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p0>0,pn<0');

readln;

h[0]:=0;

h[1]:=a2;

for i:=2 to n do

h[i]:=h[i-1]*q;

h[i]:=x[i]-x[i-1];

tau[j]:=t[j]-tau[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(x[i]);

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=p1+ro*tau[j]/h[i];

b[0]:=tau[j]*p1/h[i];

a[n]:=tau[j]*p1/h[i];

c[n]:=-ro+p1*tau[j]/h[i];

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=tau[j+1]*fi(x[0],t[j])+ro*u[0];

f[n]:=-(tau[j+1]*fi(x[n],t[j])+ro*u[n]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Приложение 3


Уравнение с переменными коэффициентами

Трехточечная схема с весом

Метод прогонки

p0>0, pN>0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;q=3;a2=1;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(p+r);end;

function fi(p,r:real):real;

begin fi:=A*exp(p+r)*(p*(p-1)+r*(r-1)+3);end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

function p1(p,r:real):real;

begin p1:=p+r+2;end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema begushego scheta');

writeln(' metod progonki');

writeln(' ------------------------------' );

writeln('-------------kogda p0>0,pN>0------------');

writeln(' vvedite G=' );

read(G);

writeln('----------------------------------------');

readln;

readln;

h[0]:=0;

h[1]:=a2;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(x[i]);

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=ro+(p1*tau[j])/h[i];

b[0]:=G*tau[j]*p1/h[i];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

a[i]:=-G*p1*tau[j]/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-G)*p1*tau[j]/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=G*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-G)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];

end;

f5[i]:=(1-G)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+G*tau[j]*fi(x[0],t[j]+tau[j]);

f[0]:=f6[j]+(1-G)*tau[j]*fi(x[0],t[j]);

f[n]:= A1*exp(l+t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Уравнение с переменными коэффициентами

Трехточечная схема с весом

Метод прогонки

p0<0, pN<0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;q=3;a2=1;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(p+r);end;

function fi(p,r:real):real;

begin fi:=A*exp(p+r)*(p*(p+1)+r*(r+1)+7); end;

function ro(p,r:real):real;

begin ro:=sqr(p)+sqr(r)+5;end;

function p1(p,r:real):real;

begin p1:=-(p+r+2);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'trextochechnaya sxema');

writeln(' kogda p<0');

writeln(' vvedite G=' );

read(G);

writeln('----------------------------------------------------');

readln;

readln;

h[0]:=0;

h[1]:=a2;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(x[i]);

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=1;

b[0]:=0;

a[n]:=-g*(tau[j]*p1)/h[i];

c[n]:=ro-g*(p1*tau[j])/h[i];

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=(-g*p1*tau[j])/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-g)*(p1*tau[j])/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=g*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-g)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];end;

f[0]:=A1*exp(t[j]);

f5[i]:=(1-g)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+g*tau[j]*fi(x[0],t[j]+tau[j]);

f[n]:=f6[j]+(1-g)*tau[j]*fi(x[0],t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Приложение 4


Уравнение с постоянными коэффициентами

“Явная” схема.

Левая разностная схема

p<0

uses crt;

const n=15;j0=50;tt=1;l=1;A=1;B=1;p1=1;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j:integer;

h,d,tau,t:hi;

u11,u12:real;

u,u1,x,g,u2:m;

function ut(p,r:real):real;

begin ut:= A*exp(B*(p+r));end;

function fi(p,r:real):real;

begin fi:=A*B*exp(B*(p+r))*(1-p1+q/B); end;

begin

clrscr;

writeln ( 'sxema begushego scheta');

writeln(' kogda p0>0,pN>0');

writeln(' pravaya raznostnaya sxema');

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;j:=1;

for i:=0 to n do

begin

x[i]:=i*h;t[j]:=j*tau[j];

u[i]:= A*(exp(B*(x[i])));

end;

while t[j]<=tt do begin clrscr;

t[j]:=t[j]+tau[j];

u1[n]:=A*exp(B*(l+t[j]));

for i:=n-1 downto 0 do begin

g[i]:=(tau[j+1]*p1)/h[i];

u11:=(g[i]*u1[i+1])+u[i];

u12:=tau*fi(x[i],t[j]);

u1[i]:=(u11+u12)/(1+g[i]+tau[j+1]*q);

end;

for i:=0 to n do u[i]:=u1[i];

writeln('----------------------------------------------------------');

write(' ',j,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t):6:8,' ',d[i]:6:8,' '); end;

j:=j+1;

writeln('--------------------------------------------------------------');

readln;

end;

end.


Уравнение с постоянными коэффициентами

“Явная” схема.

Схема бегущего счета.

Правая разностная схема

p>0

uses crt;

const n=15;j0=50;tt=1;l=1;A=1;B=-1;p1=-3;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j:integer;

x,h,d,tau,t:hi;

u11,u12:real;

u,u1,g:m;

function ut(p,r:real):real;

begin ut:= A*exp(B*(p+r));end;

function fi(p,r:real):real;

begin fi:=A*B*exp(B*(p+r))*(1-p1+q/B); end;

begin

clrscr;

writeln ( 'sxema begushego scheta');

writeln(' kogda p0<0,pN<0');

writeln(' levaya raznostnaya sxema');

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;j:=1;

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A*(exp(B*(x[i])));

end;

while t[j]<=tt do begin clrscr;

t[j]:=t[j]+tau[j];

u1[0]:=A*exp(B*(t[j]));

for i:=1 to n do begin

g[i]:=(tau[j]*p1)/h[i];

u11:=(-g[i]*u1[i-1])+u[i];

u12:=tau[j]*fi(x[i],t[j]);

u1[i]:=(u11+u12)/(1-g[i]+tau[j]*q);

end;

for i:=0 to n do u[i]:=u1[i];

writeln('----------------------------------------------------------');

write(' ',j,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[j]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[j]:6:8,' '); end;

j:=j+1;

writeln('--------------------------------------------------------------');

readln;

end;

end.

Приложение 5.


Уравнение с постоянными коэффициентами

Схема с центральной разностью

p>0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;B1=1;p1=1;q=3;g1=1;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k:integer;

h,d,tau,t:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(B1*(p+r));end;

function fi(p,r:real):real;

begin fi:=A1*B1*exp(B1*(p+r))*(1-p+q/B);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p0>0,pn>0');

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(B1*(x[i]));

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=1+(p1*tau[j+1])/h[1]+tau[j+1]*q;

b[0]:=(tau[j+1]*p1)/h[1];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=tau[j]*fi(x[0],t[j])+u[0];

f[n]:= A1*exp(B1*(l+t[j]));

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Уравнение с постоянными коэффициентами

Схема с центральной разностью

P<0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;B1=-1;p1=-1; q=3;g1=1;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k:integer;

h,d,tau,t:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(B1*(p+r));end;

function fi(p,r:real):real;

begin fi:=A1*B1*exp(B1*(p+r))*(1-p1+q/B);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema s sentralnoy raznostju');

writeln(' kogda p0<0,pn<0');

readln;

h[0]:=0;

h[1]:=g1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(B1*(x[i]));

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=1;

b[0]:=0;

a[n]:=-(tau[j]*p1)/h[i];

c[n]:=1-(p1*tau[j])/h[i]+tau[j]*q;

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=-r[i];

c[i]:=ro;

b[i]:=-a[i];

f[i]:=ro*u[i]+tau[j]*fi(x[i],t[j]);end;

f[0]:=A1*exp(t[j]);

f[n]:= (tau[j]*fi(x[n],t[j])+u[n]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Приложение 6


Уравнение с постоянными коэффициентами

Трехточечная схема с весом

Метод прогонки

p>0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;B1=1;p1=1;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(B1*(p+r));end;

function fi(p,r:real):real;

begin fi:=A1*B1*exp(B1*(p+r))*(1-p1+q/B1);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'sxema begushego scheta');

writeln(' metod progonki');

writeln(' ------------------------------' );

writeln('-------------kogda p0>0,pN>0------------');

writeln(' vvedite G=' );

read(G);

writeln('----------------------------------------');

readln;

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(B1*(x[i]));

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=ro+(p1*tau[j])/h[i];

b[0]:=G*tau[j]*p1/h[i];

a[n]:=0;

c[n]:=1;

for i:=1 to n-1 do begin

a[i]:=-G*p1*tau[j]/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-G)*p1*tau[j]/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=G*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-G)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];

end;

f5[i]:=(1-G)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+G*tau[j]*fi(x[0],t[j]+tau[j]);

f[0]:=f6[j]+(1-G)*tau[j]*fi(x[0],t[j]);

f[n]:= A1*exp(B1*(l+t[j]));

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.


Уравнение с постоянными коэффициентами

Трехточечная схема с весом

Метод прогонки

P<0

uses crt;

const n=15;j0=50;tt=1;l=1;A1=1;B1=-1;p1=-1;q=3;

type m=array[0..n] of real;

hi=array[0..n] of real;

var i,j,k,G:integer;

h,d,tau,t,f1,f2,f3,f4,f5,f6:hi;

u,u1,r,x,z,a,b,c,f,alfa,betta:m;

function ut(p,r:real):real;

begin ut:= A1*exp(B1*(p+r));end;

function fi(p,r:real):real;

begin fi:=A1*B1*exp(B1*(p+r))*(1-p1+q/B1);end;

begin

clrscr;

writeln (' chislennoe reshenie uravneniya perenosa');

writeln ( 'trextochechnaya sxema');

writeln(' kogda p<0');

writeln(' vvedite G=' );

read(G);

writeln('----------------------------------------------------');

readln;

readln;

h[0]:=0;

h[1]:=a1;

for i:=2 to n do

h[i]:=h[i-1]*q;

for i:=0 to n do

h[i]:=x[i]-x[i-1];;

tau[j]:=t[j]-t[j-1];

t[j]:=0;k:=0;

clrscr;

writeln('------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('-------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnost ');

writeln('--------------------------------------------------------');

for i:=0 to n do

begin

x[i]:=i*h[i]; t[j]:=j*tau[j];

u[i]:= A1*exp(B1*(x[i]));

d[i]:=abs(ut(x[i],t[j])-u[i]);

write('',i,'',u[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,'',d[i]:6:8,'');

end;

writeln('-------------------------------------------------------');

readln;

k:=1;

while t[j]<=tt do begin

clrscr;

t[j]:=t[j]+tau[j];

c[0]:=1;

b[0]:=0;

a[n]:=-g*(tau[j]*p1)/h[i];

c[n]:=ro-g*(p1*tau[j])/h[i];

for i:=1 to n-1 do begin

r[i]:=tau[j]*p1/(2*h[i]);

a[i]:=(-g*p1*tau[j])/(2*h[i]);

c[i]:=ro;

b[i]:=-a[i];

f1[i]:=(1-g)*(p1*tau[j])/(2*h[i]);

f2[i]:=ro*u[i];

f3[i]:=g*tau[j]*fi(x[i],t[j]);

f4[i]:=(1-g)*tau[j]*fi(x[i],t[j]-tau[j]);

f[i]:=f1[i]*(u[i+1]-u[i-1])+f2[i]+f3[i]+f4[i];end;

f[0]:=A1*exp(B1*(t[j]));

f5[i]:=(1-g)*p1*(u[1]-u[0])*tau[j]/h[i];

f6[i]:=ro*u[0]+f5[i]+g*tau[j]*fi(x[0],t[j]+tau[j]);

f[n]:=f6[j]+(1-g)*tau[j]*fi(x[0],t[j]);

alfa[0]:=b[0]/c[0];

betta[0]:=f[0]/c[0];

for i:=1 to n-1 do begin

z[i]:=c[i]-alfa[i-1]*a[i];

alfa[i]:=b[i]/z[i];

betta[i]:=(f[i]+a[i]*betta[i-1])/z[i]; end;

u1[n]:=(f[n]+a[n]*betta[n-1])/(c[n]-alfa[n-1]*a[n]);

for i:=n-1 downto 0 do

u1[i]:=alfa[i]*u1[i+1]+betta[i];

writeln('----------------------------------------------------------');

write(' ',k,'sloy');

writeln(' ');

writeln('--------------------------------------------------------');

writeln('N priblijennoe tochnoe pogreshnosti ');

writeln('--------------------------------------------------------');

for i:=0 to n do begin

d[i]:=abs(ut(x[i],t[j])-u1[i]);

write('',I,' ',u1[i]:6:8,' ');

writeln(ut(x[i],t[j]):6:8,' ',d[i]:6:8,' '); end;

k:=k+1;

writeln('--------------------------------------------------------------');

readln;

for i:=0 to n do

u[i]:=u1[i];

end;

end.

Похожие работы:

  1. Разностные схемы для уравнений параболического типа
  2. • Уравнение Кортевега - де Фриса, солитон, уединенная волна
  3. • Разностные аппроксимации
  4. • Примеры разностных аппроксимаций
  5. • Краевые задачи и разностные схемы
  6. • Методы оценки температурного состояния
  7. • Экзаменационные билеты по численным методам за первый семестр ...
  8. • Решение смешанной задачи для уравнения гиперболического типа ...
  9. • Решение параболических уравнений
  10. • Решения смешанной задачи для уравнения гиперболического типа ...
  11. • Смешанная задача для уравнения гиперболического типа
  12. • Факторизация в численных методах интегрирования вырожденных ...
  13. • Классификации гиперболических дифференциальных ...
  14. • Температурный расчет с помощью вычислений информационной ...
  15. • Численное исследование движения системы "газовая ...
  16. • Решение смешанной задачи для уравнения
  17. • Дискретные цепи
  18. • Моделирование распределения потенциала в МДП-структуре
  19. • Моделирование распределения потенциала в МДП-структуре
Рефетека ру refoteka@gmail.com