请给我MATLAB当中函数拟合的代码
时间: 2023-12-09 18:03:50 浏览: 42
函数拟合的matlab代码
4星 · 用户满意度95%
在MATLAB中,可以使用 `polyfit` 函数进行多项式函数拟合,使用 `fit` 函数进行非线性函数拟合。以下是示例代码:
1. 多项式拟合
```matlab
% 定义多项式阶数
n = 2;
% 生成随机数据
x_data = linspace(-5, 5, 50)';
y_data = 2 * x_data.^2 - 3 * x_data + 1 + randn(length(x_data), 1) * 0.5;
% 进行拟合
p = polyfit(x_data, y_data, n);
% 输出拟合结果
fprintf('a = %f, b = %f, c = %f\n', p(1), p(2), p(3));
```
2. 非线性拟合
```matlab
% 定义非线性函数
f = fittype('a * sin(b * x) + c', 'coefficients', {'a', 'b', 'c'}, 'independent', 'x', 'dependent', 'y');
% 生成随机数据
x_data = linspace(0, 10, 100)';
y_data = 2 * sin(1.5 * x_data) + 0.5 * randn(length(x_data), 1);
% 进行拟合
fit_result = fit(x_data, y_data, f, 'StartPoint', [1, 1, 1]);
% 输出拟合结果
fprintf('a = %f, b = %f, c = %f\n', fit_result.a, fit_result.b, fit_result.c);
```
在上述代码中,`polyfit` 函数的第一个参数为输入数据的 x 值,第二个参数为输入数据的 y 值,第三个参数为多项式阶数。函数返回的是多项式系数。`fit` 函数的第一个参数为输入数据的 x 值,第二个参数为输入数据的 y 值,第三个参数为待拟合的函数类型,第四个参数为初始参数值。函数返回的是拟合结果。
阅读全文