Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Алгоритм программы
В программе можно использовать два одномерных массива, либо один двумерный массив. Одномерный массив описывается следующим образом: U0[0..n] – используется для хранения данных предыдущего слоя, U1[0..n] – используется для хранения данных последующего слоя. Задаём начальные условия в цикле, т.е. для каждой точки стержня задаём значение температуры в нулевой момент времени: For i:=0 to nx do { n - количество разбиений стержня} Begin U0[i]=φ(x) {в качестве φ(x),берётся функция из граничного условия} x:=i*dx {dx –шаг, который задаётся в начале программы самостоятельно} Затем открываем цикл по времени: For j:=1 to T do {T – конечный момент времени} Begin U1[n]:=q(t1) { в качестве q(t1),берётся функция из правого граничного условия } t1:=dt*j { dt –шаг, который задаётся в начале программы исходя из условия устойчивости – тоже самое что и } Затем решаем основное уравнение теплопроводности. Предварительно расписав его в разностном виде: Где Ui,j+1 - это U[i] Ui,j - это U0[i] Ui+1,j - это U0[i+1] Ui-1,j - это U0[i-1] Выражаем последующий слой через предыдущий: т.е. for i:=1 to n-1 do U1[i]:=dt*(k*(U0[i+1]-2*U0[i]+U0[i-1])/(dx*dx)+f(i))+U0[i] Т.о. мы посчитаем температуру на следующем слое, в точках соответствующих индексам от 1 до n-1. Используя левое граничное условие найдём: U0, i = U1, i - т.е. U1[0]:=U1[1]-dx*f(t) {где f(t) функция т левого граничного условия} Затем выводим слой (результат) на экран: For i:=0 to 1 do Write(u1[i]); Writeln; Переприсваиваем слои: U0:=U1; Заканчиваем цикл по времени. Заканчиваем программу.
Date: 2015-07-17; view: 625; Нарушение авторских прав |