求最小二乘法的算法

Breeze 2006-05-22 10:52:14
就是通过二次最小平方回归所得到的二次曲线,即 y=cx2+bx+a, 用一组数据求出c, b, a,那位大下给个算法,多谢了
...全文
298 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2006-05-22
  • 打赏
  • 举报
回复
VC 程序,楼主应该能看懂的吧,不是很深奥 ...
jixingzhong 2006-05-22
  • 打赏
  • 举报
回复
//最小二乘法直线拟合
BOOL CalculateLineKB(CFoldPointList *m_FoldList,double &k,double &b)
{
//最小二乘法直线拟合
//m_FoldList为关键点(x,y)的链表
//拟合直线方程(Y=kX+b)


if(m_FoldList==NULL)return FALSE;
long lCount=m_FoldList->GetCount();
if(lCount<2)return FALSE;
CFoldPoint *pFold;
double mX,mY,mXX,mXY,n;
mX=mY=mXX=mXY=0;
n=lCount;
POSITION pos=m_FoldList->GetHeadPosition();
while(pos != NULL)
{
pFold=m_FoldList->GetNext(pos);
mX+=pFold->X;
mY+=pFold->Y;
mXX+=pFold->X*pFold->X;
mXY+=pFold->X*pFold->Y;
}
if(mX*mX-mXX*n==0)return FALSE;
k=(mY*mX-mXY*n)/(mX*mX-mXX*n);
b=(mY-mX*k)/n;
return TRUE;
}

improgrammer 2006-05-22
  • 打赏
  • 举报
回复
思路:
1、求下列和:A=sum(x*x*x*x), B=sum(x*x*x), C=sum(x*x), D=sum(x), E=sum(y), F=sum(x*y), G=sum(x*x*y)

2、解线性方程组:FF * XX = YY;其中,FF={C,D,N;B,C,D;A,B,C}, XX={c,b,a}, YY={E,F,G}

解线性方程组的算法另外再求吧,OK?
improgrammer 2006-05-22
  • 打赏
  • 举报
回复
是要源码还是解题思路?
Breeze 2006-05-22
  • 打赏
  • 举报
回复
我是要二次曲线拟合阿

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