matlab梯度下降法拟合曲线
时间: 2023-07-13 21:35:28 浏览: 131
Gradient Descent for Linear Curve Fitting:梯度下降法计算拟合数据的最佳线性曲线。-matlab开发
使用梯度下降法拟合曲线可以通过以下步骤实现:
1. 定义损失函数,例如均方误差(MSE)。
2. 初始化模型参数,例如用随机数初始化权重。
3. 对于每个训练样本,计算损失函数对于每个模型参数的偏导数,即梯度。
4. 更新模型参数,例如使用学习率乘以梯度来更新权重。
5. 重复步骤3和4,直到达到收敛条件。
下面是一个使用梯度下降法拟合曲线的MATLAB示例代码:
```matlab
% 生成数据
x = linspace(0, 1, 100);
y = sin(2*pi*x) + 0.5*randn(1, 100);
% 定义模型参数和损失函数
w = randn(2, 1);
loss = @(w) mean((w(1)*x + w(2) - y).^2);
% 梯度下降
lr = 0.1;
for i = 1:1000
% 计算梯度
grad = [mean(2*(w(1)*x + w(2) - y).*x); mean(2*(w(1)*x + w(2) - y))];
% 更新权重
w = w - lr*grad;
% 打印损失
disp(loss(w));
end
% 绘制拟合曲线
plot(x, y, 'o');
hold on;
plot(x, w(1)*x + w(2), 'r');
```
在这个例子中,我们使用一个简单的线性模型拟合正弦曲线,并使用随机梯度下降法更新模型参数。
阅读全文