matlab 点与拟合函数的误差

我现在有一堆点,也拟合出了一条三次函数,但是现在我需要计算出每个点与 拟合曲线之间的误差,怎么操作?详细一点,我今儿早上刚接触这个软件

% 给个例子参考哈

% 实施函数拟合的较完整描述
x = 0:.1:1;
y = [2.1 2.3 2.5 2.9 3.2 3.3 3.8 4.1 4.9 5.4 5.8];
dy = 0.15;
for n = 1:6
    [a,S] = polyfit(x,y,n);
    A{n} = a;
    da = dy*sqrt(diag(inv(S.R'*S.R)));
    DA{n} = da';
    freedom(n) = S.df;
    [ye,delta] = polyval(a,x,S);
    YE{n} = ye;
    D{n} = delta;
    chi2(n) = sum((y-ye).^2)/dy/dy;
end;
Q = 1-chi2cdf(chi2,freedom);
%
subplot(131); plot(1:6,abs(chi2-freedom),'b');
xlabel('阶次'); title('chi 2与自由度');
subplot(132); plot(1:6,Q,'r',1:6,ones(1,6)*0.5);
xlabel('阶次'); title('Q 与 0.5 线');
%
%clf; 
subplot(133); plot(x,y,'b+');
axis([0 1 1 6]); hold on;
errorbar(x,YE{3},D{3},'r'); hold off;
title('较适当的三阶拟合');
text(0.1,5.5,['chi2 = ' num2str(chi2(3)) '~' int2str(freedom(3))]);
text(0.1,5.0,['freedom = ',int2str(freedom(3))]);
text(0.6,1.7,['Q = ' num2str(Q(3)) '~0.5']);
A{3},DA{3}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-26
直接求值相减就行了。追问

有什么函数么。。?我有两组数据,每组1500个点呢。。

第2个回答  2015-05-27
自己编个函数,读入点,带进函数,用输出值减不就都得到了!干嘛非用不会的软件本回答被提问者采纳

matlab多项式曲线拟合误差怎么计算?
在Matlab中使用`polyfit`函数进行多项式曲线拟合时,可通过以下方法计算拟合误差:1. 残差平方和(RSS)残差平方和是计算拟合曲线与原始数据之间的误差大小,其公式为RSS = Σ(y - y_fit)^2,其中y为原始数据点,y_fit为拟合曲线上的点。2. 均方根误差(RMSE)均方根误差为残差平方和的平均值的平...

matlab怎么使拟合点与实测点偏差最大值最小
步骤如下:1、使用拟合函数进行曲线拟合,Matlab提供了多种拟合函数。2、可以通过计算每个实测点与对应拟合曲线上的点之间的距离来衡量偏差。3、通过调整拟合函数的参数或使用不同的拟合函数,可以得到不同的拟合曲线。比较之间的偏差,选择偏差最大值最小的拟合曲线作为最佳拟合结果。

用matlab拟合函数式的时候为什么出现错误?
1、点击函数式,即光标置于函数式内;2、单击右键,选择“设置趋势线标签格式”;3、(我的是2016版本)在右侧弹出的功能栏里面,点击“类别”下拉按钮,选择“数字”;4、在“小位小数”后面修改成适当的值(比10次幂的那个指数最大的大几位就好,比如我上面的我就可以设置成19);5、按回车就会得...

怎么用matlab求实际曲线也拟合直线之间的最大偏差
p=polyfit(t,y,2) (二次多项式拟合)计算结果:p=-0.0445 1.0711 4.3252 %二次多项式的系数 由此得到某化合物的浓度y与时间t的拟合函数。之后计算每个数据点(x,y0)和拟合直线对应点(x,y1)的误差|y1-y0|,其中的最大值就是最大偏差 ...

matlab 拟合函数 不会用 简单 求大神看看我哪里错了
你没有错,因为用matlab拟合工具箱,来做拟合函数是有一定误差的。它的误差来源是其拟合系数是在置信区间为95%时求得的,当拟合数据愈大,其误差也愈大。所以一般我们一般不用拟合工具箱来拟合,而是用 线性拟合函数regress(), 非线性拟合函数nlinfit()或lsqcurvefit()等函数来拟合。

MATLAB中,已知曲线y1和y2,怎么算两条曲线的拟合误差?(y2是y1的拟合曲 ...
有一种方法是:直接设dy=abs(y1-y2),然后代入所有测试点,比如-100:100,并求平均数。

用matlab中lsqnonlin函数拟合的曲线为什么差距这么大,跪求大神指点...
为什么用matlab中lsqnonlin函数拟合的曲线的差距有这么大?可能的原因是:1、拟合数学模型不合理 2、从散点图中可以看到,由于有极小点存在,造成拟合迭代初值没有靠近拟合曲线

matlab 模拟函数与数据相差太多是怎么回事
如果没有特殊的要求,我建议一般使用多项式函数进行拟合!下面的拟合可以看出结果很好的 x=[0 1.50E-02 3.00E-02 4.50E-02 6.00E-02 7.50E-02 9.00E-02 0.105 0.12 0.135 0.15 0.165 0.18 0.195 0.21 0.225 0.24 0.255 0.27 0.285 0.3];y=[50.15 48.235 46.32...

用Matlab 进行曲线拟合的时候,由于取点太少,所以拟合之后误差很大,怎样...
取点数目取决于你的采样。matlab无法解决 但可以采用其他方法如分段差值,三次样条插值后得到连续曲线。再在这连续曲线上取样,取样后再进行拟合。拟合和插值是不同的概念

matlab拟合问题,2012a与2013a拟合结果不一样
图上看,两个结果的误差(RMSE)是一样的。从数据看,用三角函数拟合是极其不合适的,解出来的系数本身都比较畸形。再考虑非线性特性,而且起始点是随机选取的,系数差很大完全有可能。你也许是从某种物理意义上认为前一个解更合理,不过如果你有这种先验知识,应该告诉程序。

相似回答