Линейная интерполяция Matlab

Аппроксимация

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

МНК (Способ Меньших Квадратов)

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

Сущность МНК заключается в последующем: для табличных данных, приобретенных в итоге опыта, найти аналитическую зависимость, сумма квадратов уклонений которой от табличных данных во всех узловых точках была бы малой.

Аппроксимация в Matlab по МНК осуществляется при помощи функции polyfit. Функция p = polyfit Линейная интерполяция Matlab(x, y, n) находит коэффициенты полинома p(x) степени n, который аппроксимирует функцию y(x) в смысле способа меньших квадратов. Выходом является строчка p длины n+1, содержащая коэффициенты аппроксимирующего полинома.

Пример (аппроксимация при помощи интегрированных MATLAB функций):

Выполнить аппроксимацию в Matlab табличных данных x = [0, 0.1 , 0.2, 0.3, 0.5] и y = [3, 4.5, 1.7, 0.7, -1]. Применяя Линейная интерполяция Matlab способ меньших квадратов, приблизить ее многочленами 1-ой и 2-ой степени. Для каждого найти величину среднеквадратической ошибки. Выстроить (на одном листе) графики и данной таблично функции (ломанная линия) и приближающих ее многочленов 1-ой и 2-ой степени.

x = [0, 0.1 , 0.2, 0.3, 0.5];

y = [3, 4.5, 1.7, 0.7, -1];

grid on

plot(x, y, '*r');

xi = min(x):0.1:max(x);

N = 1; % степень

coeff1 = polyfit(x Линейная интерполяция Matlab, y, N);

y2 = 0;

for k=0:N

y2 = y2 + coeff1(N-k+1) * xi.^k;

end

hold on; plot(xi, y2, 'r');

N = 2;

coeff2 = polyfit(x, y, N);

y3 = 0;

for k=0:N

y3 = y3 + coeff2(N-k+1) * xi.^k;

end

hold on; plot(xi, y3, 'g');

std(y-(coeff1(1)*x+coeff1(2)))

std(y-(coeff2(1)*x.^2+coeff Линейная интерполяция Matlab2(2)*x+coeff2(3)))

Вывод:

ans = 0.9253

ans = 0.8973

Пример (аппроксимации без использования особых функций MATLAB):

Отыскать у(0.25) оковём построения аппроксимирующего полинома способом меньших квадратов согласно данным:

x: 0, 0.1, 0.2, 0.3, 0.5

y: 3, 4.5, 1.7, 0.7, -1

p: 0.5, 0.8, 1.6, 0.8, 0.1

Выстроить этот полином без учёта весовых коэффициентов с внедрением определителя Вандермонда и стандартных операторов.

%Задаем массивы данных:

x = [0; 0.1; 0.2; 0.3; 0.5];

y = [3;4.5;1.7;0.7;-1];

%Строим матрицу W Линейная интерполяция Matlab – матрицу Вандермонда с вырезанным первым столбцом:

W = vander(x);

W = W(1:5,2:5);

%Вычисляем элементы матрицы Как произведение транспонированной матрицы W и просто матрицы W

A = W'*W;

%Вычисляем элементы вектора b

b = W'*y;

%Решая систему уравнений Aa = b, находим значения вектор-столбца a:

a = inv(A)*b

%Это будут коэффициенты аппроксимирующего полинома.

%Проверяем Линейная интерполяция Matlab, используя способы MATLAB = функцию polyfit:

qq = polyfit(x,y,3)

%Получаем аппроксимированные значения y:

x1 = [-0.2:0.001:0.7];

y1 = a(1)*x1.^3 + a(2)*x1.^2 + a(3)*x1 + a(4);

%Строим график функции

plot(x,y,'*');

hold on;

grid on;

plot(x1,y1,'Color','r');

%Находим значение в точке x = 0.25

x2 = 0.25;

y2 = a(1)*x2^3 + a(2)*x2^2 + a(3)*x Линейная интерполяция Matlab2 + a(4)

Вывод:

a =

228.1447

-176.0984

22.7745

3.1590

qq = 228.1447 -176.0984 22.7745 3.1590

y2 = 1.4113

Интерполяция

Интерполяция (интерполирование) — процесс нахождения промежных значений по ряду данных, для восполнения пробелов меж точными значениями приближенными. Четкие значения так же именуют узловыми точками.

Линейная интерполяция Matlab

Метод интерполяции определяется методом вычисления приближенных значений меж точными. Более обычным и естественным вариантом является построение прямой меж Линейная интерполяция Matlab 2-мя узловыми точками. Этот способ именуется способом линейной интерполяции.

В Matlab таковой метод реализован при помощи команды

interp1(x,y, xi, 'linear') либо просто interp1(x,y, xi), где x и y массивы из табличных данных (координаты точек), xi — массив промежных точек, координаты которых требуется отыскать.


linejnie-neravenstva-i-ih-sistemi-i-sovokupnosti-10-chasov.html
linejnie-operacii-nad-geometricheskimi-vektorami.html
linejnie-opori-sinteticheskaya-verevka-i-stalnoj-tros.html