АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Теоретическая часть, требуемая непосредственно для реализации

Читайте также:
  1. D) постоянных затрат к разнице между ценой реализации продукции и удельными переменными затратами.
  2. ERP-стандарты и Стандарты Качества как инструменты реализации принципа «Непрерывного улучшения»
  3. I Доходы от реализации (ст.249 НК РФ)
  4. I. Значение и задачи учета. Основные документы от реализации продукции, работ, услуг.
  5. I. Теоретическая часть
  6. I. Теоретическая часть
  7. I. Теоретическая часть.
  8. III. Краткая теоретическая часть.
  9. III. Психические свойства личности – типичные для данного человека особенности его психики, особенности реализации его психических процессов.
  10. IV. Механизмы и основные меры реализации государственной политики в области развития инновационной системы
  11. А). В любой ветви напряжение и заряд на емкости сохраняют в момент коммутации те значения, которые они имели непосредственно перед коммутацией, и в дальнейшем изменяются,
  12. Алгоритмические технологии и особенности их реализации в процессе педагогической деятельности по своей специальности

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

 

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

(1)

Здесь - скорость переноса, которую будем считать постоянной и положительной.

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

Характеристики уравнения (1) определяются соотношениями . При постоянном они являются прямыми линиями, которые в данном случае () наклонены вправо (рис 8.).

Рис.8.

Расчётная область решения уравнения (1) может быть бесконечной. так и ограниченной. В первом случае, задавая начальное условие при :

(2)

Получаем задачу Коши для полуплоскости . На практике обычно приходиться решать уравнения переноса в некоторой ограниченной области (например, в прямоугольнике ). Начальное условие в этом случае задаётся на отрезке ; граничное условие нужно задать при т.е. на отрезке , поскольку при a>0 возмущения распространяются вправо. Это условие запишем в виде

(3)

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

Рассмотрим разностные схемы для решения задачи (1)-(3). Построим в области G равномерную прямоугольную сетку с помощью прямых и Вместо функций будем рассматривать сеточные функции значения которых в узлах cсоответственно равны . Для построения разностной схемы необходимо выбрать шаблон. Примем его в виде правого нижнего уголка (рис 9).

Рис.9.

 

При этом входящие в уравнение производные аппроксимируются конечно-разностными соотношениями с использованием односторонних связей:

(4)

Решая это разностное уравнение относительно единственного неизвестного значения на слое, получаем следующую разностную схему:

, , (5)

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

Для начала счета по схеме (5), т.е. для вычисления сеточной функции на первом слое, необходимы её значения на слое Они определяются начальным условием (2), которое записываем для сеточной функции:

(6)

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

, (7)

Таким образом, решение исходной дифференциальной задачи (1) - (3) сводится к решению разностной задачи (5)-(7). Найденные значения сеточной функции принимаются в качестве значений искомой функции и в узлах сетки.

Укажем теперь некоторые свойства данной разностной схемы. Она аппроксимирует

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

Схема условно устойчива; условие устойчивости имеет вид ()

Эти свойства схемы установлены в предположении, что решение U(x, t), начальное и

граничное значения Ф(x) и дважды непрерывно дифференцируемы, а правая часть F(x, t) имеет непрерывные первые производные.

Поскольку схема устойчива и аппроксимирует исходную задачу, сеточное решение сходится к точному с первым порядком при . Отметим, что при а < 0 условие не выполняется, и не сходится[1].

 

Таблица идентификаторов

Тип переменной Имя переменной Хранимое значение
int I Кол-во шагов по x
int J Кол-во шагов по t
double a Скорость потока
double lmd Лямбда
double tau Шаг сетки по t
double h Шаг сетки по x
double x[] Значения x
double t[] Значения t
double u[ ][ ] Значения в узлах

 

Реализация на языке программирования С++

#include <iostream> #include <math.h> #include <locale> #include <iomanip> using namespace std; double fi(double x) { return x+3; } double psi(double t) { return t+1; } double func(double x, double t) { return x+t+1; } int main() { setlocale(LC_ALL, "rus"); double a; // скорость потока double x[12]; // Значения x double t[7]; // Значения y double u[8][11]; // таблица узлов int J=5; int I=10; double h; // шаг сетки по h double tau; // шаг сетки по t double lmd; cout<<"Решение уравнения переноса:"<<endl; cout<<" dU/dt + a*(dU/dx) = F(x,t) "<<endl; cout<<"F(x,t): F(x,t)=x+t+1 "<<endl; cout<<"Начальное условие: U(x,0)=fi(x)=x+3 "<<endl; cout<<"Граничное условие: U(0,t)=psi(t)=t+1 "<<endl; cout<<"Ограниченная область G: 0<=x<=1 и 0<=t<=0.5 "<<endl; cout<<"Введите а - скорость переноса, a > 0: "; cin>>a; h=1.0/I; tau=0.5/J; lmd=(a*tau)/h; // из формулы (5) x[0]=0; t[0]=0; //формулы (6) for(int i=0;i<=I;i++) { x[i+1]=x[i]+h; u[0][i]=fi(x[i]); // cout<<x[i]<<endl; // cout<<u[0][i]<<endl; } // формулы (7, 5) for(int j=0;j<=J;j++) { t[j+1]=t[j]+tau; u[j+1][0]=psi(t[j+1]); // cout<<t[j]<<endl; // cout<<u[j+1][0]<<endl; for(int i=1;i<=I;i++) { u[j+1][i]=lmd*u[j][i-1] + (1 - lmd)*u[j][i] + tau*func(x[i],t[j]); } } // вывод таблицы узлов for(int i=0;i<=J;i++) { for(int j=0;j<=I;j++) { cout<<setw(10)<<u[i][j]<<setw(10); } cout<<endl<<endl; } system("pause"); return 0; }

 

 


1 | 2 | 3 | 4 | 5 | 6 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)