Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧисМетЗад.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
15.86 Mб
Скачать

Министерство образования Российской Федерации

УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра теплофизики и информатики в металлургии

В. С. Швыдкий, Ф.В. Куваев

Сборник задач

По дисциплине "Дифференциальные уравнения

и численные методы" для студентов специальности

071900 "Информационные системы в технике и технологиях"

всех форм обучения

Екатеринбург 2001

Введение

Информатика как научная дисциплина определяет методологические принципы информационного моделирования реальной действительности и манипулирования такими моделями средствами вычислительной техники. В контексте этого определения основной задачей инженера-информатика как специалиста является разработка информационных моделей объектов реального мира и получения информации об объекте путём реализации этих моделей программными средствами. Учитывая технологическую направленность специальности 071900, последнее утверждение подразумевает разработку и реализацию математических моделей технологических объектов.

Технические и технологические объекты чёрной и цветной металлургии, теплоэнергетики, химии и т.д. (в принципе, любые реальные объекты) характеризуются взаимосвязанностью и взаимообусловленностью различных параметров, определяющих процесс. Вследствие этого математические модели таких объектов в математическом и физическом планах являются существенно нелинейными, и уравнения этих моделей не могут быть решены средствами традиционной высшей математики. Рабочим инструментом инженера-информатика являются методы и средства вычислительной (или, как ещё говорят, прикладной) математики. Задачи и упражнения, приведённые в данном пособии, предназначены для закрепления теоретических положений основных численных методов, составляющих значительную часть методов прикладной математики.

  1. Интерполирование

При использовании численных методов часто приходится в целях упрощения расчётов (или по другим причинам) заменять некоторые функции y(x) их упрощенными (приближёнными) зависимостями. Отсюда вытекает задача: выполнить эту замену таким образом, чтобы приближённая зависимость была как можно более близкой к исходной функции. Именно для решения сформулированной задачи и предназначены методы интерполяции.

Напомним некоторые положения теории. Пусть функция y(x) известна только в узлах некоторой сетки xi, т.е. задана таблицей. В этих случаях выгодно заменить функцию y(x) (аппроксимировать) приближённой формулой, т.е. подобрать некоторую другую функцию (х), которая близка в некотором смысле к у(х) и просто вычисляется. Затем при всех значениях аргумента x можно полагать, что y(x)  (x). Близость функций обеспечивают введением в аппроксимирующую функцию свободных параметров a = {a1, a2, …, an} и соответствующим их выбором.

Процедура выбора свободных параметров а определяет тип метода интерполяции, и здесь можно отметить нижеприведённые наиболее распространённые методы.

    1. Линейная интерполяция

Если потребовать, чтобы аппроксимирующая функция (х, а) совпадала с табличными значениями исходной функции у(х) в n выбранных узлах сетки, то получим систему

(xi, a1, a2, …, an) = y(xi)  yi, 1  in, (1.1)

из которой можно определить параметры ai. Этот способ подбора параметров называется лагранжевой интерполяцией. По числу используемых узлов сетки различают интерполяцию одноточечную, двухточечную и т.д.

В простейшем случае аппроксимирующая функция (х, а) линейно зависит от параметров, т.е. может быть представлена в виде так называемого обобщённого полинома

(1.2)

Функции k(x) должны быть линейно-независимыми. Кроме того, на систему функций k(x) налагается ещё одно ограничение. Подставляя (1.2) в (2.1), получим для определения параметров ak следующую систему линейных уравнений:

(1.3)

Для единственности задачи интерполяции необходимо, чтобы при любом расположении узлов (лишь бы среди них не было совпадающих) определитель системы (1.3) был бы отличен от нуля:

(1.4)

Система функций, удовлетворяющих требованию (1.4), называется чебышевской. Таким образом, при линейной интерполяции нужно строить обобщённый полином по какой-нибудь чебышевской системе функций.

Для линейной интерполяции наиболее удобны обычные полиномы, так как они легко вычисляются и на элементарном калькуляторе, и на ЭВМ.

  • Интерполяционный многочлен Ньютона. Если в качестве системы функций выбрать k(x) = xk, 0  kn, то, используя предыдущие соотношения, придём к интерполяционной формуле Ньютона

(1.5)

Здесь y(x0, x1, , xk) – так называемая k-я разделённая разность, определяемая соотношениями

