Рефетека.ру / Математика

Курсовая работа: Решение параболических уравнений

Реферат


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

Объем курсовой работы: 33 с.

Иллюстраций: 5.

Графиков: 1.

Источников: 4.

Ключевые слова: параболическое уравнение, уравнение теплопроводности, метод сеток, краевая задача, конечные разности.


Содержание


Введение

1. Теоретическая часть

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

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

1.3 Оценка погрешности и сходимость метода сеток

1.4 Доказательство устойчивости разностной схемы

2. Реализация метода

2.1 Разработка программного модуля

2.2 Описание логики программного модуля

2.3 Пример работы программы

Заключение

Список источников

Приложение


Введение


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

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


Решение параболических уравнений.


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

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


1. Теоретическая часть


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


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


Решение параболических уравнений. 141


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

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

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

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


Решение параболических уравнений, 141


Решение параболических уравнений – известная функция.

Будем искать решение этого уравнения в области


Решение параболических уравнений


Заметим, что эту полуполосу всегда можно привести к полуполосе, когда Решение параболических уравнений. Уравнение (1.2) будем решать с начальными условиями:


Решение параболических уравнений, 141


Решение параболических уравнений – известная функция, и краевыми условиями:

Решение параболических уравнений 141


где Решение параболических уравнений – известные функции переменной Решение параболических уравнений.

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


Решение параболических уравнений


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


Решение параболических уравнений.


Для производной Решение параболических уравнений запишем следующие формулы:


Решение параболических уравнений,

Решение параболических уравнений,


Решение параболических уравнений.


Можем получить три вида разностных уравнений:


Решение параболических уравнений, 141


Решение параболических уравнений, 141


Решение параболических уравнений, 141


Решение параболических уравнений.


Разностные уравнения (1.5) аппроксимируют уравнение (1.2) с погрешностью Решение параболических уравнений, уравнение (1.6) – с такой же погрешностью, а уравнение (1.7) уже аппроксимирует уравнение (1.2) с погрешностью Решение параболических уравнений.

В разностной схеме (1.5) задействованы 4 узла. Конфигурация схемы (1.5) имеет вид:


Решение параболических уравнений

В схеме (1.6) также участвуют 4 узла, и эта схема имеет вид:


Решение параболических уравнений


В схеме (1.7) участвуют 5 узлов, и эта схема имеет вид:


Решение параболических уравнений


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

Для узлов начального (нулевого) слоя Решение параболических уравнений значения решения выписываются с помощью начального условия (1.3):


Решение параболических уравнений 141


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

Решение параболических уравнений 141


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

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

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

С точки зрения точечной аппроксимации третья схема самая точная.

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

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

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

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

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

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


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


Рассмотрим частный случай задачи, поставленной в предыдущем разделе. В области


Решение параболических уравнений


найти решение уравнения


Решение параболических уравнений 141


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


Решение параболических уравнений 141


и начальным условием


Решение параболических уравнений. 141


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

Решение параболических уравнений


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


Решение параболических уравнений,


Решение параболических уравнений.


Эти формулы имеет погрешность Решение параболических уравнений. В результате уравнение (1.10) заменяется разностным:


Решение параболических уравнений 141


Перепишем (1.13) в виде:


Решение параболических уравнений. 141


Данная вычислительная схема имеет следующую конфигурацию:


Решение параболических уравнений


Решение параболических уравнений 141


Решение параболических уравнений 141


Система (1.14) – (1.16) представляет собой разностную задачу, соответствующую краевой задаче (1.10) – (1.12).

За величину Решение параболических уравнений мы положили Решение параболических уравнений.

(1.14) – (1.16) есть система линейных алгебраических уравнений с 3-диагональной матрицей, поэтому ее резонно решать методом прогонки, так как он в несколько раз превосходит по скорости метод Гаусса.


Решение параболических уравнений. 141


Здесь Решение параболических уравнений, Решение параболических уравнений – некоторые коэффициенты, подлежащие определению. Заменив в (1.17) Решение параболических уравнений на Решение параболических уравнений будем иметь:


Решение параболических уравнений. 141


Подставив уравнение (1.18) в (1.14) получим:


Решение параболических уравнений. 141


Сравнив (1.17) и (1.19) найдем, что:


Решение параболических уравнений 141


Положим в (1.14) Решение параболических уравнений и найдем из него Решение параболических уравнений:


Решение параболических уравнений,


Решение параболических уравнений.


