Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
4.2. Степенной базисВыберем базисные функции в виде последовательности степеней аргумента х, которые линейно независимы,
В этом случае так же, как и при интерполяции, мы будем аппроксимировать экспериментальную зависимость полиномом. Однако степень полинома выбираем обычно (при лагранжевой интерполяции Аппроксимирующая кривая в МНК не проходит через значения исходной функции в узлах, но проведена из условия наименьшего суммарного квадратичного отклонения. Экспериментальные данные «сглаживаются» с помощью функции Если же выбрать то на основании единственности интерполяционного полинома получим функцию совпадающую с каноническим интерполяционным полиномом степени аппроксимирующая кривая пройдет через все экспериментальные точки и величина О будет равна нулю. Последнее обстоятельство используется для отладки и тестирования программ, реализующих алгоритмы МНК. Запишем расширенную матрицу системы нормальных уравнений для базиса (4.8):
Нетрудно видеть, что для формирования расширенной матрицы (4.9) достаточно вычислить только элементы первой строки и двух последних столбцов, остальные элементы не являются «оригинальными» и заполняются с помощью циклического присвоения. Для решения систем уравнений с матрицей Грама разработаны методы сингулярного разложения [19]. Если же то такие системы можно решать и более простым методом исключения Гаусса. Программы аппроксимации дискретных функций методом наименьших квадратов с использованием степенного базиса составлены в соответствии с блок-схемой рис. 4.1 Рис. 4.1. (см. скан) Блок-схема программы обработки данных методом наименьших квадратов В основном блоке программы описываются массивы для размещения таблицы исходных данных, двумерный массив А - для расширеннсй матрицы системы нормальных уравнений и массив С - для коэффициентов аппроксимирующей функции. В диалоговом режиме вводятся значения величин: номер последнего узла таблицы; номер последней базисной функции; интервал и шаг изменения текущих значений аргумента, при которых необходимо вычислить аппроксимирующую функцию При задании значений необходимо учитывать, что нумерация узлов и базисных функций ведется с нуля, поэтому каждое из значений берется на единицу меньше количества узлов и базисных функций соответственно. В блоке 1 (строки 100-190) таблица данных вводится с клавиатуры ПЗВМ в диалоговом режиме последовательными парами узлов и значений аппроксимируемой функции. При обработке экспериментальных данных подобная таблица может быть сформирована при получении данных с интерфейса В блоке 2 (строки 200-290) формируется расширенная матрица вида (4.9). С помощью вложенных циклов по переменным (строки 210-230) формируются "оригинальные” элементы нулевой строки и двух последних столбцов матрицы Грама Для накопления сумм, входящих в нулевую строку матрицы, введена переменная в последние столбцы - Эти переменные инициализируются в строке 200 после заголовка внешнего цикла по переменной Остальные элементы матрицы заполняются путем последовательного сдвига «оригинальных» элементов на следующую строку и предыдущий столбец (строки программы 240-260). Блок 3 (строки 300-399) представляет собой переработанный вариант подпрограммы метода Гаусса (программа Здесь исключены операторы выбора главного элемента, а также учтено, что матрица решаемой системы уравнений имеет строку и столбец с нулевыми номерами. В блоке 4 осуществляется вычисление аппроксимирующей функции по схеме Горнера (строки 400-490). Результат накапливается в цикле с отрицательным шагом и присваивается переменной При выполнении программы значения каждой из переменных задаются на единицу больше, чем для программы Это обусловлено тем, что в языке Фортран нумерация массивов начинается с единицы. Блоки 1-4 в программе реализованы в виде подпрограммы типа SUBROUTINE с именами и В языке Паскаль отсутствует стандартная функция возведения в степень, для выполнения этой операции в программе введена процедура-функция осуществляющая возведение вещественной переменной А в целую степень путем последовательного умножения в цикле. В программах 4.2 реализован способ формирования элементов матрицы Грама без использования операции возведения в степень. Для получения степеней узлов используется операция умножения, массив введен для размещения последовательных степеней узлов и является локальным в подпрограммах GRAM (программы Все элементы массива инициализируются единицей (строка 200 программы При тестировании программ 4.1 и 4.2 можно использовать примеры гл 3, При получаем те же результаты, что и при лагранжевой интерполяции полиномом степени При получим для функции заданной в точках (см. скан) (см. скан) (см. скан) (см. скан) (см. скан)
|
1 |
Оглавление
|