(1.6)

и т.д. Разделённые разности первого, второго и более высоких порядков имеют размерности производных соответствующих порядков. Отметим также, что во многих учебниках для таблиц с постоянным шагом h = xjxi вводят конечные разности ny, связанные с разделёнными разностями соотношением ny = n!y(x0, x1, , xn). В конечных разностях формула Ньютона (1.5) записывается так:

(1.5,a)

Формула Ньютона удобна для вычислений и на ЭВМ, и на калькуляторе. Легко составить следующую табл.1.1 разделённых разностей для табулированной функции у(х) и произвести вычисления по формуле (1.5).

Таблица 1.1. Разделённые разности для использования формулы Ньютона (1.5)

x0

y(x0)

y(x0, x1)

x1

y(x1)

y(x0, x1, x2)

y(x1, x2)

y(x0, x1, x2, x3)

x2

y(x2)

y(x1, x2, x3)

y(x2, x3)

x3

y(x3)

За точностью расчёта удобно следить, визуально оценивая скорость убывания слагаемых суммы(1.5). Если они убывают медленно, то на хорошую точность рассчитывать нельзя. Если убывание быстрое, то оставляют только те слагаемые, которые больше допустимой погрешности; тем самым определяют, сколько узлов требуется подключить в расчёт.

Пример 1.1. Покажем, как вычислять синус в первом квадранте, используя четыре стандартных значения. Составим табл. 1.2 с четырьмя узлами, причём для удобства вычисления положим у(х) = sin(x/6).

Таблица 1.2. К примеру 1.1

xi

y(xi)

y(xi, xi+1)

y(xi, xi+1, xi+2)

y(xi, , xi+3)

0

0,000000

0,500000

1

0,500000

0,066987

0,366025

0,016346

2

0,866025

0,116025

0,133975

3

1,000000

Для проверки точности, используя разности верхней косой строки, вычислим

у(1,5) = 0 + (1,5 – 0)0,500 – (1,5 – 0)(1,5 – 1)0,066987

(1,5 – 0)(1,5 – 1)(1,5 – 2)0,016346 = 0,705890.

Это приближённое значение лишь на 0,17 % отличается от точного значения у(1,5) = sin(45o) = 0,707107. Таким образом, достаточно помнить только верхнюю косую строку табл. 1.2, чтобы вычислить синус с точностью около 0,002.

Интерполяцию можно использовать для решения нелинейных алгебраических уравнений. Для этого применяют процедуру обратного интерполирования. При этом для уравнения y(x) составляют небольшую таблицу значений y(xi) и записывают её в виде xi = x(yi). Далее обычным способом

находят приближённое значение х(0). Этот способ даёт хорошие результаты, если функция достаточно гладкая, а корень лежит между рассчитанными узлами.

Пример 1.2. Решим уравнение

y(x)  (1 + x)e0,5x – 2,5 = 0.

Составим таблицу 4-х значений функции:

х 0 0,5 1,0 1,5

у 1,5 0,573962 0,797443 2,792500

Запишем первым столбец значений у, так как в дальнейших вычислениях эта величина будет аргументом. Найдём разделённые разности

Таблица 1.3. Разделённые разности к примеру 1.2

yi

xi

x(yi, yi+1)

x(yi, yi+1, yi+2)

 1,5

0

0,539935

 0,573962

0,5

 0,076322

0,364590

0,797443

1,0

 0,033855

0,250619

1,792500

1,5

Произведём вычисления по верхней косой строке:

x(0) x0 + (0 – y0)x(y0, y1) + (0 – y0)(0 – y1)x(y0, y1, y2) =

= 0 + 1,50,5399351,50,5739620,076322 = 0,744193.

Точное решение есть 0,732965, так что ошибка получается равной 1,53 %, т.е. небольшой. Для повышения точности в этом способе целесообразно взять узлы, близко расположенные к грубо найденному корню, а не увеличивать число узлов.

  • Численное дифференцирование. Численное дифференцирование применяется, если функцию у(х) трудно или невозможно продифференцировать аналитически – например, если она задана таблично.

При численном дифференцировании функцию у(х) аппроксимируют легко вычисляемой функцией (х, а) и приближённо полагают y '(x) = '(x, a). Вводя в формуле Ньютона обозначение i = xxi, запишем этот многочлен и продифференцируем его почленно:

