Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
чм и maple эф.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.02 Mб
Скачать

Нелинейный метод наименьших квадратов

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

Т.е. требуется найти минимум

При приравнивании частных производных к нулю получим следующие уравнения для определения неизвестных и

Данные уравнения являются нелинейными, их можно решить, например, методом Ньютона. Однако, проще непосредственно найти минимум .

Линейный метод наименьших квадратов

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

,

минимизировала сумму квадратов ошибок

Например, для параболы, построенной методом наименьших квадратов

,

коэффициенты находятся из условия

.

Замечание 1.

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

Замечание 2.

Данный метод распространяется и на трехмерный случай:

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

,

минимизировала сумму квадратов ошибок

Интерполирование сплайнами

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

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

  1. на каждом подынтервале функция является кубическим полиномом

  2. функция и ее первые и вторые производные непрерывны в узлах.

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

  1. Естественный кубический сплайн («релаксированная кривая»): и .

  2. постоянна около крайних точек: и .

  3. и .

  4. и .

Функции, реализующие линейный метод наименьших квадратов и построение сплайнов, находятся в пакете CurveFitting.

Функция построения сплайна может быть вызвана двумя способами, отличающимися способом задания координат узлов

Spline(списокXY, имяНезПер, степень, граничныеУсловия);

Spline(списокX, списокY, имяНезПер, степень, граничныеУсловия);

где

списокXY – координаты узлов в виде списка [[x0, y0], [x1, y1], ..., [xn, yn]]

списокX ‑ координаты независимой переменной в виде списка [x0, x1, ..., xn]

списокY ‑ координаты зависимой переменной в виде списка [y0, y1, ..., yn]

имяНезПер – имя переменной, от которой будет зависить сплайн

степень – степень полинома, задается в виде degree=число

граничныеУсловия – вид ограничений в крайних точках, задаются в виде endpoints=условие, где условие это одно 'natural' (естественный сплайн №1), 'notaknot' (постоянная кривизна №2) или 'periodic' (№3) или просто число список значений (№4).

Метод наименьших квадратов реализован функцией:

LeastSquares(списокXY, имяНезПер, curve= функция);

LeastSquares(списокX, списокY, имяНезПер, curve= функция);

Где

списокXY – координаты узлов в виде списка [[x0, y0], [x1, y1], ..., [xn, yn]]

списокX ‑ координаты независимой переменной в виде списка [x0, x1, ..., xn]

списокY ‑ координаты зависимой переменной в виде списка [y0, y1, ..., yn]

имяНезПер – имя переменной, от которой будет зависить полученная функция

функция общий вид линейной кривой с нейзвестными коэффициентами, например, a*v^2+b*v+c для параболы. Если не указывать параметр curve= функция, то по умолчанию будет построена прямая.

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

Для этого можно восспользовать функцией minimize, однако, она не всегда находит решение. Существует еще одна функция для нахождения минимума Minimize, она находится в пакете Optimization. Команды данного пакета выполняют численные расчеты с использованием арифметики процессора Numerical Algorithms Group (NAG).