52
2
0,5
al
m
h
=≤ , (2.41)
Соотношение (2.41) является условием устойчивости явной схемы. Данное
выражение накладывает ограничение на выбор шага по времени, при
заданном шаге по пространству
h . Например, при численном расчете для
многослойной структуры, состоящей из различных материалов, необходимо
определить временной шаг для каждого слоя, а затем выбрать наименьший
шаг для всей структуры.
Устойчивость схемы характеризует то, что возникающие в процессе
вычисления погрешности, избежать которые невозможно, хотя бы из-за
округления чисел, имеют тенденцию убывать или, по крайней мере, не
возрастать при переходе от одного временного слоя к другому.
Если факт устойчивости имеет место при любом соотношении шагов по
различным переменным, при условии, что они достаточно малы, то схема
называется безусловно устойчивой. Безусловно устойчивой является
разностная схема, соответствующая оператору (2.40), т.е. неявная схема.
При решении разностной задачи необходимо, чтобы разностное решение
стремилось к точному решению соответствующей краевой задачи при
уменьшении числа шагов сетки. Свойство сходимости разностной схемы –
основной критерий качества разностной схемы.
Примеры реализации численных расчетов для Мatlab
В качестве примера приводится m-функция «expScheme» для
математического пакета MATLAB [17], предназначенной для расчета
температуры вдоль стержня, концы которого находятся при температурах Т1
и Т2 соответственно (граничные условия 1 рода) с использованием явной
схемы. Также приводится текст контрольной функции «expSchemeTest» для
более удобного задания параметров и тестирования функции «expScheme».
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function Res = expScheme( m, T, T1, T2)
%function Res = expScheme( m, T, T1, T2)
%расчет температуры вдоль стержня с использованием явной схемы
%m = a * dt / h^2 (a - температуропроводность, dt - шаг по времени, h - шаг по пространству)
%для устойчивости схемы: m <= 0.5
sz = size( T, 2);
T(1) = T1;
T(sz) = T2;
for i=2:sz-1
Res(i) = T(i) + m*( T(i-1) - 2*T(i) + T(i+1));
end
Res(1) = T1;
Res(sz) = T2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function expSchemeTest
Len = 0.01; %толщина стержня
diff = 1.4e-7; %температуропроводность
cond = 0.586; %теплопроводность
hNodeCnt = 100; %число узлов по пространству
h = Len / (hNodeCnt - 1); %шаг по пространству