Форсайт Дж., Малькольм М., Моулер К. - Машинные методы математических вычислений (1040536), страница 18
Текст из файла (страница 18)
3. 4.!О. покажите, чта коэффициенты Уп сг и бг кубичесного сплайна действительна выражаются последними тремя формулами й 4.4. 4 11. Предположим, чта на евклидовой плоскости даны л точек (»н у;) (1=-1, 2,..., л) и нужно провести гладкую замкнутую кривую через эти точки в заданном порядке. Один из методов состоит в следующем: строится замкнутый 1, у(1!) (ха уз! многоугольник, соединяющий точки в указанном порядке; пусть 1 обозначает длину дуги ндоль многоугольника (Ом?шТ), так что вершинам многоугольника соответствуют значения 0=-1 < 1 «... 1„=Т. Далее, точки (10 хг) (1=- 1,..., п) интерполируют периодическим кубическим сплайномх(1) йеРйоДа Т. Это значит, что в кажДом интеРвале 1Гж1~11тг функция х(1) является кубическим полиномом и что х (0) = х (Т), х' (0) = х' (Т) и х' (О) = х" (Т) Аналогичным образом интерполируют точки (10 у;) периодическим кубическим сплайном у(1).
Нужная кривая задается теперь параметрическн фуннциямн х(1) и у(1). Ваша задача — так переделать подпрограмму ВРЕ!МЕ, чтобы можно было вычислять периодические кубические сплайны х(1) и у(1). Проверьте программу, бери в качестве исходных данных вершины правильных л-угольников, п=3,4. Напоминают ли ваши решения формой окружности? 4.!2. Пусть х?=1 — 11, 1=1, 2,..., 2!. Положим / 1, 1=!1, ( О, 1~11.
98 3. иитнриолЯИИЯ Вычислите и распечатайте кубический сплайн через 2! точку (хп уД и начер- тите его график. То же сделайте для лагранжева полинома !гт(х), интерполирующего эти же точки. Сравните эти важные функции. При вычерчивании графиков можно ограничиться областью х)0. Почему? 4.13. Рассмотрим фунхцию з, определенную формулами ! — 2х, х < — 3, 28+ 25х+ 9хз+ хз, — З~х < — 1, л(х) = 26+ 19х+ Зхз — хт — 1~к<0, 25+ 19х+ Зх' — 2хз, О~к<3, — 163+208х — 60хз+5хз, 3~х < 4, 157 — 32х, 4 ~х.
Покажите, что з есть естественный кубический сплайн с узлами 1 — 3, — 1, О, 3, 4). Сформулируйте каждое из свойств з, которое необходимо для справед. лизостн этого утверждения. 4.14. Переделайте подпрограмму ЗЕЧАЕ в подпрограмму с заголовком Я/ВКО()Т1?(Е БЕЧАЕ (!ч, !), Х, У, В, С, Р, 3, ЗР). Она должна вычислять сплайн и его производную в точке (7 и помещать вычисленные значения в 5 н ЗР.
Проверьте вашу программу для каких-нибудь тестовых данных, где значение производной известно. Посмотрите также часть а) в упр. 7.7. 4.15. предположим, вам заданы и точек (хь !(х1)), 1=1,..., и, и нужно найти точки, в которых г'(х)= — О. а) Объясните, почему ие слишком хороша идея проинтерполирозать посредством полинома р (х) степени в — 1, а затем решить уравнение р' (х)=0? б) Опишите эффективный алгоритм для решения этой задачи, основанный на использовании кубических интерполяционных сплайнов. в) Напвшите программу, использующую ваш метод и подпрограмму ЯРЫ?(Е.
Проверьте вашу программу на данных упр. 7.7. 5. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ Методы приближения функций типа описанных в предыдущей главе составляют основу многих численных алгоритмов. Здесь мы будем заниматься главным образом использованием таких приближений для вычисления интегралов. Будет также сделано несколько замечаний относительно вычисления производных. Существует много различных машинных методов интегрирования и дифференцирования.
Метод, более всего подходящий для данной конкретной задачи, в значительной степени зависит от информации о соответствующей функции. Существенный интерес представляют задачи для одной функции г(х) одного действительного переменного х, заданной на интервале [а, Ы; их можно разделить иа четыре широкие категории: !. Значения функции [(х) заданы только на фиксированном конечном множестве точек х, интервала [а, Ы. 2. Функция ~(х) определена и может быть вычислена для любого действительного х из интервала [а, Ы.
3. Определение функции может быть аналитически продолжено на комплвксныв значения к. 4. Имеется явная формула для ((х), пригодная для символического манипулирования. Функции, входящие в первую категорию, могут происходить из экспериментальных измерений при значениях х„ зачастую неравномерно распределенных, или получены нз таблиц, где х, расположены равномерно. Для функций из первых двух категорий численное дифференцирование по-существу является более трудной задачей, чем численное интегрирование, потому что численному дифференцированию свойственна тенденция увеличивать любую ошибку, присутствующую в данных, в то время как численное интегрирование обычно сглаживает и уменьшает такие ошибки. Если значения функции известны или могут быть вычислены с большой точностью и если требуются производные относительно невысо- а.
численное интвгннновлнив 100 кого порядка, то часто вполне удовлетворительны методы, основанные на интерполяции сплайнами или полиномами. Но если нужны производные высокого порядка или если значения функции заьиумлеиьг, то результаты могут быть очень неточны. Примером функции, входящей в третью категорию, могло бы быть сложное выражение, составленное из тригонометрических и других элементарных функций. Для задач этого типа следует извлекать выгоду нз их комплексного расширения, если оно доступно. В подобной ситуации производные функции 7" можно выразить через комплексные контурные интегра,пы, и сглаживающий эффект численного интегрирования можно использовать для получения хороших приближений к производным высокого порядка; см. Липее, Моулер (1967) и Линес, Саиде (1971). Для задач четвертой категории символическое машинное дифференцирование проще символического интегрирования, так же как и в элементарном анализе (Мозес (1972)), Символические вычисления этого рода станут в будущем вполне обыденными; однако сейчас лишь немногие пользуются программами символического манипулирования.
зьзя численного приближения определенных интегралов часто используется термин квадратура, чтобы избежать путаницы с численным интегрированием обыкновенных дифференциальных уравнений. Остальная часть этой главы будет посвящена квадратурам функций первых двух категорий. 5.1. Формулы прямоугольников и трапеций Пусть (а, Ь) — конечный интервал оси х, разбитый на и подынтервалов, называемых элементарными отрезками '), (х;, х;+,), г'=.1,..., и. Предположим, что х,=а, хиег=-Ь и х,~х.,( ...(х„~.
Через ггг — — хг+г — х; обозначим длину г'-го элементарного отрезка. Пусть((х) — функция, определенная на (а, Ь!. Предположим, что нужно найти приближение к определенному интегралу ь Ясно, что 7(7) можно представить суммой интегралов по элементарным отрезкам 7())= Х,7г ') В прнгннале — ранен.— Прим. гирев. ьь еоемэлы пеямотгольников н тяхпеции )о) где 1, = 1; (1) = ~ 1(х) йх. Квадратурной формулой называется всякая простая формула, аппроксимирующая отдельный интеграл 11, Составная квадратурпая формула — это формула, дающая приближение к 1(1) в виде суммы приближений по данной квадратурной формуле к отдельным интегралам 1ь Двумя простейшими квадратурными формулами являются формула прямоугольников н формула трапеций. В некоторых случаях они входят также и в число самых эффективных.
Формула прямоугольников использует значения функции в средних точках элементарных отрезков Оиа аппроксимирует каждый интеграл 1; площадью прямоугольника с основанием й, и высотой 1(у;). Это дает 1;-й;~(у1) и, следовательно, азсиимную формулу прямоугольников 11 )~(й= Х й,~(у;) Формула трапеций использует значения функции в концевых точках элементарных отрезков. Она аппроксимирует интеграл 1; площадью трапеции с основанием'й; н высотой, изменяющейся ЛИНЕЙНО От)(Х,)СЛЕВа ДО ((Хоь1) СПРаВа. Эта ПРИВОДИТ К ПРИбЛИ- женному равенству 1(ьи)+1(х;11) 2 следовательно, имеем составную формулу трапеций: ь й 1(х1)+1(хч 1) Легко показать, что если 1(х) непрерывна (или даже просто ннтегрируема по Риману) на [а, Ь) и если й=тах йо то )пп Л(0=-1(1) а численнОе интеГРНРОВлние !02 Таким образом, обе формулы сходятся, когда длины интервалов бесконечно убывают.
Важнейшим практическим вопросом является: насколько быстро они сходятся? Формула прямоугольников основана на кусочно-постоянной (или степени нуль) интерполяции, в то время как формула трапеций использует кусочно-линейную (или степени один) интерполяцию. Можно было бы поэтому ожидать, что формула трапеций точнее, чем формула прямоугольников. Например, пусть [а, И=[0,1[, а=1 (так что имеется лишь один элементарный отрезок) и ~(х)=х. Очевидно, что формула трапеций дает точный результат, поскольку линейная функция, интерполирующая 1(х) в любых двух точках, совпадает с ((х) всюду. Однако и формула прямоугольников также дает точный результат, несмотря на то что функция-константа, интерполирующая [(х) при х= —, не совпадает с ) (х) ни в какой другой точке.