МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ ПРОЦЕССОВ С ПОМОЩЬЮ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ ПРОЦЕССОВ С ПОМОЩЬЮ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ

Кузнецов В.В. 1
1Елецкий государственный университет им. И. А. Бунина
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Уравнения в частных производных, как известно, описывают многие сложные процессы гидродинамики, теории поля, электродинамики, физической кинетики, статистической физики, квантовой механики и многих других разделов физики. Однако, их решение в явном виде, и в виде конечной формулы получить удается только в самых простых случаях. До сих пор задачи, которые казались, непреодолимыми математическими трудностями мешали теоретическому исследованию множества сложных задач, которые содержали в себе уравнения в частных производных. Методы решения таких задач можно разбить на точные и приближенные.

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

Приближенные методы решения можно поделить на две группы:

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

  2. методы, в которых приближенное решение получается в виде таблиц в некоторых точках области которую, мы рассматриваем (численные методы).

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

, (1)

где , с – удельная теплоемкость материала, ρ – плотность материала, λ – коэффициент теплопроводности, t– совокупность значений температуры в данный момент времени τ. Требуется найти функцию , удовлетворяющую начальному условию

, (2)

и краевым условиям

. (3)

Задача (1)–(3) является смешанной задачей, так как содержит начальные и граничные условия. Приведем описание реализации метода сеток на языке программирования Borland Pascal 7.0. Решение приведем в общем случае уравнения . Для нахождения приближенного решения параболического уравнения разработаем программный продукт: в области , удовлетворяющей условиям

Разобьем область D прямыми: . Здесь h – шаг по оси x, τ– шаг по оси t.

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

.

Текст программы, реализованной на языке программирования Borland Pascal, приведен в конце статьи.

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

1. Процедура «INIT» осуществляет ввод и считывание вводимых данных. Используются следующие переменные: a – коэффициент перед старшей производной; l – длина отрезка, заключающего переменную x;tt - длина отрезка, заключающего переменную t;hx – шаг по оси Ох, шаг ht по оси Ot вычисляется по формуле ; T0, Tl – значения функции на границе при x = 0 и x = l соответственно. Значение функции в начальный момент времени вычисляется в процедуре «TREAT».

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

3. Программа снабжена двумя механизмами вывода результатов работы: на экран в виде таблицы и в текстовый файл. Процедура «OUTPUT» как раз организует вывод полученных значений на экран и их сохранение в файл «RESULT.txt».

В качестве примера рассмотрим решение уравнения с начальными и краевыми условиями при . Задав прямоугольную сетку с шагом hx = 0.1 и ht = 0.0017, получим следующее решение:

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

0.000000

0.309017

0.587785

0.809017

0.951057

1.000000

0.000000

0.303976

0.578196

0.795818

0.935541

0.983686

0.000000

0.307600

0.568763

0.782835

0.920278

0.967637

0.000000

0.314027

0.560914

0.770063

0.905264

0.951851

0.000000

0.320826

0.554625

0.757739

0.890495

0.936083

0.000000

0.327037

0.549510

0.746012

0.875967

0.920176

0.000000

0.332332

0.545182

0.734921

0.861676

0.904084

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

Построим кривые, иллюстрирующие решение дифференциального уравнения. Построение будем проводить в программе для работы с электронными таблицами Microsoft Office Excel 2003. Эволюция решения дифференциального уравнения во времени приведена на рисунке. Кривые построены по данным, приведенным в таблице начиная со значения времени (ось внизу) t = 0 с шагом 0,0017. Слева расположена ось изменения переменной х от начального значения х = 0 до х = 1 с шагом 0,1.

 

0,0017 0,0034 0,0051 0,0068 0,0085 0,0102

 

Программный код

program LAB8;

uses CRT;

var

i,j,nt,nx:integer;

l,a,tt,hx,ht,Tt0,T0,Tl,x,t1:real;

T:array[0..200,0..50] of real;

{--------------------------------------}

procedure INIT;

begin

write('a=');

readln(a);

write('l=');

readln(l);

write('t=');

readln(tt);

write('hx=');

readln(hx);

ht:=sqr(hx)/6;

writeln('ht=',ht:1:4);

write('T[x=0]=');

readln(T0);

write('T[x=l]=');

readln(Tl);

end;

{-------------------------------------}

procedure TREAT;

begin

i:=1;

j:=0;

x:=0;

while x

Просмотров работы: 647