Решение параболических уравнений 141


Заметим, что во второй формуле (1.21) величина Решение параболических уравнений подлежит замене на Решение параболических уравнений согласно первому условию (1.15).

С помощью формул (1.21) и (1.20) проводим прогонку в прямом направлении. В результате находим величины


Решение параболических уравнений


Затем осуществляем обратный ход. При этом воспользуемся второй из формул (1.15) и формулой (1.17). Получим следующую цепочку формул:

Решение параболических уравнений 141


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

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


1.3 Оценка погрешности и сходимость метода сеток


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

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

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

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

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


1.4 Доказательство устойчивости разностной схемы


Пусть Решение параболических уравнений есть решение уравнения (1.14), удовлетворяющее возмущенным начальным условиям


Решение параболических уравнений


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


Решение параболических уравнений


Решение параболических уравнений.


Здесь Решение параболических уравнений – некоторые начальные ошибки.

Рассмотрим погрешность


Решение параболических уравнений.

Погрешность Решение параболических уравнений будет удовлетворять уравнению


Решение параболических уравнений 141


(в силу линейности уравнения (1.14)), а также следующими граничными и начальными условиями:


Решение параболических уравнений, 141


Решение параболических уравнений. 141


Частное решение уравнения (1.23) будем искать в виде


Решение параболических уравнений. 141


Здесь числа Решение параболических уравнений и Решение параболических уравнений следует подобрать так, чтобы выражение (1.26) удовлетворяло уравнению (1.23) и граничным условиям (1.24).

При целом Решение параболических уравнений Решение параболических уравнений удовлетворяет уравнению (1.23) и условиям (1.24).

Подставим уравнение (1.26) в уравнение (1.24). При этом получим:


Решение параболических уравнений


или


Решение параболических уравнений.

Выражение в квадратных скобках равно


Решение параболических уравнений.


Подставляя это выражение в предыдущее уравнение вместо выражения в квадратных скобках и проводя сокращения на Решение параболических уравнений получим:


Решение параболических уравнений,


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


Решение параболических уравнений.


Таким образом, согласно уравнению (1.26), получаем линейно-независимые решения уравнения (1.23) в виде


Решение параболических уравнений


Заметим, что это частное решение удовлетворяет однородным краевым условиям (1.24). Линейная комбинация этих частных решений также является решением уравнения (1.23):


Решение параболических уравнений, 141


причем Решение параболических уравнений, определенное в выражении (1.27), удовлетворяет для любых Решение параболических уравнений однородным граничным условиям (1.24). Коэффициенты Решение параболических уравнений подбираются исходя из того, что Решение параболических уравнений должны удовлетворять начальным условиям (1.25):


Решение параболических уравнений.


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


Решение параболических уравнений,


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

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


Решение параболических уравнений. 141


Анализируя (1.28) видим, что это неравенство выполняется для любых значений параметра Решение параболических уравнений. При этом при Решение параболических уравнений Решение параболических уравнений или в крайнем случае, когда

Решение параболических уравнений,


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


2. Реализация метода


2.1 Разработка программного модуля


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


Решение параболических уравнений 141


в области


Решение параболических уравнений,


удовлетворяющее условиям


Решение параболических уравнений 141


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


Решение параболических уравнений


где

Решение параболических уравнений – шаг по оси Решение параболических уравнений,

Решение параболических уравнений – шаг по оси Решение параболических уравнений.

Заменив в каждом узле производные конечно-разностными отношениями по неявной схеме, получим систему вида:

Решение параболических уравнений. 141


Преобразовав ее, получим:


Решение параболических уравнений, 141


где

Решение параболических уравнений

В граничных узлах


Решение параболических уравнений 141


В начальный момент


Решение параболических уравнений. 141


Эта разностная схема устойчива при любом Решение параболических уравнений. Будем решать систему уравнений (1.32), (1.33) и (1.34) методом прогонки. Для этого ищем значения функции в узле Решение параболических уравнений в виде


Решение параболических уравнений, 141


где Решение параболических уравнений – пока неизвестные коэффициенты.

Аналогично


Решение параболических уравнений. 141


Подставив значение (1.35) в (1.32) получим:


Решение параболических уравнений.


Откуда


Решение параболических уравнений. 141


Из сравнения (1.35) и (1.37) видно, что


Решение параболических уравнений. 141


Решение параболических уравнений. 141


Для Решение параболических уравнений из (1.32) имеем:


