Реферат: Численное решение модельного уравнения - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Численное решение модельного уравнения

Банк рефератов / Математика

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 128 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Численное решение модельного уравнения диссипации , конвекции и кине тики СОДЕРЖАНИЕ 1. Общая постановка задачи 2. Постановка тестовых задач 3. Методика решения тестовых задач 4. Результаты вычислений Список литературы Приложения Приложение 1: Описание программы Приложение 2: Текст программы 1. ОБЩАЯ ПОСТАНОВКА З АДАЧИ Перенос тепла (или вещества ) теплопроводностью (для вещества соответственно диффузией ) и конвекцией описывается дифференциальным уравнением параболического типа : ( 1 ) где температура (или концентрация ). Пусть являются некоторыми константами и . Уравнение (1) при указанных выше предположениях называется модельным уравнением диссипации , конвекции и кинетики . Слагаемые правой части имеют следующий физический смысл : - соответствует переносу тепла теплопроводностью (или вещества диффузией ); - соответствует конвективному переносу ; - - "кинетический член ", соответствует источнику , пропорционально- му темп ературе или концентрации ; - интенсивность внешних источников или стоков. В дальнейшем будем рассматривать только тепловую интерпретацию уравнения (1). Численное решение уравнения (1) будем искать в области : ( 2 ) при заданных начальных значениях температуры : ( 3 ) и граничных условиях. Граничные условия описывают режимы тепл ообмена с внешней средой : при ; при . 2. ПОСТАНОВКА ТЕСТОВЫХ ЗАДАЧ В качестве тестовых задач для температуры мною были выбраны следующие пять функций : ( 9 ) ( 10 ) ( 11 ) ( 12 ) ( 13 ) Для функции (9) имеем : Для функции (10): Для функции (11): Для функции (12): Для функции (13): Данные функции тес тировались на отрезке по X : [0, 1] , по времени : [0, 1], с количеством разбиений по этим отрезкам - 30 . 3. МЕТОДИКА РЕШЕНИЯ ТЕСТОВЫХ ЗАДАЧ Данная задача решается с помощью двухслойной неявно конечно-разностной схемы. Схема реализуется в три этапа. 1 этап : находятся предварительные значения с помощью 4-х точечной неявной схемы : ( 5 ) 2 этап : используется за два шага . Сначала находятся на полученном слое ( ) с шагом , а затем через . В этом случае используется 4-х точечная неявная разностная схема : ( 6 ) ( 7 ) 3 этап : окончательные значения находятся в виде линейной комбинации двух предварительных значений : ( 8 ) Для решения (1) во спользуемся формулами (5) - (8). Данные уравнения представляют трех диагональные матрицы , решаемые методом скалярной прогонки. В начале нужно преобразовать (5) – (7) к виду : ( 14 ) Тогда (5) примет вид : Т.е . ; ; ; . Формула (6) преобразуется в : Т.е . ; ; ; . Формула (7) преобразуется в : Т.е . ; ; ; . Далее решаем по формулам скалярной прогонки : ( 15 ) ( 16 ) Для определения , и воспользуемся данными граничными условиями , т.е . формулой (4) и функцией . Так если мы берём из формулы (9), то имеем : Приведём это выражение к виду : . Т.е . теперь мы имеем и : Далее найдем конечное : ( 18 ) Проведя аналогичные расчёты для заданны х формулами (10) – (13), мы получим соответствующие , и . Далее мы можем решить системы методом прогонки и получить требуемый результат. 4. РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ В результате проведённых испытаний программа показала свою высокую надёжность . Были получены следующие данные. При расчёте с использованием функции и входных данных ; ; ; ; ; ; на отрезке по X и по времени [0,1] с шагом 0,033 был получен результат с ошибкой равной 0,0675 . Для функции при ; ; ; ; ; ; , на том же промежутке , ошибка составляет 0,055 . С функцией и ; ; ; ; ; ; ошибка примет значение 0,0435 . При и условиях ; ; ; ; ; ; в результате возникает ошибка равная 0,0055 . И , наконец , если выбрана функция и ; ; ; ; ; ; , то ошибка составит 0,00255 . Т.е . можно сказать , что мы имеем результат с первым порядком точности . Столь малую точность можно объяснить тем , что производная , найденная при граничных условиях , так же имеет первый порядок точности. СПИСОК ЛИТЕРАТУРЫ 1. А . Епанешников , В . Епанешников Программирование в среде Turbo - Pascal 7.0. - М .: Ди алог - Мифи , 1996. - 288 с. 2. Петухова Т . П ., Сибирцев В . В . Пакет прикладных программ для численного моделирования процессов тепло - и массопереноса . – Караганда : Изд-во КарГУ . 1993 3. Фигурнов В . Э. IBM PC для пользователя . - М .: Инфра - М , 1995. - 432 с. Приложение 1 ОПИСАНИЕ ПРОГРАММЫ Поставленная задача была программно реализована на языке программирования Turbo - Pascal 7.0. В состав программы входят следующие файлы : basis.pas - PAS-файл основной части программы (реш ение системы уравнений методом скалярной прогонки ); basis.v&v - EXE-файл основной части программы (вызывается из START.PAS); fun.bmp - BMP-фаил с изображением функций ; inform.v&v - TXT-фаил с информацией о программе (вызывается из START.PAS); music.v&v - м узыкальный EXE-фаил (вызывается из START.PAS); my_menu.pas - UNIT для создания меню ; sea.exe - программа для просмотра графических файлов ; start.pas - файл для запуска всей программы ; u - файл с результатами работы ; zastavka.v&v - EXE-фаил с заставкой к ос новной программе (вызывается из START.PAS). Файл START является , как бы оболочкой программы , из которой вызываются другие файлы . Сам процесс решения содержится в файле BASIS . BASIS содержит следующие процедуры и функции : Function Fun_U (Xm,t:real):real; Вход : значение по X и значение по времени t , а также глобальная переменная выбранной функции SelectFunction . Действие : вычисляет точное значение функции U при заданных X и t . Выход : Fun _ U – значение фун кции. Function Fun_F (Xm,t,a,b,v:real):real; Вход : значение по X , по времени t , коэффициенты , , и номер выбранной функции SelectFunction . Действие : вычисляет значение функции F при заданных X , t , , , . Выход : Fun _ F – значение функции F . Function Betta_Zero (time:real): real; Вход : значение времени t и глобальные коэффициенты , , , номер выбранной функции SelectFunction . Действие : вычисляет , используемое в методе скалярной прогонки. Выход : Betta _ Zero – значение . Function U_End (time,Alf,Bet:real): real; Вход : значение времени t , , и глобальные коэффициенты , , , номер выбран- ной функции SelectFunction . Действие : вычисляет используемое в методе скалярной прого нки. Выход : U _ End – значение . Procedure PrintArray; Вход : использует глобальный массив данных U _ m . Действие : выдает содержимое U _ m на экран и в файл. Выход : вывод U _ m . Приложение 2 ТЕКСТ ПРОГРАММ Ы Основная часть программы выглядит так : Program Basis; Uses Crt; Подключение библиотек Label Metka1,Metka2; Метки Var a, b, v : real; Коэффициенты , задаются пользователем h, tau : real; Шаг по X и по времени соответственно X,x0 : real; Конечное и начальное значение X m,n,k : word; Переменные используемые в циклах для расчета T,t0 : real; Конечное и начальное значение времени Kol_voX, Kol_voT : word; Количество разбиений по X и по времени U_m,U_,_U_1_2,_U_1 : array [0..200] of real; Массивы результатов z : array [0..200] of real; Массив точных решений Xm : real; Промежуточный X Alfa,Betta : array [0..200] of real; Массив коэффициентов используемых при скалярной прогонке a_progonka, b_progonka, c_progonka, d_progonka : real; Коэффициенты для скалярной прогонки Error : real; Значение ошибки time : real ; Переменная времени ch : char; Код нажатой клавиши SelectFunction:word; Номер выбранной функции U : text; Переменная для вывода результата в файл Alfa_1,Alfa_2,Betta_1,Betta_2 : real; Коэффициенты гра ничных условий Data : word; Переменная режима ввода начальных данных Function Fun_U (Xm,t:real):real; Функция U (точное решение ) begin If SelectFunction=1 then Fun_U:=SQR(Xm)*Xm+SQR(t); If SelectFunction=2 then Fun_U:=SQR (Xm)*SQR(t)*t+10*Xm*t+SQR(SQR(t))*Xm; If SelectFunction=3 then Fun_U:=Xm*SIN(Xm*t)-4*SQR(Xm)*COS(t); If SelectFunction=4 then Fun_U:=t*EXP(Xm); If SelectFunction=5 then Fun_U:=SIN(Xm)+EXP(t); end; Function Fun_F (Xm,t,a,b,v:real):real; Функция F begin if SelectFunction=1 then Fun_F:=2*t-v*6*Xm+a*3*SQR(Xm)-b*(SQR(Xm)*Xm+SQR(t)); if SelectFunction=2 then Fun_F:=3*SQR(Xm)*SQR(t)+10*Xm+4*SQR(t)*t*Xm-v*2*SQR(t)*t+ a*(2*Xm*SQR(t)*t+10*t+SQR(SQR(t)))-b*(SQR(Xm)*SQR(t) *t+10*Xm*t+Xm*SQR(SQR(t))); if SelectFunction=3 then Fun_F:=SQR(Xm)*COS(Xm*t)+4*SQR(Xm)*SIN(t)-v*(2*COS(Xm*t)*t- Xm*SIN(Xm*t)*SQR(t)-8*COS(t))+a*(SIN(Xm*t)+Xm*t*COS(Xm*t)-8*COS(t)*Xm)- b*(Xm*SIN(Xm*t)-4*SQR(Xm)*COS(t)); i f SelectFunction=4 then Fun_F:=EXP(Xm)-v*(t*EXP(Xm))+a*(t*EXP(Xm))-b*(t*EXP(Xm)); if SelectFunction=5 then Fun_F:=EXP(t)-v*(-SIN(Xm))+a*(COS(Xm))-b*(SIN(Xm)+EXP(t)); end; Function Betta_Zero (time:real): real; Функция Betta[0] для прогонки begin If SelectFunction=1 then Betta_Zero:=(h/(Betta_1*h-Alfa_1))*(Alfa_1*3*SQR(x0)+ Betta_1*(SQR(x0)*x0+SQR(time))); If SelectFunction=2 then Betta_Zero:=(h/(Betta_1*h-Alfa_1))*(Alfa_1*(2*x0*SQR(time)*time+ 10*time+SQR(SQR(ti me)))+Betta_1*(SQR(x0)*SQR(time)*time+10*x0*time+SQR(SQR(time))*x0)); If SelectFunction=3 then Betta_Zero:=(h/(Betta_1*h-Alfa_1))*(Alfa_1*(SIN(x0*time)+ x0*time*COS(x0*time)-8*x0*COS(time))+Betta_1*(x0*SIN(x0*time)-4*SQR(x0)*COS(time))); If SelectFunction=4 then Betta_Zero:=(h/(Betta_1*h-Alfa_1))*(Alfa_1*(time*EXP(x0))+ Betta_1*(time*EXP(x0))); If SelectFunction=5 then Betta_Zero:=(h/(Betta_1*h-Alfa_1))*(Alfa_1*(COS(x0))+ Betta_1*(SIN(x0)+EXP(time))); end; Fun ction U_End (time,Alf,Bet:real): real; Функция Um для прогонки begin If SelectFunction=1 then U_End:=(Alfa_2*h*3*SQR(X)+Betta_2*h*(SQR(X)*X+SQR(time)) + Bet*Alfa_2)/(Alfa_2-Alf*Alfa_2+h*Betta_2); If SelectFunction=2 then U_End:= (Alfa_2*h*(2*X*SQR(time)*time+10*time+SQR(SQR(time)))+ Betta_2*h*(SQR(X)*SQR(time)*time+10*X*time+SQR(SQR(time))*X) +Bet*Alfa_2)/(Alfa_2-Alf*Alfa_2+h*Betta_2); If SelectFunction=3 then U_End:=(Alfa_2*h*(SIN(X*time)+X*time*COS( X*time)-8*X*COS(time))+ Betta_2*h*(X*SIN(X*time)-4*SQR(X)*COS(time))+Bet*Alfa_2)/(Alfa_2-Alf*Alfa_2+h*Betta_2); If SelectFunction=4 then U_End:=(Alfa_2*h*(time*EXP(X))+Betta_2*h*(time*EXP(X))+Bet*Alfa_2)/ (Alfa_2-Alf*Alfa_2+h* Betta_2); If SelectFunction=5 then U_End:=(Alfa_2*h*(COS(X))+Betta_2*h*(SIN(X)+EXP(time))+Bet*Alfa_2)/ (Alfa_2-Alf*Alfa_2+h*Betta_2); end; Procedure PrintArray; Процедура печати массива U begin WriteLn; For m:=0 to Kol_voX do begin Write(U_m[m]:15:4); Write(U,U_m[m]:15:4); end; WriteLn; WriteLn(U); end; Основная программа Begin Assign(U,'u'); Файл для записи значений функции Rewrite(U); Открытие файла для записи TextBackGround(0); Выбор функции для работы ClrScr; TextColor(10); GoToXY(20,8); Write('Введите номер выбранной функции (1-5):'); Metka1: ch:=ReadKey; If ch='1' then SelectFunction:=1 else If ch='2' then SelectFunction:=2 else If ch='3' then SelectFunction:=3 else If ch='4' then SelectFunction:=4 else If ch='5' then SelectFunction:=5 else begin Sound(400); Delay(100); NoSound; GoTo Metka1; end; GoToXY(59,8);TextColor(12);WriteLn(SelectFunction); TextColor(11); GoToXY(11,12); Write('Вы будете работать со стандартными параметрами (цифра ~1~)'); GoToXY(22,13); Write('или введете свои данные (цифра ~2~) ?'); Metka2: ch:=ReadKey; If ch='1' then Data:=1 else If ch='2' then Data:=2 else be gin Sound(400); Delay(100); NoSound; GoTo Metka2; end; TextBackGround(9); TextColor(10); ClrScr; Ввод начальных данных WriteLn; WriteLn('-------------------------------- Ввод данных ---------------------------------¬ '); For k:=1 do 21 do WriteLn('¦ ¦ '); WriteLn('L------------------------------------------------------------------------------'); TextColor (15); Window(3,3,77,23); Write(' Введите область рассчета по X от : '); If Data=1 then begin x0:=0; Write(x0:1:0); WriteLn; end else ReadLn(x0); Write(' до : '); If D ata=1 then begin X:=1; Write(X:1:0); WriteLn; end else ReadLn(X); WriteLn; Write(' Введите количество разбиений по направлению X: '); If Data=1 then begin Kol_voX:=30; Write(Kol_voX:2); WriteLn; end else ReadLn(Kol_voX); WriteLn;WriteLn; Write(' Введите область рассчета по времени от : '); If Data=1 then begin t0:=0; Write(t0:1:0); WriteLn; end else ReadLn(t0); Write(' до : '); If Data=1 then begin T:=1; Write(T:1:0); WriteLn; end else ReadLn(T); WriteLn; Write(' Введите количество разбиений по времени : '); If Data=1 then begin Kol_voT:=30; Write(Kol_voT:2); WriteLn; end else ReadLn(Kol_voT); WriteLn;WriteLn; WriteLn(' Введите коэффиц иенты '); Write(' a='); If Data=1 then begin a:=1; Write(a:1:0); WriteLn; end else ReadLn(a); Write(' b='); If Data=1 then begin b:=1; Write(b:1:0); WriteLn; end else ReadLn(b); Write(' v='); If Data=1 then begin v:=0.001; Write(v:1:3); WriteLn; end else ReadLn(v); Write(' Alfa-1='); If Data=1 then begin Alfa_1:=1; Write(Alfa_1:1:0); WriteLn; end else ReadLn(Alfa_1); Write(' Betta-1='); If Data=1 then begin Betta_1:=1; Wr ite(Betta_1:1:0); WriteLn; end else ReadLn(Betta_1); Write(' Alfa-2='); If Data=1 then begin Alfa_2:=1; Write(Alfa_2:1:0); WriteLn; end else ReadLn(Alfa_2); Write(' Betta-2='); If Data=1 then begin Betta_2:=1; Write(Betta_2:1:0); Write Ln;TextColor(14); Write(' Нажмите любую клавишу '); ReadKey; end else ReadLn(Betta_2); Интерфейс экрана при выдаче результата TextBackGround(3); TextColor(1); Window(1,1,80,25); ClrScr; WriteLn; WriteLn('г ================== === Результат ==========================¬ '); For k:=1 to 21 do WriteLn('¦ ¦ '); WriteLn('===================================================================-'); TextColor(0); TextBackGround(7); GoToXY(2,23); WriteLn(' Для продолжения нажмите любую клавишу '); TextBackGround(3); Window(3,4,77,22); TextColor(15); ClrScr; Вычесление шага сетки tau:=(T-t0)/Kol_voT; h:=(X-x0)/Kol_voX; Ввод данных при time=t0 For m:=0 to Kol_voX do begin Xm:=x0+h*m; U_m[m]:=Fun_U(Xm,t0); end; TextColor(14); WriteLn(' Время равно ',time:3:3); TextColor(15); WriteLn(U,' Время равно ',time:3:3); PrintArray; Начало рассчета time:=t0; Repeat time:=time+tau; WriteLn; TextColor(14); WriteLn(' Время равно ',time:3:3); TextColor(15); WriteLn(U,' Время равно ',time:3:3); 1 этап . Решается методом скалярной прогонки a_progonka:=(-2*v-a*h)/(2*SQR(h)); b_progonka:=(SQR(h)+2*v*tau-b*ta u*SQR(h))/(SQR(h)*tau); c_progonka:=(a*h-2*v)/(2*SQR(h)); Alfa[0]:=Alfa_1/(Alfa_1-Betta_1*h); Betta[0]:=Betta_Zero(time); For m:=1 to Kol_voX-1 do begin Alfa[m]:=-c_progonka/(a_progonka*Alfa[m-1]+b_progonka); Betta[m]:=(Fun_F(x0+m*h,t ime+tau,a,b,v)+U_m[m]/tau-a_progonka*Betta[m-1])/ (a_progonka*Alfa[m-1]+b_progonka); end; U_[Kol_voX]:=U_End(time,Alfa[Kol_voX-1],Betta[Kol_voX-1]); For m:=Kol_voX-1 downto 1 do U_[m]:=Alfa[m]*U_[m+1]+Betta[m];U_[0]:=Alfa[0]*U_[1]+B etta[0]; 2 этап , часть первая . Решается методом скалярной прогонки a_progonka:=(-2*v-a*h)/(2*SQR(h)); b_progonka:=(2*SQR(h)+2*v*tau-b*tau*SQR(h))/(SQR(h)*tau); c_progonka:=(a*h-2*v)/(2*SQR(h)); Alfa[0]:=Alfa_1/(Alfa_1-Betta_1*h); Betta[0]:=Bett a_Zero(time); For m:=1 to Kol_voX-1 do begin Alfa[m]:=-c_progonka/(a_progonka*Alfa[m-1]+b_progonka); Betta[m]:=(Fun_F(x0+m*h,time+tau/2,a,b,v)+2*U_m[m]/tau-a_progonka*Betta[m-1])/ (a_progonka*Alfa[m-1]+b_progonka); end; _U_1_2[Kol_voX]:=U_End(time,Alfa[Kol_voX-1],Betta[Kol_voX-1]); For m:=Kol_voX-1 downto 1 do _U_1_2[m]:=Alfa[m]*_U_1_2[m+1]+Betta[m]; _U_1_2[0]:=Alfa[0]*_U_1_2[1]+Betta[0]; 2 этап , часть вторая . Решается методом скалярной прогонки a_progonka:=(-2*v-a*h)/(2*SQR(h)); b_progonka:=(2*SQR(h)+2*v*tau-b*tau*SQR(h))/(SQR(h)*tau); c_progonka:=(a*h-2*v)/(2*SQR(h)); Alfa[0]:=Alfa_1/(Alfa_1-Betta_1*h); Betta[0]:=Betta_Zero(time); For m:=1 to Kol_voX-1 do begin Alfa[m]:=-c_pro gonka/(a_progonka*Alfa[m-1]+b_progonka); Betta[m]:=(Fun_F(x0+m*h,time+tau,a,b,v)+2*_U_1_2[m]/tau-a_progonka*Betta[m-1])/ (a_progonka*Alfa[m-1]+b_progonka); end; _U_1[Kol_voX]:=U_End(time,Alfa[Kol_voX-1],Betta[Kol_voX-1]); For m:=Kol_voX-1 downto 1 do _U_1[m]:=Alfa[m]*_U_1[m+1]+Betta[m]; _U_1[0]:=Alfa[0]*_U_1[1]+Betta[0]; 3 этап . Окончательное значение For m :=0 to Kol _ voX do U _ m [ m ]:=2*_ U _1[ m ]- U _[ m ]; PrintArray; Вывод результата на экран и его запись в файл For m:=0 to Kol_voX do Рассчет точного значения функции begin z[m]:=Fun_U(x0+m*h,time); end; Вывод ошибки расчета на экран и в файл Error:=0; For m:=0 to Kol_voX do begin a:=Abs(U_m[m]-z[m]); If ErrorT; Close(U); Закрытие фа йла с результатами End.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Девушка - своему парню:
- И что бы ты без меня делал?!
- Да то же, что и с тобой, только с другой.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по математике "Численное решение модельного уравнения", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru