| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:[求助]一个关于计算方法的问题。
只看楼主 加入收藏
mlj716
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-7-7
收藏
 问题点数:0 回复次数:3 
[求助]一个关于计算方法的问题。

运用曲线拟合的最小二乘法做下题:
1.给定数据如下:
x:0.15,0.4,0.6,1.01,1.5,2.2,2.4,2.7,2.9,3.5,3.8,4.4,5.1,6.6,7.;
y:4.4964,5.1284,5.6931,6.2884,7.0989,7.5507,7.5106,8.0756,7.8708,8.2403,8.5303,8.7394,8.9981,9.1450,9.5070,9.9115;
试做出幂函数你和数据。

2.已知一组数据:
x:0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1
y:-0.447, 1.978, 3.28, 6.16, 7.08, 7.34, 7.66, 9.56, 9.48, 9.30, 11.2
试用最小二乘法求多项式函数,使于此组数据拟合。

在线等,谢谢大家了。

搜索更多相关主题的帖子: 计算方法 数据 最小二乘法 函数 
2007-10-25 08:43
编程终结
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-10-24
收藏
得分:0 


//最小二乘法曲线拟合
typedef CArray<double,double>CDoubleArray;
BOOL CalculateCurveParameter(CDoubleArray *X,CDoubleArray *Y,long M,long N,CDoubleArray *A)
{
//X,Y -- X,Y两轴的坐标
//M -- 结果变量组数
//N -- 采样数目
//A -- 结果参数

register long i,j,k;
double Z,D1,D2,C,P,G,Q;
CDoubleArray B,T,S;
B.SetSize(N);
T.SetSize(N);
S.SetSize(N);
if(M>N)M=N;
for(i=0;i<M;i++)
(*A)[i]=0;
Z=0;
B[0]=1;
D1=N;
P=0;
C=0;
for(i=0;i<N;i++)
{
P=P+(*X)[i]-Z;
C=C+(*Y)[i];
}
C=C/D1;
P=P/D1;
(*A)[0]=C*B[0];
if(M>1)
{
T[1]=1;
T[0]=-P;
D2=0;
C=0;
G=0;
for(i=0;i<N;i++)
{
Q=(*X)[i]-Z-P;
D2=D2+Q*Q;
C=(*Y)[i]*Q+C;
G=((*X)[i]-Z)*Q*Q+G;
}
C=C/D2;
P=G/D2;
Q=D2/D1;
D1=D2;
(*A)[1]=C*T[1];
(*A)[0]=C*T[0]+(*A)[0];
}
for(j=2;j<M;j++)
{
S[j]=T[j-1];
S[j-1]=-P*T[j-1]+T[j-2];
if(j>=3)
{
for(k=j-2;k>=1;k--)
S[k]=-P*T[k]+T[k-1]-Q*B[k];
}
S[0]=-P*T[0]-Q*B[0];
D2=0;
C=0;
G=0;
for(i=0;i<N;i++)


把你想求
的数据代替原题中的数字
试下,这个不知能否帮你

2007-10-25 11:04
leetowin
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-10-25
收藏
得分:0 
才学习,支持
2007-10-25 11:10
zx2610009
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-24
收藏
得分:0 
看不懂~~~~~

人的一生就应该有追求~~~~~
2007-10-25 12:18
快速回复:[求助]一个关于计算方法的问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014510 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved