Главная > Математика > Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

3.4. Применение интерполяции для решения уравнений

Интерполяция применяется для решения уравнений вида

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

Значение корня, найденное с помощью обратной интерполяции, будет

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

где приближение к корню на итерации; заданная погрешность определения корня; половина ширины полосы шума функции

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

Рассмотрим случай трех узлов. При этом левая часть решаемого уравнения аппроксимируется полиномом второй степени и алгоритм называется методом парабол. Итак, пусть известны три начальных приближения к корню Вычислим значения левой части уравнения в этих точках По полученным данным построим интерполяционный полином Ньютона второй степени.

Для простоты полагаем тогда, приравнивая полином нулю, получим квадратное уравнение для определения очередного приближения к корню уравнения.

Введем обозначение тогда и квадратное уравнение принимает вид

где

Из двух корней последнего уравнения относительно выбираем минимальный по модулю, затем вычислим величину

На следующей итерации полином строим по точкам Заканчиваем итерационный процесс, когда выполнится одно из условий

Основное время при решении уравнений методом парабол

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

Программа решения уравнений методом парабол состоит из трех блоков, назначение которых аналогично блокам схемы рис. 1.4.

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

В подпрограмме метода парабол (строки 100-190) вне итерационного цикла дважды вычисляется левая часть уравнения в точках а также разделенная разность (переменная С) и разности между узлами (переменные . В теле итерационного цикла (строки 130-170) вычисляется значение функции в точке разделенные разности и (переменные , решается квадратное уравнение и вычисляется очередное приближение. Для подготовки к следующей итерации изменяется значение переменных Операторы вычисления двух корней квадратного уравнения и выбора наименьшего по модулю корня размещены в строке 160. В строке 170 переменной X присваивается очередное приближение к корню и осуществляется проверка условия окончания итерационного процесса.

Для тестирования программ 3.4 решается уравнение

левая часть которого есть полином Лежандра порядка Корни полиномов Лежандра используются в качестве узлов при численном интегрировании методом Гаусса

Полиномы Лежандра вычисляем по рекуррентной формуле [36]

где

Порядок полинома Лежандра в программе задается параметром Значения полиномов нулевого и первого порядков инициализируются в строке 200. Рекуррентная формула (3.18) реализуется с помощью цикла в строках 210-220. Значения изменяются на каждом шаге цикла с помощью операторов присваивания (переменные .

В программе для метода парабол составлена подпрограмма типа SUBROUTINE с именем Формальными параметрами подпрограммы PAR являются начальные приближения абсолютная погрешность вычисления корня полоса шума а также имя подпрограммы-функции от

одного аргумента для вычисления левой части реашаемого уравнения. Результат решения уравнения присваивается переменной X, которая является входным и выходным параметром. Структура тела подпрограммы PAR соответствует аналогичной подпрограмме на языке Бейсик.

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

Приведем контрольную точку для тестирования программ 3.4. Для полинома Лежандра девятого порядка при получим корень

Метод парабол можно успешно использовать для решения уравнений вида

в комплексной области аргумента Наиболее просто реализовать такой метод на языке Фортран. В программе в отличие от программы добавлены объявления комплексных переменных. В качестве примера решается уравнение

где переменные являются комплексными. При начальных приближениях параметре программа выдает результат Комплексные константы на Фортране задаются в виде где А - вещественная часть, В - мнимая часть числа Например, параметр с клавиатуры ПЭВМ задаем в виде (1.80369, 3.18287).

(см. скан)

(см. скан)

(см. скан)

(см. скан)

<< Предыдущий параграф Следующий параграф >>
Оглавление