Требования к вычислительным алгоритмам
Одной и той же математической задаче можно поставить в соответствие множество различных дискретных моделей. Однако далеко не все они пригодны для практической реализации на ЭВМ.
Можно выделить две группы требований к численным методам. Первая группа связана с адекватностью дискретной модели исходной математической задаче, а вторая - с реализуемостью численного метода на ЭВМ.
К первой группе относятся такие требования, как сходимость численного метода, выполнение дискретных аналогов законов сохранения, качественно правильное (физически) поведение решения дискретной задачи.
Поясним эти требования. Предположим, что дискретная модель математической задачи представляет собой систему большого, но конечного числа алгебраических уравнений. Обычно чем точнее мы хотим получить решение, тем больше уравнений приходится брать. Говорят, что численный метод сходится, если при неограниченном увеличении числа уравнений решение дискретной задачи стремится к решению исходной задачи.
Сходимость численного метода тесно связана с его корректностью. Предположим, что исходная математическая задача поставлена корректно, т. е. ее решение существует, единственно и непрерывно зависит от входных данных. Тогда дискретная модель этой задачи должна быть построена таким образом, чтобы свойство корректности сохранилось. Таким образом, в понятие корректности численного метода включаются свойства однозначной разрешимости соответствующей системы уравнений и ее устойчивости по входным данным.
Вторая группа требований, предъявляемых к численным методам, связана с возможностью реализации данной дискретной модели на конкретной ЭВМ, т.е. с возможностью получить на ЭВМ решение соответствующей системы алгебраических уравнений за приемлемое время. Основными препятствиями для реализации корректно поставленного алгоритма являются ограниченный объем памяти ЭВМ и ограниченные ресурсы времени счета. Реальные вычислительные алгоритмы должны учитывать эти обстоятельства, т.е. они должны быть экономичными как по числу арифметических действий, так и по требуемому объему памяти.
Пример моделирования физической системы
Рассмотрим моделирование процессов переноса тепла на примере остывания нагретого тела. Природа переноса тепла от тела к окружающему пространству включает в себя механизмы конвекции, излучения, испарения и
dT_
dt
г (T - Ts),
(30)
теплопроводности. В том случае, когда разность температур между объектом и окружающей средой не очень велика, скорость изменения температуры объекта можно считать пропорциональной этой разности температур. Это утверждение можно сформулировать на языке дифференциального уравнения
где T - температура тела; Ts - температура окружающей среды; r - коэффициент пропорциональности, зависящий от механизма теплопередачи, площади тела и тепловых свойств самого тела. Знак минус в правой части уравнения означает, что температура нагретого тела может только убывать, если T >Ts.
Данное уравнение представляет собой дифференциальное уравнение первого порядка. Типичным методом решения таких уравнений является метод Эйлера. Запишем уравнения дискретной модели.
ti — ti-\ + At,
Ti — Ti-i- r(Ti-i- Ts)At, i = 1, 2,... m. (31)
Составим алгоритм решения задачи. Зафиксируем алгоритм на языке блок-схем (рис. 8). На блок-схеме буквой t обозначается переменная, относящаяся к времени; t0, tk - начальный и конечный моменты времени расчетов; dtl, dt2 - период расчетов (т. е. интервал времени, через который выдается текущее значение переменных) и параметр дискретизации соответственно; N - количество расчетных точек; M - количество итераций метода Эйлера; Temp, Temp_0, Temp S - текущая температура, начальная температура и температура окружающей среды соответственно.
Рис. 8. Блок-схема алгоритма
Задание
Разработайте по данному алгоритму программу на каком-либо алгоритмическом языке.
Проведите экспериментальное измерение температуры нагретого тела (например, жидкости, помещенной в сосуд) в разные моменты времени.
Задавая различные значения коэффициента г в программе, подберите такое его значение, при котором ошибка расчета не превышает 10%.
Сделайте расчет в промежуточных точках (т.е. в точках, в которых не измерялась температура).
Варьируя параметр дискретизации (шаг сетки) At, исследуйте, как влияет его значение на точность расчетов.
Достарыңызбен бөлісу: |