matlab_数据拟合
2015-08-25 16:05
411 查看
【多项式拟合】
polyfit(X, Y, N);%多项式拟合,返回降幂排列的多项式系数。polyval(P, xi);%计算多项式的值
function example() x = [...]; y = [...]; P = polyfit(x, y, 3); xi = 0:0.2:10; yi = polyval(P, xi); plot(xi, yi, x, y, 'r*'); end %也可以用plot(x, y, '*r')在工具箱(Tools → Basic Fitting)中进行拟合
【指定函数拟合】
样例:f(t) = a cos ( k t ) e ω tfunction example() syms t %创建符号对象 x = [...]; y = [...]; f = fittype('a*cos(k*t)*exp(w*t)', 'independent', 't', 'coefficients', {'a', 'k', 'w'}); %构建函数 cfun = fit(x, y, f); %拟合 xi = 0:.1:20; yi = cfun(xi); plot(x, y, 'r*', xi, yi, 'b-'); end %也可以在工具箱Start → Toolboxes → Curve Fitting → Curve Fitting Tool(cftool)中或输入cftool命令进行拟合
曲线拟合工具箱
Data: 输出、查看和平滑数据。
Fitting: 拟合数据、比较拟合曲线和数据集。
Exclude: 可从拟合曲线中排出特殊的数据点。
Plotting: 选定区间后,单机按钮可选择原始数据和拟合的数据作图。
Analysis: 对拟合进行满意度、偏差等分析。
【实例】
给出数据,用Logistic曲线模型进行拟合。已知函数模型为:
y = 1 / ( a + b e-t )
只需令 y’= 1/y, x’= e-t 就可转换成模型:
y’ = a + b x’
function example() clear clc %读入数据 Y = [...]; X = [...]; %线性优化处理 for t = 1:30 x(t) = exp(-t); y(t) = 1/Y(t); end %计算,并输出回归系数B c = zeros(30, 1) + 1; x = [c, x']; B = inv(X'*X)*X'*y'; %inv求逆矩阵 for i = 1:30 %计算回归拟合值 z(i) = B(1, 1) + B(2,1) * x(i); %计算离差 s(i) = y(i) - sum(y)/30; %计算误差 w(i) = z(i) - y(i); end %离差平方和S S = s * s'; %回归误差平方和Q Q = w * w'; %回归平方和U U = S - Q; %计算,并输出F检验值 F = 28 * U / Q; %非线性回归模型的拟合值 for j = 1:30 Y(j) = 1/(B(1,1) + B(2,1) * exp(-j)); end %输出拟合曲线 plot(T, y); end
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 从java中调用matlab详细介绍
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- matlab神经网络工具箱创建神经网络
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- MATLAB 添加自定义的模块到simulink库浏览器
- MATLAB for Mac使编辑器支持中文
- [转]matlab中plot用法
- matlab程序优化以及eclipse与github的结合
- matlab中的rand函数(用于产生随机数)
- 图像增强算法四种,图示与源码,包括retinex(ssr、msr、msrcr)和一种混合算法
- MATLAB R2012a 安装到 Ubuntu 12.10
- 智慧网 分享DCT,DST,matlab