- •Оглавление
- •Введение
- •1. Программирование задач на языке basic
- •Программирование линейных вычислительных процессов
- •1.1.2. Справочный материал.
- •1.1.5. Вопросы для самопроверки
- •1.2.3. Пример:
- •20 Input “a b “ ; a , b input “a b “ ; a , b
- •1.2.4. Задание к лабораторной работе.
- •Определённые циклы
- •1.3.4. Задания к лабораторной работе.
- •Определённые циклы. Суммирование членов функционального ряда
- •Input “X, m%, h% “ ; X , m% , h%
- •1.4.4. Задания к лабораторной работе.
- •Файлы прямого и последовательного доступа
- •Input “X m h “ ; X , m% , h
- •Программирование итерационных вычислительных процессов
- •10 Input "Введите значения X,r,k,e" ; X,r,k,e
- •1.6.5. Вопросы для самопроверки
- •1.7.5. Вопросы для самопроверки
- •Формирование и обработка одномерных массивов
- •1.8.5. Вопросы для самопроверки
- •Формирование двумерных массивов и выполнение операций с матричными элементами
- •160 Next I
- •160 Next j
- •150 Next j
- •1.9.5. Вопросы для самопроверки
- •Программирование сложных программ с использованием подпрограмм
- •40 Read X( I ) : next I
- •45 Data 1, 2.1, -3, -4.1, 1.7, 1.8, 1.9, 14.2, -5, -4.3, 11.2, 10.8
- •140 Return
- •90 Read X( I ) : next I
- •100 Data 1, 2.1, -3, -4.1, 1.7, 1.8, 1.9, 14.2, -5, -4.3, 11.2, 10.8
- •1.10.5. Вопросы для самопроверки
- •Программирование цепочек текстовых переменных
- •1.11.5. Вопросы для самопроверки
- •Литература к главе 1
- •2.1.5. Вопросы для самопроверки
- •Решение нелинейного уравнения графическим методом
- •2.2.5. Вопросы для самопроверки
- •Решение НелинейноГо уравнениЯ МетодОм простых итераций
- •2.3.5. Вопросы для самопроверки
- •Решение нелинейного уравнения методом касательных
- •2.4.3. Пример.
- •2.4.5. Вопросы для самопроверки
- •Решение систем Нелинейных уравнений графическим методом
- •2.5.5. Вопросы для самопроверки
- •Решение систем Нелинейных уравнений методом пРостых итераЦиЙ
- •2.6.3. Пример.
- •2.6.5. Вопросы для самопроверки
- •Численное интегрирование:метод прямоугольников и трапеций, формула симпсона
- •2.7.5. Вопросы для самопроверки
- •Численное решение обыкновеНноГо дифференциального уравнениЯ МетодОм эЙлера и рунге-кутта
- •2.8.5. Вопросы для самопроверки
- •Численное решение систем обыкновеНнЫх дифференциальных уравнениЙ МетодОм эЙлера
- •3. Математическое моделирование на пэвм
- •3.1. Системы тел сосредоточенными массами
- •3.1.1. Математическое моделирование теплообмена для тел сосредоточенных масс с окружающей средой
- •3.1.2. Собственные колебания
- •Лабораторная работа № 3.1 исследование автономной линейной системы уравнений
- •Лабораторная работа № 3.2 исследование автономной нелинейной системы уравнений
- •Лабораторная работа № 3.3 решение жестких систем обыкновенных дифференциальных уравнений (оду)
- •3.1.3. Математическая модель стабильности позвоночника
- •Результаты численных расчетов
- •3.2. Системы с распределенными параметрами
- •3.2.1. Математическое моделирование процесса переноса частиц
- •3.2.2. Математическое моделирование процесса прерванного посола рыбы
- •Отметим, что критерий устойчивости счета методом прогонки к ошибкам округления выполнен, так как
- •Как следует из рекуррентных соотношений (3.2.32), для начала расчета необходимо иметь значения e1 и w1, которые определяются с помощью левого граничного условия (3.2.23)
- •3.2.3. Моделирование процесса переноса частиц на основе гиперболической системы уравнений
- •3.2.4. Математическое моделирование нестационарного двумерного процесса переноса частиц (теплопереноса)
- •Система разностных уравнений (3.2.45) дополнялась начальными и граничными условиями (3.2.40 – 3.2.44) и решалась методом обыкновенной прогонки попеременно в двух направлениях.
- •3.3. Повышение порядка точности аппроксимации дифференциальных уравнений
- •3.3.1. Повышение порядка точности аппроксимации обыкновенных дифференциальных уравнений
- •3.3.2. Повышение порядка точности аппроксимации дифференциальных уравнений гиперболического типа
- •3.4. Интерполяция функций
- •3.4.1. Линейная интерполяция
- •3.4.2. Квадратичная интерполяция
- •3.4.3. Интерполяционная формула Лагранжа
- •3.4.4. Сплайны
- •3.4.5. Алгоритм решения обратных задач по заданным показателям качества
- •Литература к главе 3
3.3. Повышение порядка точности аппроксимации дифференциальных уравнений
Как следует из анализа численных экспериментов по решению параболических уравнений по разностным схемам, приведенным выше, погрешность вычислений дискретных значений искомых функций слабо зависит от величины шага интегрирования по времени, что определяется порядком точности аппроксимации этих уравнений 0(τ+h2). В это же время разностные схемы бегущего счета, аппроксимирующие гиперболические уравнения имеют первый порядок точности по обеим переменным t и h, что приводит к необходимости интегрировать эти уравнения с маленькими временными шагами, а это значительно понижает эффективность численных алгоритмов.
3.3.1. Повышение порядка точности аппроксимации обыкновенных дифференциальных уравнений
Однако порядок точности аппроксимации дифференциальных уравнений можно существенно увеличивать, например, вводя полуцелые узлы.
Для простоты рассуждений рассмотрим следующее обыкновенное дифференциальное уравнение с начальным условием:
; N(t0) = N0; . (3.3.1)
Отрезок [t0, tk] разобьем на k равных частей, при этом выполняется следующая цепочка неравенств:
0 = t0 t1 . . .< tj <… tk - 1 tk = tk, (3.3.2)
где tj = j τ; τ = ( tk – t0 ) / k; j = 0, … , k .
Алгоритм численного решения уравнения (3.3.1) на разностной сетке (3.3.2) с введением полуцелых узлов состоит из двух шагов: на первом полушаге по времени
τ / 2 вычисляется численное решение уравнения с первым порядком точности и на втором полушаге уточнения численного решения со вторым порядком точности. Для записи дифференциального уравнения (3.3.1) в разностном виде на этих шагах рассмотрим разностную схему, приведенную на рис. 3.22.
N
Nj
Nj+1
tk t
0 t0 j j+1 k
Рис. 3.22. Разностная схема для решения дифференциального уравнения (3.3.1)
На первом полушаге по времени τ / 2 (на разностной сетке вводились полуцелые временные слои ) аппроксимация дифференциального уравнения (3.3.1) проводилась на основе правой разностной производной, имеющей первый порядок точности, следующим образом (схема Эйлера):
или ; j = 0, …, k-1. (3.3.3)
На втором полушаге по времени τ / 2 (этап – коррекции) необходимо исходное уравнение аппроксимировать со вторым порядком точности, используя центральную разностную производную:
или ; j = 0, …, k-1. (3.3.4)
[III, 10-11, 17-19].
Результаты численных расчетов. Для практического определения роли порядка точности аппроксимации дифференциального уравнения, при его численном решении, графически сравнивались результаты расчетов, полученных по разностным схемам, имеющих второй порядок точности (3.3.3 – 3.3.4) и по схемам с первым порядком точности:
или ; j = 0, …, k-1, (3.3.5)
при задании следующих исходных данных: ; tk = 3600c; k = 3000; N0 = 3.
Текст программы алгоритма решения обыкновенного дифференциального уравнения (3.3.1), написанной на блочно-структурном языке системы MATH CAD и числовые данные, приведены ниже.
Результаты численных расчетов функции N(t) представлены на рис. 3.23, здесь и далее сплошной кривой отмечено решение уравнения (3.3.1), полученное на основе разностных схем, имеющих второй порядок точности, а пунктирной - первый порядок точности.
Рис. 3.23. Результаты численных расчетов функции N(t) при шаге
интегрирования τ = 12 с и τ = 120 с
Как следует из анализа рис. 3.23, максимальное расхождение значений функции N(t) при временном шаге τ = 12 с, полученных на основе двух разностных схем, составляет порядка десяти процентов и, соответственно, при таких шагах τ могут использоваться разностные схемы, имеющие первый порядок точности.
Таким образом, обе разностные схемы счетно-устойчивы, но разностные схемы, имеющие первый порядок точности, при больших значениях временных шагов τ приводят к значительным погрешностям (см. рис. 3.23), делающих непригодными эти схемы при интегрировании уравнений. В то же время разностные схемы, имеющие второй порядок точности, являются вполне приемлемыми, так как погрешность численного решения не более 15% (см. рис. 3.23).
Задание. Задать нелинейную функцию правой части уравнения (3.3.1) f(N, t) и определить максимальный шаг интегрирования τ, при котором относительная погрешность вычисления функции N(t), полученная на основе разностных схем, имеющих первой и второй порядки точности, не превышает 5%.