【matlab曲线拟合 函数 用法以及例子】在MATLAB中,曲线拟合是一种常用的数据分析方法,用于根据给定的数据点找到最佳拟合的数学模型。MATLAB提供了多种函数和工具来实现曲线拟合,包括`fit`、`polyfit`、`lsqcurvefit`等。以下是对这些函数的总结,并通过表格形式展示其用法与示例。
一、常见曲线拟合函数及其用途
函数名称 | 功能说明 | 适用场景 |
`fit` | 使用自定义或内置模型进行曲线拟合 | 高级拟合,支持多种模型类型 |
`polyfit` | 用于多项式拟合 | 简单的多项式拟合 |
`lsqcurvefit` | 非线性最小二乘拟合 | 复杂非线性模型拟合 |
`fittype` | 定义自定义拟合函数类型 | 自定义模型时使用 |
`fitresult` | 存储拟合结果 | 保存并调用拟合后的函数 |
二、函数用法及示例
1. `polyfit`:多项式拟合
语法:
```matlab
p = polyfit(x, y, n)
```
- `x` 和 `y` 是数据点;
- `n` 是拟合多项式的次数;
- `p` 是返回的多项式系数。
示例:
```matlab
x = [1, 2, 3, 4, 5];
y = [5, 7, 9, 11, 13];
p = polyfit(x, y, 1); % 一次多项式拟合
disp(p);
```
输出:
```
2.00003.0000
```
2. `fit`:通用曲线拟合
语法:
```matlab
f = fit(x, y, 'model')
```
- `model` 可以是 `'poly1'`, `'exp1'`, `'gauss1'` 等预定义模型;
- 或者使用 `fittype` 自定义模型。
示例:
```matlab
x = [1, 2, 3, 4, 5];
y = [5, 7, 9, 11, 13];
f = fit(x', y', 'poly1');
plot(f, x, y);
```
3. `lsqcurvefit`:非线性最小二乘拟合
语法:
```matlab
x = lsqcurvefit(fun, x0, xdata, ydata)
```
- `fun` 是待拟合的函数;
- `x0` 是初始猜测值;
- `xdata` 和 `ydata` 是输入数据。
示例:
```matlab
xdata = [1, 2, 3, 4, 5];
ydata = [5, 7, 9, 11, 13];
fun = @(a, x) a(1)x + a(2); % 线性模型
a0 = [1, 1]; % 初始猜测
a = lsqcurvefit(fun, a0, xdata, ydata);
disp(a);
```
输出:
```
2.00003.0000
```
4. `fittype` 和 `fit` 结合使用(自定义模型)
示例:
```matlab
ft = fittype('ax + b'); % 自定义线性模型
f = fit(x', y', ft);
disp(f);
```
三、总结
MATLAB 提供了丰富的曲线拟合工具,适用于不同类型的模型和数据。对于简单的线性或多项式拟合,`polyfit` 是最直接的选择;而对于更复杂的模型,可以使用 `fit` 或 `lsqcurvefit`。结合 `fittype` 还能实现自定义拟合模型,满足多样化的应用需求。
建议在实际应用中根据数据特征选择合适的拟合方式,并通过可视化结果验证拟合效果。