Решение смешанной задачи для уравнения теплопроводности методом конечных разностей
Описание метода конечных разностей на примере определения зависимости температуры от времени в различных точках стержня из теплопроводящего материала. Решение смешанной задачи для уравнения теплопроводности с заданными начальным и граничными условиями.
Рубрика | Математика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 27.04.2011 |
Размер файла | 33,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Российской Федерации
Уфимский Государственный Авиационный Технический Университет
Лабораторная работа № 6
РЕШЕНИЕ СМЕШАННОЙ ЗАДАЧИ
ДЛЯ УРАВНЕНИЯ ТЕПЛОПРОВОДНОСТИ МЕТОДОМ КОНЕЧНЫХ РАЗНОСТЕЙ
Уфа 2006
1. Цель работы
Ознакомление с методами решения смешанных задач для дифференциальных уравнений параболического типа, с понятием устойчивости численных методов, а также со способами разработки экономных алгоритмов и программ. Работу можно считать расчетно-графической в связи с возможностью наглядного графического представления функции двух переменных.
2. Описание метода
Рассмотрим стержень из теплопроводящего материала с коэффициентом теплопроводности k. Предположим, что температура на концах стержня задана, а боковая поверхность стержня теплоизолирована. Пусть ось x направлена вдоль оси стержня, а его концы расположены в точках x=0 и x=L. Тогда задача сводится к определению зависимости от времени температуры u в точках стержня, то есть функции двух переменных u(x,t). Функция u(x,t) должна удовлетворять уравнению теплопроводности
(0<x<L), (1)
начальному условию
u(x,0)=f(x), (0<x<L), (2)
и условиям на концах стержня
u(0,t)=j1(t), u(L,t)=j2(t), (tV0). (3)
Значения u(0,0) и u(L,0), полученные из (2) и (3), должны совпадать. Это будет если j1(0)=f(0), j2(0)=f(L).
Следует отметить, что путем замены переменных t^=a2t уравнение (1) можно преобразовать к виду
. (4)
Это означает, что решение задачи (1)-(3) путем замены переменных сводится к решению задачи (4),(2),(3). Далее будем полагать а=1.
Построим на плоскости (x,t) сетку с шагом h по переменной x (xi = (i-1)h, i=1,..,n+1, h=L/n) и с шагом t по переменной t (tj = (j-1)t). Обозначим uij = u(xi,tj). Производные в уравнении (1) аппроксимируем следующим образом:
, (5)
. (6)
Подставляя (5) и (6) в (1) при a=1, получим разностное уравнение:
(7)
В соответствии с (2) и (3) значения
ui0 = f(xi), u0j = j1(tj), unj = j2(tj) (8)
являются известными. Тогда, подставляя в (7) j=0, получим систему n-1 линейных уравнений, решив которую можно определить ui1, i=1,..,n-1. При этом, поскольку u01=j1(t1), un1=j2(t1), известными оказываются все значения временного слоя j=1, (t=t1). Затем, подставляя в (7) j=2, решаем систему уравнений относительно ui2 и т.д. для всех j=2,..,m.
Из (7) следует, что в каждое i-тое уравнение (i=1,..,n-1) с ненулевыми коэффициентами входят только три неизвестных ui-1,j; uij; ui+1,j. Величина ui,j-1 к этому моменту является известной и потому отнесена в правую часть уравнения. Таким образом, матрица системы уравнений является трехдиагональной и эту систему можно решить методом прогонки. Для этого представим ее в стандартном виде:
.(9)
Для данной задачи xi=uij, ai = l, gi = l, bi = 1-2l, b0 = 1, g0 = 0, j0 = u0j = j1(tj), jn = unj = j2(tj), ji = -ui,j-1 (i=1,..,n-1).
Пусть на j-том шаге заданными являются параметры ui,j-1 (i=1,..,n-1), u0j, unj, l. Все неизвестные значения uij можно разместить в массиве xi (xi=uij, i=0,..,n). Ищем связь xi-1 с xi в виде рекуррентного соотношения
xi-1=ci-1xi+ni-1, i=1,..,n. (10)
Подставляя (10) в (7), получаем
lci-1xi-(1+2l)xi+lxi+1 = -ui,j-1-lni-1.
Отсюда
(11)
Сравнивая (11) с (10), находим рекуррентные соотношения
,
, (12)
c0= 0, n0 = u0j .
Таким образом, алгоритм определения значений uij по известным ui,j-1 состоит из двух этапов: прямого хода прогонки по формулам (12) при i=1,..,n-1 и обратного хода прогонки по формуле (10) при i=n,..,2.
а) |
б) |
Рис. 5.1
теплопроводность смешанный конечный разность
Необходимо отметить, что разностное уравнение (7) связывает одно известное значение Ui,j-1 (из предыдущего j-1 временного слоя) и три неизвестных Ui,j, Ui-1,j, Ui+1,j. Поэтому найти значения Ui,j (i=1,...,n-1) можно только все сразу путем решения системы уравнений. Такая схема связи переменных в разностном уравнении называется неявной. Шаблон неявной разностной схемы представлен на рис. 5.1а.
Наряду с неявной возможна организация явной разностной схемы. Для этого вместо выражения (5) для первой разностной производной по времени используют формулу
, (13)
Тогда разностное уравнение запишется в виде
(14)
В этом случае связываются три неизвестные значения, относящиеся к предыдущему временному слою (здесь j-тому) и только одно неизвестное Ui,j+1. Шаблон явной разностной схемы представлен на рис. 5.1а.
При использовании этой схемы неизвестные параметры определяются путем последовательного применения формулы (2.14) при i=1,...n-1. Поскольку при этом не надо решать системы уравнений, то процесс определения параметров одного временного слоя требует меньших затрат времени, чем в случае неявной схемы.
Однако, неявная схема устойчива (ошибка не возрастает от шага к шагу) при любых значениях l=t/h2. Явная схема является устойчивой только при l<1/2. В противном случае развивается экспоненциальный рост погрешности так, что обычно происходит аварийная остановка ЭВМ по переполнению порядка. Поэтому при использовании явной схемы вычисления приходится вести с очень малым шагом по времени.
В случае применения неявной схемы затраты машинного времени для расчета одного временного слоя больше, но возможность выбора значительно большего шага по времени t может обеспечить общее ускорение процесса расчета по сравнению с явной схемой.
При выполнении данной работы будем предполагать, что температура на концах стержня поддерживается постоянной, то есть
j1(t)Tf(0), j2(t)Tf(L).
4. Варианты заданий
Решить смешанную задачу для уравнения теплопроводности с начальным u(x,0)=f(x) и граничными условиями u(0,t)=f(0), u(1,t)=b (L=1).
№ |
а |
b |
c |
f(x) |
|
1 |
1.1 |
3.0 |
0.05 |
fba0 xc 1 |
Листинг программы:
#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <windows.h>
#include <iomanip.h>
float funkf(float x);
float L,tau,lamda,h,T,a,b,c,betta[9999],gamma[9999],alfa[9999],X[9999],V[9999];
int i,j,n,m;
float x[9999],t[9999],u[9999][9999];
void main()
{
L=1;
cout<<"Vvedite koli4estvo zna4enii po x n"<<endl;
cin>>n;
cout<<"Vvedite maximal'nu'u temperaturu t"<<endl;
cin>>T;
cout<<"Vvedite shag po temperature tau"<<endl;
cin>>tau;
cout<<"Vvedite parametr a,b,c"<<endl;
cin>>a>>b>>c;
m=T/tau+1;
cout<<" "<<n<<endl;
h=L/n;
lamda=tau/(h*h);
for(i=1;i<n+1;i++)
{
x[i]=(i-1)*h;
}
for(j=1;j<m;j++)
{
t[j]=(j-1)*tau;
}
for(j=0;j<m+1;j++)
{
u[0][j]=funkf(x[0]);
u[n][j]=b;
//cout<<"u[0][j]="<<u[0][j]<<" u[n][j]"<<u[n][j]<<endl;
}
/*for(i=1;i<n-1;i++)
{
for(j=1;j<m-1;j++)
{
u[i][j+1]=lamda*u[i-1][j]-(1-2*lamda)*u[i][j]+lamda*u[i+1][j];
}
}*/
betta[0]=1;
gamma[0]=0;
for(j=1;j<m-1;j++)
{
for(i=1;i<n;i++)
{
alfa[i]=lamda;
gamma[i]=lamda;
betta[i]=1-2*lamda;
X[0]=0;
V[0]=u[0][j];
X[i]=lamda/(1+2*lamda-lamda*X[i-1]);
V[i]=(u[i][j-1]+lamda*V[i-1])/(1+2*lamda+lamda*X[i-1]);
u[i][j]=x[i];
}
for(i=n;i>1;i--)
{
u[i-1][j]=X[i-1]*u[i][j]+V[i-1];
}
}
for(i=0;i<n+1;i++)
{
for(j=0;j<m;j++)
{
cout<<"u["<<i<<"]["<<j<<"]="<<u[i][j]<<endl;
}
}
/*for(j=0;j<m;j++)
{
cout<<"u["<<n<<"]["<<j<<"]="<<u[n][j]<<endl;
}*/
system("PAUSE");
}
float funkf(float x)
{
float m;
if(x>=0)
{
if(x<c)
{
m=a;
}
else
if(x<=1)
{
m=-2*x+3.1;
}
}
else
cout<<"x ne vxodit v zadannii promegutok"<<endl;
return(m);
}
Результаты работы программы:
Vvedite koli4estvo zna4enii po x n
10
Vvedite maximal'nu'u temperaturu t
20
Vvedite shag po temperature tau
4
Vvedite parametr a,b,c
1.1
3.0
0.05
10
u[0][0]=1.1
u[0][1]=1.1
u[0][2]=1.1
u[0][3]=1.1
u[0][4]=1.1
u[0][5]=1.1
u[1][0]=0
u[1][1]=0.984706
u[1][2]=0.989311
u[1][3]=0.989335
u[1][4]=0.989335
u[1][5]=0
u[2][0]=0
u[2][1]=0.871874
u[2][2]=0.878632
u[2][3]=0.87867
u[2][4]=0.878671
u[2][5]=0
u[3][0]=0
u[3][1]=0.980508
u[3][2]=0.988619
u[3][3]=0.988662
u[3][4]=0.988662
u[3][5]=0
u[4][0]=0
u[4][1]=1.2011
u[4][2]=1.21003
u[4][3]=1.21008
u[4][4]=1.21008
u[4][5]=0
u[5][0]=0
u[5][1]=1.46945
u[5][2]=1.47864
u[5][3]=1.47868
u[5][4]=1.47868
u[5][5]=0
u[6][0]=0
u[6][1]=1.75851
u[6][2]=1.76731
u[6][3]=1.76734
u[6][4]=1.76734
u[6][5]=0
u[7][0]=0
u[7][1]=2.05823
u[7][2]=2.06595
u[7][3]=2.06597
u[7][4]=2.06597
u[7][5]=0
u[8][0]=0
u[8][1]=2.36535
u[8][2]=2.37126
u[8][3]=2.37128
u[8][4]=2.37128
u[8][5]=0
u[9][0]=0
u[9][1]=2.67919
u[9][2]=2.68253
u[9][3]=2.68254
u[9][4]=2.68254
u[9][5]=0
u[10][0]=3
u[10][1]=3
u[10][2]=3
u[10][3]=3
u[10][4]=3
u[10][5]=3
Для продолжения нажмите любую клавишу.
Размещено на Allbest.ru
Подобные документы
Особенности решения обыкновенного линейного неоднородного дифференциального уравнения второго порядка с заданными граничными условиями методом конечной разности. Составление трехдиагональной матрицы. Реализация решения в программе Microsoft Office Excel.
курсовая работа [1,4 M], добавлен 23.12.2013Последовательность решения линейной краевой задачи. Особенности метода прогонки. Алгоритм метода конечных разностей: построение сетки в заданной области, замена дифференциального оператора. Решение СЛАУ методом Гаусса, конечно-разностные уравнения.
контрольная работа [366,5 K], добавлен 28.07.2013Общая характеристика параболических дифференциальных уравнений на примере уравнения теплопроводности. Основные определения и конечно-разностные схемы. Решение дифференциальных уравнений параболического типа методом сеток или методом конечных разностей.
контрольная работа [835,6 K], добавлен 27.04.2011Порядок и принципы составления дифференциального уравнения, методика нахождения неизвестных значений. Замена исходного дифференциального уравнения на систему n-линейных уравнений относительно n-неизвестных. Формирование и решение системы уравнений.
задача [118,8 K], добавлен 20.09.2013Решение линейной краевой задачи методом конечных разностей (методом сеток). Замена области непрерывного изменения аргументов дискретным множеством узлов (сеток). Сведение линейной краевой задачи к системе линейных алгебраических уравнений (сеточных).
лекция [463,7 K], добавлен 28.06.2009Решение линейной краевой задачи методом конечных разностей. Сопоставление различных вариантов развития процесса с применением анализа графиков, построенных на базе полученных данных. Графическое обобщение нескольких вариантов развития процесса.
лабораторная работа [23,3 K], добавлен 15.11.2010Описание метода сведения краевой задачи к задаче Коши. Решение системы из двух уравнений с четырьмя неизвестными. Метод Рунге-Кутта. Расчет максимальной погрешности и выполнение проверки точности. Метод конечных разностей. Описание полученных результатов.
курсовая работа [245,2 K], добавлен 10.07.2012Метод разделения переменных в задаче Штурма-Лиувилля. Единственность решения смешанной краевой задачи, реализуемая методом априорных оценок. Постановка и решение смешанной краевой задачи для нелокального волнового уравнения с дробной производной.
курсовая работа [1003,8 K], добавлен 29.11.2014Физические задачи, приводящие к уравнению теплопроводности. Краевые задачи, связанные с конфигурацией тела и условиями теплообмена. Теория разностных методов решения уравнения теплопроводности, устойчивость и сходимость соответствующих разностных схем.
дипломная работа [460,8 K], добавлен 04.05.2011Аналитическое решение уравнения для вынужденных поперечных колебаний консольного стержня. Численное решение уравнения с помощью метода "бегущего счёта". Вывод уравнения движения из основных законов физики. Построение дискретной модели и выбор сетки.
курсовая работа [1,0 M], добавлен 25.02.2013