
- •Операции со степенными полиномами
- •Аппроксимация табличных функций Общие понятия об аппроксимации и интерполяции
- •Аппроксимация табличных функций
- •Интерполирование табличных функций с помощью степенных полиномов
- •Численное интегрирование
- •Тригонометрическая интерполяция периодических функций. Гармонический анализ и синтез периодических функций
- •Нелинейный парный регрессионный анализ
- •Численное решение обыкновенных дифференциальных уравнений Общие понятия
- •Обзор численных методов решения ду
- •Методы Рунге-Кутта
- •Алгоритмы решения систем ду
- •Непосредственное численное решение систем ду с помощью стандартных функций программного пакета Matlab
- •Численное решение систем ду с помощью приложения Simulink
Аппроксимация табличных функций
Аппроксимация табличных функций степенными многочленами методом наименьших квадратов
Пусть дана табличная функция:
,
. (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