matlab最小二乘法拟合函数代码
时间: 2023-09-04 22:02:35 浏览: 147
测试过的利用最小二乘算法实现对三维平面的拟合matlab开发代码
MATLAB中使用最小二乘法进行函数拟合的代码如下:
```matlab
% 输入待拟合数据
x = [1, 2, 3, 4, 5]; % 自变量数据
y = [4, 7, 10, 13, 16]; % 因变量数据
% 定义拟合模型函数
model = @(b, x) b(1) + b(2).*x; % 使用一阶多项式 b1 + b2*x 进行拟合
% 定义误差函数
loss = @(b) sum((model(b, x) - y).^2); % 误差函数为拟合值与真实值的平方差之和
% 初始化拟合参数
b0 = [0, 0]; % 初始参数
% 使用fminsearch函数进行最小化
b_fit = fminsearch(loss, b0);
% 输出拟合参数
disp(['拟合参数:b1 = ', num2str(b_fit(1)), ', b2 = ', num2str(b_fit(2))]);
% 绘制拟合曲线
x_fit = linspace(min(x), max(x), 100); % 等间隔的自变量值
y_fit = model(b_fit, x_fit); % 计算拟合值
% 绘制原始数据及拟合曲线
plot(x, y, 'o', x_fit, y_fit, 'r');
legend('原始数据', '拟合曲线');
xlabel('自变量');
ylabel('因变量');
title('最小二乘法拟合');
```
以上代码首先输入了待拟合的数据,然后定义了拟合模型函数和误差函数。接着使用`fminsearch`函数最小化误差函数,得到最优的拟合参数。然后根据拟合参数,计算等间隔的自变量值和对应的拟合值,最后利用绘图函数`plot`绘制原始数据和拟合曲线,并添加图例、坐标轴标签以及标题。
阅读全文