это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
ГОУ ВПО «Сургутский государственный университет
Ханты-Мансийского автономного округа — Югры»
Кафедра прикладной математики
Курсовая работа по предмету «Численные методы» на тему
Расчёт распространения тепла вдоль многослойного цилиндра
Выполнил студент группы 11 – 71 факультета Информационных технологий
Илинбаев Николай Геннадьевич
Проверил к.ф.-м.н., доцент кафедры ПМ
Моргун Дмитрий Алексеевич
« »
Сургут — 2010
Содержание
К уравнениям в частных производных приводят задачи газодинамики, теплопроводности, переноса излучения, распротранения нейтронов, теории упругости, электромагнитных полей, процессов переноса в газах, квантовой механики и многие другие.
Уравнения математической физики используются для расчётов распространения тепла, концентрации, волн. Для просмотра изменений температуры в различных точках заданной области применимы формулы теплопроводности. В данной работе рассматривается однородное уравнение теплопроводности и его решение интегро-интерполяционным методом.
Интегро-интерполяционный метод особенно полезен для уравнений с негладкими или разрывными коэффициентами, поскольку именно интегральная запись законов сохранения выделяет из всех математически допустимых решений таких уравнений физически правильное обобщённое решение.
2.1 Интегро-интерполяционный метод
Интегро-интерполяционный метод, один из вариантов которого называется методом баланса, наиболее надёжен и применим во всех случаях. В этом методе после выбора шаблона область G(r,t) разбивают на ячейки, определённым образом связанные с шаблоном. Дифференциальное уравнение интегрируют по ячейке и по формулам векторного анализа приводят к интегральной форме, соответствующей физическому закону сохранения. Приближенно вычисляя полученные интегралы по каким-либо квадратурным формулам, составляют разностную схему.
Например, для установления теплопроводности с переменным коэфициентом u t = ( ku x) x выберем шаблон и сопосавим ему ячейку. Обозначая средние точки интервалов сетки полуцелыми индексами, выполним интегрирование по ячееке:
Это соотношение является точным. В правой части приближенно вычислим первый интеграл по формуле правых прямоугольников. Получим следущиее выражение:
( yˆ n − yn)( xn+1 /2 − xn−1 /2 ) = τ[( kˆ yˆ x) n+1 /2 − ( kˆ yˆ x) n−1 /2 ] (2)
Заменяя в правой части производные разностями и учитывая, что на равномерной сетке x n+1 /2 − x n−1 /2 = h, получим разностную схему
(3)
Если k = const, то схема совпадает с неявной схемой.
Интегро-интерполяционный метод особенно полезен для уравнений с негладкими или разрывными коэффициентами, поскольку именно интегральная запись законов сохранения выделяет из всех математически допустимых решений таких уравнений физически правильное обобщённое решение.
Решим тестовую задачу. Зададим начальные значения: начальная температура по всему цилиндру = 1; температура на левом конце стержня = 10; температура на правом конце стержня = 15; коэфициенты теплопроводности K1=7, K2=35, K3=7.
Тогда расчеты изменений температуры дадут следущие результаты. Полученные графики:
Рис.1. График распределения температуры при t1.
Рис.2. График распределения температуры при t2.
Рис.3. График распределения температуры при t3.
Рис.4. График распределения температуры при t4.
Рис.5. График распределения температуры при t5.
Из графиков видно, что температура плавно возрастает от краёв цилиндра к его середине.
Поставленная задача на расчёт распространения тепла вдоль многослойного цилиндра успешно завершена. Начальные данные для решаемой задачи: температура на левом конце цилиндра, температура на правом конце цилиндра, коэфициенты теплопроводности на разных участках цилиндра. При вводе начальных данных в задачу просматриваются изменения температуры, продвигающиеся от концов цилиндра к его середине.
5 Литература
Список литературы
1. Калиткин Н. Н. Численные методы. М: Наука, 1978.
Код программы: [1]unit part1; {$mode objfpc}{$H+} interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
Buttons, ExtCtrls, Menus, StdCtrls, ComCtrls, Arrow, CheckLst, ActnList,
TAGraph, TASeries; type
{ TForm1 }
TForm1 = class(TForm)
K1Edit: TLabeledEdit;
K2Edit: TLabeledEdit;
K3Edit: TLabeledEdit; Uslovie: TBitBtn;
BtStart1: TBitBtn;
BtClose: TBitBtn;
Chart1: TChart;
Chart1LineSeries1: TLineSeries;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
RightTemp: TLabeledEdit;
LeftTemp: TLabeledEdit;
Menu1: TMainMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem; MenuItem4: TMenuItem; redaktor: TNotebook;
Page1: TPage;
Page2: TPage;
GoY: TUpDown;
GoX: TUpDown;
MashtabY: TUpDown; MashtabX: TUpDown; procedure stopClick(Sender: TObject); procedure UslovieClick(Sender: TObject); procedure BtStart1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure MenuItem3Click(Sender: TObject); procedure MenuItem4Click(Sender: TObject); procedure GoYClick(Sender: TObject; Button: TUDBtnType); procedure GoXClick(Sender: TObject; Button: TUDBtnType); procedure MashtabYClick(Sender: TObject; Button: TUDBtnType); procedure MashtabXClick(Sender: TObject; Button: TUDBtnType); procedure VremenaTimer(Sender: TObject);
private
{ private declarations } public
{ public declarations } end;
const n=31; n1=10;//n1-номер узла до которого сохраняется K1.
Aconst=0; Bconst=10; type mass=array[1..n] of double; var
Form1: TForm1;
stepY,Ymin,Ymax,stepX,Xmin,Xmax,w1,w2:double;
Khigh,Lupa:double;
T1,T2,T4,T3:boolean;
{-----------------------------------------------------------------} K,X,XU,B,Aew,Ap,U:mass; shag,dt:double; j:integer;
K1const,K2const,K3const:double; implementation procedure Delay(millisecond: integer); begin sleep(millisecond);
Form1.chart1.repaint; end;
function fun1(Afun1:double):double; begin fun1:=1; end;
procedure ProcedureInit; var i:integer; begin shag:=(Bconst-Aconst)/(n-1); for i:=1 to n do
begin
X[i]:=Aconst+shag*(i-1); B[i]:=fun1(X[i]); end;
for i:=1 to n-1 do
begin
XU[i]:=(X[i]+X[i+1])/2;
if i>2*n1 then K[i]:=K3const else if i>n1 then K[i]:=K2const else K[i]:=K1const;
Aew[i]:=K[i]/shag/shag; end;
end;
procedure TForm1.BtStart1Click(Sender: TObject); var i,ii:integer; begin dt:=0.1;//(j*dt)-дельта-тэ для времени for ii:=1 to 50 do begin
delay(50);
Chart1LineSeries1.Clear; for i:=2 to n-1 do
begin
Ap[i]:=1/(j*dt)+Aew[i-1]+Aew[i]; end;
Chart1LineSeries1.AddXY(X[1],B[1]); for i:=2 to n-1 do begin
U[i]:=(B[i+1]*Aew[i]+B[i-1]*Aew[i-1]+B[i]/(j*dt))/Ap[i]; Chart1LineSeries1.AddXY(X[i],U[i]); end;
Chart1LineSeries1.AddXY(X[n],B[n]); for i:=2 to n-1 do
begin B[i]:=U[i]; end; inc(j); end; end;
procedure TForm1.UslovieClick(Sender: TObject); begin
Chart1LineSeries1.Clear;
K1const:=StrToInt(K1Edit.text);
K2const:=StrToInt(K2Edit.text);
K3const:=StrToInt(K3Edit.text);
ProcedureInit;
B[1]:=StrToInt(LeftTemp.text); B[n]:=StrToInt(RightTemp.text); j:=1;
Form1.BtStart1.enabled:=true; end;
procedure TForm1.stopClick(Sender: TObject); begin end;
procedure TForm1.FormActivate(Sender: TObject); begin
Khigh:=20;stepX:=2;stepY:=2;Lupa:=1;//все коэффициенты chart1.Extent.Xmax:=chart1.Extent.Xmax+Khigh; Chart1.Extent.useXmax:=true;
chart1.Extent.Ymax:=chart1.Extent.Ymax+Khigh; Chart1.Extent.useYmax:=true;
chart1.Extent.Xmin:=chart1.Extent.Xmin-1; Chart1.Extent.useXmin:=true; chart1.Extent.Ymin:=chart1.Extent.Ymin-1;
Chart1.Extent.useYmin:=true; end;
procedure TForm1.MenuItem3Click(Sender: TObject); begin close;
end;
procedure TForm1.MenuItem4Click(Sender: TObject); begin showmessage (’Сделал Илинбаев Н. Г., группа 1171, подгруппа А ’)
end;
procedure TForm1.GoYClick(Sender: TObject; Button: TUDBtnType); begin
stepY:=2; case button of
btNext: begin chart1.Extent.Ymax:=chart1.Extent.Ymax+stepX; Chart1.Extent.useYmax:=true;
chart1.Extent.Ymin:=chart1.Extent.Ymin+stepX;
Chart1.Extent.useYmin:=true;
end; btPrev: begin chart1.Extent.Ymax:=chart1.Extent.Ymax-stepX; Chart1.Extent.useYmax:=true;
chart1.Extent.Ymin:=chart1.Extent.Ymin-stepX;
Chart1.Extent.useYmin:=true; end; end;
end;
procedure TForm1.GoXClick(Sender: TObject; Button: TUDBtnType); begin
case button of
btNext: begin chart1.Extent.Xmax:=chart1.Extent.Xmax+stepX; Chart1.Extent.useXmax:=true;
chart1.Extent.Xmin:=chart1.Extent.Xmin+stepX;
Chart1.Extent.useXmin:=true;
end; btPrev: begin chart1.Extent.Xmax:=chart1.Extent.Xmax-stepX; Chart1.Extent.useXmax:=true;
chart1.Extent.Xmin:=chart1.Extent.Xmin-stepX;
Chart1.Extent.useXmin:=true; end; end;
end;
procedure TForm1.MashtabYClick(Sender: TObject; Button: TUDBtnType); begin
case button of
btPrev: begin chart1.Extent.Ymax:=chart1.Extent.Ymax+Lupa; Chart1.Extent.useYmax:=true;
chart1.Extent.Ymin:=chart1.Extent.Ymin-Lupa;
Chart1.Extent.useYmin:=true;
end;
btNext: begin
chart1.Extent.Ymax:=chart1.Extent.Ymax-Lupa; Chart1.Extent.useYmax:=true;
chart1.Extent.Ymin:=chart1.Extent.Ymin+Lupa;
Chart1.Extent.useYmin:=true; end; end;
end;
procedure TForm1.MashtabXClick(Sender: TObject; Button: TUDBtnType); begin
case button of
btPrev: begin chart1.Extent.Xmax:=chart1.Extent.Xmax+Lupa; Chart1.Extent.useXmax:=true;
chart1.Extent.Xmin:=chart1.Extent.Xmin-Lupa;
Chart1.Extent.useXmin:=true;
end; btNext: begin chart1.Extent.Xmax:=chart1.Extent.Xmax-Lupa; Chart1.Extent.useXmax:=true;
chart1.Extent.Xmin:=chart1.Extent.Xmin+Lupa;
Chart1.Extent.useXmin:=true; end; end;
end;
procedure TForm1.VremenaTimer(Sender: TObject); begin end;
initialization
{$I part1.lrs} end.
[1] Код программы, реализующей решение расчёт распределения тепла вдоль многослойного цилиндра
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
9. Стратегия взаимодействия с органами государственного управления как...
Диплом, реклама и PR
Срок сдачи к 22 июня
Сделать кинематический, энергетический и силовой расчет привода к...
Курсовая, детали машин
Срок сдачи к 10 окт.
от 20 до 40 листов дать понятие (динамику заболевания
Курсовая, основы профилактики сестринского дела
Срок сдачи к 15 сент.
«Конструирование эффективной образовательной среды для целей профориентации в моей школе»
Эссе, Профориентация
Срок сдачи к 11 сент.
анализ древнерусской литературы, 20-25 страниц,
Курсовая, история государства и права
Срок сдачи к 27 дек.
Заполните форму и узнайте цену на индивидуальную работу!