Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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: 596; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию