最小二乘拟合Matlab
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 。
最小二乘法还可用于曲线拟合,其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达 。
Matlab仿真
close all
clear all
clc
%% 数据初始化
x = [2 4 5 6 6.8 7.5 9 12 13.3 15];
y = [-10 -6.9 -4.2 -2 0 2.1 3 5.2 6.4 4.5];
[~, k] = size(x);
%% 拟合
for n = 1 : 9
X0 = zeros(n+1, k);
for k0 = 1 : k
for n0 = 1 : n + 1
X0(n0, k0) = x(k0)^(n + 1 - n0);
end
end
X = X0';
ANSS = (X' * X) \ X' * y';
for i = 1 : n + 1
answer(i, n) = ANSS(i);
end
x0 = 0 : 0.01 : 17;
y0 = ANSS(1) * x0.^n;
for num = 2 : 1 : n + 1
y0 = y0 + ANSS(num) * x0.^(n + 1 - num);
end
subplot(3, 3, n);
plot(x, y, '*');
hold on
plot(x0, y0);
end
suptitle('1到9阶方程曲线拟合结果');
仿真结果