Обрывая ряд на некотором числе слагаемых, получим приближённое выражение для соответствующей производной. Наиболее простые выражения получим, оставляя в предыдущих формулах только первые слагаемые:

(1.7)

Пример 1.3. Для функции, заданной табл.1.4, вычислить её значения в точках 0,04170; 0,529394; 0,707282; значение её производной в точке 0,142933 и решить уравнение у(х) = 1,509393.Результаты получить с той точностью, которую допускает табличное задание функции.

Таблица 1.4. Функция к примеру 1.3

x

y(x)

x

y(x)

0,0

1,534906

0,5

1,458955

0,1

1,517093

0,6

1,448162

0,2

1,500482

0,7

1,438994

0,3

1,485191

0,8

1,431485

0,4

1,471320

0,9

1,425652

Составим таблицу разделённых разностей функции.

Таблица 1.5. Разделённые разности заданной функции

xi

y(xi)

y(xi, xi+1)

y(xi, xi+1, xi+2)

y(xi, …, xi+3)

y(xi, …, xi+4)

0,0

1,534906

 0,17867

0,1

1,517093

0,0628

 0,16611

0,01067

0,2

1,500482

0,0660

0,015

 0,15291

0,01667

0,3

1,485191

0,0710

 0,005825

 0,13871

0,01433

0,4

1,471320

0,0753

0,0000

 0,12365

0,01433

0,5

1,458955

0,0796

 0,022075

 0,10793

0,0055

0,6

1,448162

0,08125

0,0004175

 0,09168

0,005667

0,7

1,438994

0,08295

 0,00625

 0,07509

0,003167

0,8

1,431485

0,0838

 0,05833

0,9

1,425652

Можно видеть, что пятые разделённые разности изменяются хаотическим образом, поэтому интерполяцию целесообразно строить лишь на основе первых четырёх разделённых разностей.

Первая точка интерполяции х = 0,041470 лежит между первым и вторым узлами сетки. Используя данные верхней косой строки, находим

y(0,041470) 1,534906 (0,041470 0)0,17867 + (0,0414700)

(0,0414700,1)0,0628 + (0,0414700)(0,0414700,1)(0,041470,2)0,01067 =

1,527385,

причём погрешность результата не превышает 0,00005.

Вторая точка интерполяции х = 0,529394 лежит между пятым и шестым узлами. Здесь мы воспользуемся нисходящей косой строкой, начинающейся на горизонте х = 0,5. Тогда

y(0,529394) 1,458955 (0,529394 0,5)0,10793 + (0,529394 0,5)(0,529394 0,6)

0,08125 + (0,529394 0,5)(0,529394 0,6)(0,52394 0,7)0,0056671,455621.

Наконец, последняя точка интерполяции лежит между восьмым и девятым узлами. Для вычисления функции в этой точке нисходящей косой строки уже не хватает, поэтому воспользуемся восходящей косой строкой, начинающейся на горизонте х = 0,8. Имеем

y(0,707282) 1,431485 (0,707282 0,8)0,07509 + (0,707282 0,8)(0,7072820,7)

0,08295 + (0,707282 0,8)(0,7072820,7)(0,7072820,6)0,005667 1,438908.

Производную в точке х = 0,142933 вычислим по формуле Ньютона, принимая х0 = 0,1,

y '(0,142933)   0,16611 + [(0,1429330,1) + (0,1429330,2)]0,066 +

+ [(0,1429330,1) (0,1429330,2) + (0,1429330,1)(0,1429330,3) +

+ (0,1429330,2)(0,1429330,3)]0,01667   0,167047.

Решение уравнения у(х) = 1,509393 организуем по методу обратной итерации. Преобразуем таблицу разделённых разностей, использовав только те строки, значения функции в которых близки к значению правой части уравнения.

yi

x(yi)

x(yi, yi+1)

x(yi, yi+1, yi+2)

x(yi, yi+1, yi+2, yi+3)

1,517093

0,1

 6,019745

1,500482

0,2

16,301486

 6,539795

 145,416818

1,485191

0,3

22,957650

 7,209286

1,471320

0,4

x(1,509393) 0,1 (1,5093931,517093)6,019745 + (1,5093931,517093)(1,509393 – 1,500482)16,301486 - (1,5093931,517093)(1,5093931,500482)(1,5093931,485191) 145,4168180,145475.