Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_Мат_Ч2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.27 Mб
Скачать

Аппроксимация табличных функций

Аппроксимация табличных функций степенными многочленами методом наименьших квадратов

Пусть дана табличная функция:

, . (1)

Известен вид аппроксимирующей функции:

и порядок полинома .

Необходимо определить вектор коэффициентов

аппроксимирующего полинома из условия минимизации функционала

(2)

Для минимизации функционала (2) необходимо найти выражения для его частных производных по переменным , и приравнять их нулю. В итоге получим систему уравнений с неизвестными:

(3)

Выражение для частной производной с учетом (2) имеет вид:

.

Тогда систему (3) можно записать в следующем виде:

(4)

После перегруппировки членов первой суммы в левой части (4) получим следующее выражение:

. (5)

Подставляя в (5) последовательно , получим следующую систему уравнений:

(6)

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

Можно показать, что увеличение порядка аппроксимирующего полинома приводит к снижению функционала (2), т.е. к повышению точности аппроксимации. К такому же результату приводит и увеличение количества узловых точек при неизменном порядке аппроксимирующего полинома.

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

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

В Matlab для аппроксимации табличных функций степенными полиномами методом наименьших квадратов используют функцию

c = polyfit(x, y, k)

которая получает в качестве аргументов табличные значения аргумента x и функции y и порядок аппроксимирующего полинома k, и возвращает вектор c коэффициентов аппроксимирующего полинома размерностью k+1.

Пример.

Аппроксимировать экспериментально снятую ВАХ степенным полиномом первого порядка.

Текст программного script-файла может иметь следующий вид:

clc;

It=0:.1:1; % Табл. функция задается двумя векторами одной размерности

Ut=[0 0.12 0.24 0.34 0.38 0.48 0.55 0.6 0.69 0.75 0.8];

d=polyfit(It,Ut,1); % Определение коэффициентов аппрокс. полинома

ds=poly2str(d,'i')

I=linspace(min(It),max(It)); % Задание большего числа точек

U=polyval(d,I); % и вычисления значения аппроксимирующей

% функции в них

Uat=polyval(d,It); % Вычисление значений аппроксимирующей

% функции в узловых точках

func=sum((Uat-Ut).^2) % Вычисление функционала

figure, plot(It,Ut,'*',I,U), grid on % Построение графиков табличной

% и аппроксимирующей функций

Результат работы script-файла:

ds =

0.77818 i + 0.060909

func =

0.0099