模型表达式:
yn = phix + n
其中,phi是基函数,x为系数,n是噪声。yn是观测值。
-- 以下是关于最小二乘法的解释 --
最小二乘法是一种数学优化技术,用于确定一组数据的最佳拟合直线或曲线。具体地,yls可以通过phi的伪逆矩阵与yn相乘得到。
以下是在Matlab中实现该算法的代码:
% 清除所有之前的数据和图形
clear;
close all;
clc;
% 设置参数
n = 50;
N = 1000;
x = linspace(-3, 3, n)';
pix = pi x;
% 生成数据
y = sin(pix) ./ pix + 0.2 x;
yn = y + 0.1 randn(n, 1); % 加入噪声
% 构建基函数矩阵p
p(:,1) = ones(n, 1);
for k = 1:10
p(:,2k) = sin(k x / 2);
p(:,2k + 1) = cos(k x / 2);
end
% 使用最小二乘法求解
yr = p inv(p' p) p' yn;
% 绘制图形
figure();
clf;
hold on;
plot(x, y, 'r:', 'LineWidth', 2); % 无噪声波形
plot(x, yn, 'bo', 'LineWidth', 1); % 数据点
plot(x, yr, 'g-', 'LineWidth', 2); % 近似曲线
title('三角函数集最小二乘法的应用'); % 图标题
legend('无噪声波形', '数据点', '近似曲线'); % 图例说明