搜索
bottom↓
回复: 11

关于直线拟合系数偏差的问题

[复制链接]
(171020809)

出0入0汤圆

发表于 2016-6-28 22:08:33 | 显示全部楼层 |阅读模式
X        0        0.1        0.2        0.5        1        1.5
Y        0.002        0.082        0.162        0.407        0.805        1.185
两组数据  用“二乘法程序运算”和“笔算”得出来的 K=0.785619 ,而用EXCEL算出的K=0.7913 ,想问是算的精度问题还是?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(171020513)

出10入14汤圆

发表于 2016-6-28 22:13:29 | 显示全部楼层
你算错了吧?
excel算出来的很准啊
(170936609)

出0入0汤圆

 楼主| 发表于 2016-6-29 21:31:53 | 显示全部楼层
zouzhichao 发表于 2016-6-28 22:13
你算错了吧?
excel算出来的很准啊

大神要么你帮我拟合一下 ,我算出是Y=0.785619X+0.011409; R=0.9998
还是我EXCEL拟合设置错了
0        0.1        0.2        0.5        1        1.5
0.002        0.082        0.162        0.407        0.805        1.185
(170934763)

出10入14汤圆

发表于 2016-6-29 22:02:39 | 显示全部楼层
xinwu 发表于 2016-6-29 21:31
大神要么你帮我拟合一下 ,我算出是Y=0.785619X+0.011409; R=0.9998
还是我EXCEL拟合设置错了
0        0.1        0.2         ...

手上电脑没装matlab,自己写的,算出来和excel是一样的,应该是你算错了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(170934263)

出0入0汤圆

发表于 2016-6-29 22:10:59 | 显示全部楼层
楼主算错了,我算了一遍跟Excel一样。
(170892718)

出0入0汤圆

 楼主| 发表于 2016-6-30 09:43:24 | 显示全部楼层
zouzhichao 发表于 2016-6-29 22:02
手上电脑没装matlab,自己写的,算出来和excel是一样的,应该是你算错了

这个是网上下的函数,我检测了很多遍好像都是对的,大神帮我看一下
#define nCount 6//点数  6
xdata double X[6]={0,0.1,0.2,0.5,1.0,1.5};
xdata double Y[6]={0.02,0.082,0.162,0.407,0.805,1.185};
xdata double xyTopX,xyTopY,RTop;

void  Min2Method()
/////////////////////////////////////////////////////////////////////////////////////
////////  功能描述:利用最小二乘法求斜率                                   //////////
////////            xyTopX -- 截距                                         //////////
////////            xyTopY -- 斜率
///////                                RTop   -- 拟合优度
{
    unsigned int      i;
    double   SumX, SumY, SumXY, SumX2;
     
    SumX = 0;
    SumX2 = 0;
    for( i=0; i<nCount; i++)
    {
        SumX += X;
        SumX2 += (X*X);
    }
     
    SumY = 0;
    for( i=0; i<nCount; i++)
    {
        SumY += Y;
    }

    SumXY = 0;
    for( i=0; i<nCount; i++)
    {
        SumXY += ( X* Y);
    }

    xyTopX = ( (SumX2*SumY - SumX*SumXY) / (nCount*SumX2 - SumX * SumX));
    xyTopY = ( (nCount*SumXY - SumX*SumY) / (nCount*SumX2 - SumX * SumX));
}
(170892395)

出0入0汤圆

发表于 2016-6-30 09:48:47 来自手机 | 显示全部楼层
程序的浮点误差
(170887502)

出0入0汤圆

 楼主| 发表于 2016-6-30 11:10:20 | 显示全部楼层
bg6agf 发表于 2016-6-30 09:48
程序的浮点误差

请问应该怎么写
(170886771)

出10入14汤圆

发表于 2016-6-30 11:22:31 | 显示全部楼层
浮点运算误差哪有这么大?
(170871372)

出0入0汤圆

 楼主| 发表于 2016-6-30 15:39:10 | 显示全部楼层
zouzhichao 发表于 2016-6-30 11:22
浮点运算误差哪有这么大?

是我的程序哪里写了吗?
(170870815)

出0入0汤圆

 楼主| 发表于 2016-6-30 15:48:27 | 显示全部楼层
本帖最后由 xinwu 于 2016-6-30 17:06 编辑
bg6agf 发表于 2016-6-30 09:48
程序的浮点误差


我程序修改了一下 结果还是一样  应该是浮点误差的问题
0        0.1        0.2        0.5        1        1.5
0.02        0.82        1.62        4.07        8.05        11.85
Y的数值*10后 EXCEL 拟合出来 K=7.9133 程序拟合出来7.913256
那应该怎样减小浮点误差(本人用的是STC单片机 KEIL编译器)
(170852937)

出0入0汤圆

 楼主| 发表于 2016-6-30 20:46:25 | 显示全部楼层
问题解决了,是我算法问题
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-11-29 07:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表