Решение параболических уравнений.


Откуда


Решение параболических уравнений


или


Решение параболических уравнений.


Откуда, используя (1.35), получим:


Решение параболических уравнений, 141


Решение параболических уравнений. 141


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

1) Зная значения функции Решение параболических уравнений на границе (1.33), найдем значения коэффициентов Решение параболических уравнений по (1.40) и Решение параболических уравнений по (1.38) для всех Решение параболических уравнений.

2) Найдем Решение параболических уравнений по (1.41), используя для Решение параболических уравнений начальное условие (1.34).

3) Найдем Решение параболических уравнений по формулам (1.39) для Решение параболических уравнений.

4) Найдем значения искомой функции на Решение параболических уравнений слое, начиная с Решение параболических уравнений:


Решение параболических уравнений


2.2 Описание логики программного модуля


Листинг программы приведен в приложении 1. Ниже будут описаны функции программного модуля и их назначение.

Функция main() является базовой. Она реализует алгоритм метода сеток, описанного в предыдущих разделах работы.

Функция f (x, y) представляет собой свободную функцию двух переменных дифференциального уравнения (1.29). В качестве аргумента в нее передаются два вещественных числа с плавающей точкой типа float. На выходе функция возвращает значение функции Решение параболических уравнений, вычисленное в точке Решение параболических уравнений.

Функции mu_1 (t) и mu_2 (t) представляют собой краевые условия. В них передается по одному аргументу (t) вещественного типа (float).

Функция phi() является ответственной за начальный условия.

В функции main() определены следующие константы:

Решение параболических уравнений – правая граница по Решение параболических уравнений для области Решение параболических уравнений;

Решение параболических уравнений – правая граница по Решение параболических уравнений для области Решение параболических уравнений;

Решение параболических уравнений – шаг сетки по оси Решение параболических уравнений;

Решение параболических уравнений – шаг сетки по оси Решение параболических уравнений;

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

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

Программа написана на языке программирования высокого уровня Borland C++ 3.1 в виде приложения MS-DOS. Обеспечивается полная совместимость программы со всеми широко известными операционными системами корпорации Майкрософт: MS-DOS 5.x, 6.xx, 7.xx, 8.xx, Windows 9x/Me/2000/NT/XP.


2.3 Пример работы программы


В качестве примера рассмотрим численное решение следующего дифференциального уравнения параболического типа:

Решение параболических уравнений

в области

Решение параболических уравнений,

удовлетворяющее условиям


Решение параболических уравнений


Задав прямоугольную сетку с шагом оси Решение параболических уравнений 0.1 и по оси Решение параболических уравнений 0.01, получим следующее решение:

2.10 1.91 1.76 1.63 1.53 1.44 1.37 1.31 1.26 1.22 1.18

2.11 1.75 1.23 1.20 1.15 1.10 1.07 1.04 1.04 1.07 1.21

2.12 1.61 0.95 0.96 0.93 0.91 0.90 0.90 0.94 1.03 1.24

2.13 1.51 0.79 0.81 0.81 0.80 0.81 0.83 0.89 1.03 1.27

2.14 1.45 0.69 0.73 0.74 0.74 0.76 0.80 0.88 1.04 1.31

2.15 1.41 0.64 0.69 0.70 0.71 0.74 0.79 0.89 1.05 1.34

В таблице ось x расположена горизонтально, а ось t расположена вертикально и направлена вниз.

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

Подробно выходной файл output.txt, содержащий таблицу значений функции Решение параболических уравнений представлен в приложении 3.


Заключение


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

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


Список источников


Березин И.С., Жидков Н.П. Методы вычислений. Т.2. – М.: Физматгиз, 1962.

Тихонов А.Н., Самарский А.А. Уравнения математической физики. – М.: Наука, 1972.

Пирумов У.Г. Численные методы. – М.: Издательство МАИ, 1998.

Калиткин Н.Н. Численные методы. – М.: Наука, 1976.


Приложение


Текст программы


 // – //

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main(void);

float f (float x, float t);

float mu_1 (float t);

float mu_2 (float t);

float phi (float x);

 // – //

void main(void)

