2. Приближение функций Задача приближения функций
Скачать 7.11 Mb.
|
Пример. Используя интерполяционную формулу Ньютона с конечными разностями для интерполяции вперед и назад, вычислить значения функции при данных значениях аргумента
Составим таблицу конечных разностей. Ограничимся при этом разностями четвертого порядка, так как они практически постоянны. Для вычисления значения функции при воспользуемся формулой Ньютона для интерполяции вперед (2.10.1). При этом разности из таблицы лучше всего брать стоящие по той диагонали, которая ближе всего расположена к . В таблице разностей эта диагональ подчеркнута. Тогда и с точностью
Аналогично, для Воспользуемся формулой (2.10.2) для интерполяции назад: с той же точностью, что и в предыдущей формуле. Задание № 2. Вычислить приближенное значение функции по интерполяционной формуле Ньютона для интерполяции вперед или назад. I.
II.
III.
IV.
V.
Приступим к решению в пакете Mathcad заданий этой лабораторной работы. Решим уже разобранную задачу первого примера. Построить матрицу разделенных разностей можно быстро и легко с помощью дискретного аргумента. Введем с клавиатуры Если теперь набрать , то на экран выведется точно такая же таблица, что и полученная нами в первом примере этой лабораторной работы. Получить аналитический вид многочлена можно с помощью меню Symbolics (Символьные выражения) – Simplify (Упростить), набирая по формуле (2.7.1) числовые значения коэффициентов из матрицы : В Mathcad длинный оператор, не помещающийся в одну строку на странице, можно перенести в следующую строку, нажав . Это проделано в предыдущем операторе. Аналогично Значение функции в требуемой точке вычисляется обращением к соответствующей подпрограмме: Эту же задачу можно решить средствами программирования пакета Mathcad. В среде Mathcad потребность в программировании ощущается не только для расширения и совершенствования базового набора математических инструментов, но и в учебных целях. Пакет содержит одиннадцать функций экстраполяции и интерполяции, в частности линейную интерполяцию (linterp) и интерполяцию сплайнами (cspline, pspline, lspline). Полиномиальная интерполяция осуществляется функциями polint и polin2, однако они не являются встроенными и становятся таковыми лишь после подгрузки соответствующего электронного учебника. Составим поэтому программу, вычисляющую интерполяционный многочлен Ньютона по разделенным разностям. Эту задачу удобно разбить на три части: а) составление таблицы разделенных разностей; б) вычисление коэффициентов функции в формуле (2.7.1) и в) вычисление самого многочлена Подпрограмма, вычисляющая таблицу разделенных разностей, очень проста и понятна: Здесь и - вектора аргумента и функции, число узлов заданной сетки. После обращения к данной подпрограмме м ожно еще раз напечатать полученную матрицу, набрав . Эта таблица будет опять точно такой же, как и в первом примере. Нахождение коэффициентов функции , включая раскрытие скобок и приведение подобных членов, - задача значительно более трудная. Без сомнения, можно предложить несколько вариантов этой подпрограммы, которые будут длиннее или короче друг друга в зависимости от выбранного алгоритма. Один из вариантов может быть, например, таким: Подпрограмма выдает матрицу , в которой по строкам записаны коэффициенты всех функций от первой степени до степени , причем коэффициенты расположены начиная со старшей степени аргумента. Последняя подпрограмма реализует формулу (2.7.1) и выдает вектор коэффициентов интерполяционного многочлена Ньютона степени Можно проверить правильность предыдущих вычислений, набрав . Аналогичные программы можно составить для вычисления интерполяционного многочлена Ньютона по конечным разностям для интерполяции вперед или назад. Таблица конечных разностей вычисляется следующей подпрограммой: Структура формулы (2.10.1) позволяет при вычислении произведений вида использовать уже готовую функцию . Действительно, и так далее. Подпрограмма, реализующая формулу Ньютона для интерполяции вперед, может быть, например, такой: П ри написании этой подпрограммы использовались операторы break – выхода из текущего цикла и операции отношения >,<. Операции отношения берутся из панели равенств и отношений (Evaluation and Boolean Palette), которую открывает кнопка . Эта панель имеет вид Щ елчком по кнопкам этой панели в рабочий документ вставляются соответствующие знаки отношений и т.п. В список параметров новой подпрограммы включен параметр - заданная точность вычислений. Это связано с тем, что конечные разности в отличие от разделенных быстро убывают, особенно для достаточно гладких функций. Если задать очень высокую степень аргумента, то в формуле (2.10.1) будет использована конечная разность соответствующей степени, которая может быть очень маленькой, меньше заданной точности . При малых шагах сетки быстро накапливаются большие ошибки, которые могут совершенно исказить конечный результат. Поэтому в подпрограмме анализируется таблица конечных разностей по заданной точности и соответственно уменьшается степень интерполяционного многочлена. Введем с клавиатуры Таким образом, восстановлен только многочлен третьей степени (по заданной точности ), который имеет вид . Это многочлен для интерполяции вперед, его можно употреблять для нахождения приближенных значений функции в верхней половине таблицы конечных разностей Например, . Аналогичную формулу для интерполяции назад можно легко получить на основе приведенного материала. Желающие могут проделать это самостоятельно. |