最小二乘法MATLAB代码
时间: 2024-10-18 09:00:28 浏览: 53
最小二乘法是一种常用的数据拟合技术,在MATLAB中,可以使用`lsqcurvefit`函数来进行非线性最小化问题的求解。这个函数可以根据给定的一组数据点找到一条曲线(通常是通过多项式或其他函数),使得所有数据点到这条曲线的距离之和最小。
下面是一个简单的最小二乘法求解线性回归的MATLAB代码示例:
```matlab
% 定义线性模型函数
model = @(params, x) params(1)*x + params(2); % y = a*x + b
% 给定数据点 (x_data, y_data)
x_data = [1, 2, 3, 4, 5];
y_data = [2, 4, 6, 8, 10]; % 假设这是真实的数据
% 初始猜测参数值
initial_params = [1, 1];
% 使用lsqcurvefit进行拟合
params_fit = lsqcurvefit(model, initial_params, x_data, y_data);
% 打印结果
disp(['a = ', num2str(params_fit(1))]);
disp(['b = ', num2str(params_fit(2))]);
% 可视化结果
plot(x_data, y_data, 'o', x_data, model(params_fit, x_data), '-');
xlabel('x');
ylabel('y');
title('Least Squares Fit');
```
在这个例子中,`lsqcurvefit`返回的是最能拟合数据的参数`params_fit`,然后我们就可以用这些参数构建出最佳拟合的直线方程。
阅读全文