xinwu 发表于 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 ,想问是算的精度问题还是?

zouzhichao 发表于 2016-6-28 22:13:29

你算错了吧?
excel算出来的很准啊

xinwu 发表于 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

zouzhichao 发表于 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是一样的,应该是你算错了

WinExt 发表于 2016-6-29 22:10:59

楼主算错了,我算了一遍跟Excel一样。

xinwu 发表于 2016-6-30 09:43:24

zouzhichao 发表于 2016-6-29 22:02
手上电脑没装matlab,自己写的,算出来和excel是一样的,应该是你算错了

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

voidMin2Method()
/////////////////////////////////////////////////////////////////////////////////////
////////功能描述:利用最小二乘法求斜率                                 //////////
////////            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));
}

bg6agf 发表于 2016-6-30 09:48:47

程序的浮点误差

xinwu 发表于 2016-6-30 11:10:20

bg6agf 发表于 2016-6-30 09:48
程序的浮点误差

请问应该怎么写

zouzhichao 发表于 2016-6-30 11:22:31

浮点运算误差哪有这么大?

xinwu 发表于 2016-6-30 15:39:10

zouzhichao 发表于 2016-6-30 11:22
浮点运算误差哪有这么大?

是我的程序哪里写了吗?

xinwu 发表于 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编译器)

xinwu 发表于 2016-6-30 20:46:25

问题解决了,是我算法问题
页: [1]
查看完整版本: 关于直线拟合系数偏差的问题