{

clrscr();

FILE *myfile;

FILE *plotter;

float a[120] [120];

float b[120] [120];

float u[120] [120];

float T = 0.05;

float l = 1;

float h = 0.1;

float tau = 0.01;

int n, i, j, k;

float s = pow (h, 2) / tau;

n = ceil (l / h);

for (i = 0; i <= 119; i++)

{

for (j = 1; j <= 119; j++)

{

u[i] [j] = 0;

a[i] [j] = 0;

b[i] [j] = 0;

}

}

for (i = 0; i <= n; i++)

{

u[i] [0] = phi (i * h);

}

for (j = 0; j <= floor (T /tau); j++)

{

u[0] [j] = mu_1 (tau * j);

u[n] [j] = mu_2 (tau * j);

}

for (j = 0; j <= floor (T / tau); j++)

{

a[1] [j + 1] = 1 / (2 + s);

for (i = 2; i <= n – 1; i++)

{

a[i] [j + 1] = 1 / (2 + s – a [i – 1] [j + 1]);

}

b[1] [j + 1] = mu_1 ((j + 1) * tau) + s * u[1] [j] + pow (h, 2) * f (h, (j + 1) * tau);

for (i = 2; i <= n – 1; i++)

{

b[i] [j + 1] = a [i – 1] [j + 1] + s * u[i] [j] + pow (h, 2) * f (i * h, (j + 1) * tau);

}

u[n] [j + 1] = mu_2 ((j + 1) * tau);

for (k = 1; k <= n – 1; k++)

{

u [n – k] [j + 1] = a [n – k] [j + 1] * (b [n – k] [j + 1] + u [n – k + 1] [j + 1]);

}

}

myfile = fopen («output.txt», «w+»);

plotter = fopen («3dplot.txt», «w+»);

fprintf (myfile, «Таблица значений функции u=u (x, t) в области D={0<=X<=%g, 0<=T<=%g}:\n», l, T);

printf («Значения функции u (x, t) в области D={0<=X<=%g, 0<=T<=%g}:\n\n», l, T);

for (j = 0; j <= floor (T / tau); j++)

{

for (i = 0; i <= n; i++)

{

printf («%.2f», u[i] [j]);

fprintf (myfile, «u(%g) (%g)=%g;\n», i * h, j * tau, u[i] [j]);

if (i < n && j < floor (T / tau))

{

fprintf (plotter, «[[%g, %g, %g], [%g, %g, %g], [%g, %g, %g], [%g, %g, %g]]», i * h, j * tau, u[i] [j], (i + 1) * h, j * tau, u [i + 1] [j], i * h, (j + 1) * tau, u[i] [j + 1], (i + 1) * h, (j + 1) * tau, u [i + 1] [j + 1]);

if (i >= n – 1 && j >= floor (T / tau) – 1)

{

}

else

{

fprintf (plotter,»,»);

}

}

}

printf («\n»);

}

fclose(myfile);

fclose(plotter);

printf («\nОсь x расположена горизонтально; ось t расположена вертикально и направлена вниз»);

printf («Шаг по оси x равен % g; шаг по оси t равен % g.\n», h, tau);

printf («\nДля выхода нажмите ENTER…»);

while (getch()!= 13);

}

 // – //

float f (float x, float t)

{

return x * t;

}

 // – //

float mu_1 (float t)

{

return 2.1 + t;

}

 // – //

float mu_2 (float t)

{

return 3.2 * (t + 1 / 2.71828);

}

 // – //

float phi (float x)

{

return (1.1 * pow (x, 2) + 2.1) * exp(-x);

}

Похожие работы:

  1. • Роль теории дифференциальных уравнений в современной ...
  2. • Математик И.Г. Петровский
  3. • Разностные схемы для уравнений параболического типа
  4. • Малошумящие однозеркальные параболические антенны
  5. • Малошумящие однозеркальные параболические антенны
  6. • Малошумящие однозеркальные параболические антенны
  7. • Расчет зеркальной параболической антенны с ...
  8. • Зеркальные антенны
  9. • Классификации гиперболических дифференциальных ...
  10. • Дифференциальные уравнения с запаздывающим аргументом
  11. • Антенна РЛС - параболоид вращения
  12. • Локальная и нелокальная задачи для уравнения смешанного типа ...
  13. • Волновое уравнение не имеет единственного решения
  14. • Прогнозирование урожайности различными методами
  15. • Двухзеркальная параболическая антенна круговой ...
  16. • Экзаменационные билеты по аналитической геометрии за первый ...
  17. • Поверхности второго порядка
  18. • Расчет показателей планового задания численности ...
  19. • Использование дифференциальных уравнений в частных ...
Рефетека ру refoteka@gmail.com