| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1015 人关注过本帖
标题:求助关于曲线拟和
只看楼主 加入收藏
sunbg_daqing
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-5-15
收藏
得分:0 

哥们 你真神了 谢谢 小弟试一下啊 呵呵

2006-05-16 19:19
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(sunbg_daqing)哥们 你真神了 谢谢 小弟试一...

先别客气,还缺主函数哩。一会儿调不出来的话,请发来有待拟合的N个点的(x,y)。

哥们,要处理好那三个形参指针!!!


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-16 19:35
sunbg_daqing
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-5-15
收藏
得分:0 
X Y Z
9333.000000 9333.000000 9333.000000
9005.000000 18338.000000 18010.000000
8756.000000 27094.000000 26268.000000
8036.000000 35130.000000 32144.000000
7773.000000 42903.000000 38865.000000
5738.000000 48641.000000 34428.000000
7130.000000 55771.000000 49910.000000
6779.000000 62550.000000 54232.000000
一共8组 我调用这个函数的时候出现问题 说N有问题 哥们你在帮忙看一下吧 谢谢了
我想在这个函数中直接把得到的ABC值输出到一个文件中 哥们也帮我弄一下吧
2006-05-17 16:12
金为床兮银为椅
Rank: 1
等 级:新手上路
帖 子:183
专家分:0
注 册:2006-3-20
收藏
得分:0 

既然是曲线至少是二维的(x,y)你的X1和X2是什么意思?题目是y=B0 + B1 * X1 + B2 * X2对吗?是不是乘以?
y代表什么啊?B0,B1,B2是常数对吗?你13楼给出XYZ都是什么啊?我想练习练习你这道题目,可惜我不懂。


努力学习C、C++、LINUX、ORACLE、ENGLISH,累死为止。
2006-05-17 16:26
sunbg_daqing
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-5-15
收藏
得分:0 

二元回归得有两个变量X1 X2 Y是函数 拟合出Y=B0+B1X1+B2X2
X1 X2 Y
9333.000000 9333.000000 9333.000000
9005.000000 18338.000000 18010.000000
8756.000000 27094.000000 26268.000000
8036.000000 35130.000000 32144.000000
7773.000000 42903.000000 38865.000000
5738.000000 48641.000000 34428.000000
7130.000000 55771.000000 49910.000000
6779.000000 62550.000000 54232.000000
一共8组 我调用这个函数的时候出现问题 说N有问题 哥们你在帮忙看一下吧 谢谢了
我想在这个函数中直接把得到的ABC值输出到一个文件中 哥们也帮我弄一下吧

2006-05-17 17:30
金为床兮银为椅
Rank: 1
等 级:新手上路
帖 子:183
专家分:0
注 册:2006-3-20
收藏
得分:0 

我要回家了,明天再来看,我还有点不明白,你先看看我的理解。

对于曲线拟和。。。。(二维)是在坐标平面给定一些列的已知的点(x,y) 首先观察曲线形状,如果是随着x增加而向上调的,设定方程为
Y = C0 + C1 * X + C2 * (X*X) + C3 * (X*X*X) + ....+ Cn * (X的n次幂)
一般选取n = 3 就够了,曲线向下的x的幂要为负值,而且定义的方程也不一样。这才是曲线拟和嘛!

你搞的是什么曲线拟和?你先给我讲讲数学,至于把B0B1B2三个常数输入文件,很简单地,自己看基础书就可以搞定。


努力学习C、C++、LINUX、ORACLE、ENGLISH,累死为止。
2006-05-17 17:52
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

#include<stdio.h>

void RENRTU (int N,double A[][4]);

void RABXCY (int N,double X[],double Y[],double Z[],
double *A,double *B,double *C)
{
double XK[6],YK[3],AY[3][4];
int NN=3,I;
for(I=0;I<6;I++)
{
XK[I]=0.0;
}

for(I=0;I<3;I++)
{
YK[I]=0.0;
}

XK[0]=N;

for(I=0;I<N;I++)
{
XK[1]+=X[I];
XK[2]+=Y[I];
XK[3]+=X[I]*Y[I];
XK[4]+=Y[I]*Y[I];
XK[5]+=X[I]*X[I];
YK[0]+=Z[I];
YK[1]+=Z[I]*X[I];
YK[2]+=Y[I]*Z[I];
}

AY[0][0]=XK[0];
AY[0][1]=XK[1];
AY[0][2]=XK[2];
AY[0][3]=YK[0];
AY[1][0]=XK[1];
AY[1][1]=XK[5];
AY[1][2]=XK[3];
AY[1][3]=YK[1];
AY[2][0]=XK[2];
AY[2][1]=XK[3];
AY[2][2]=XK[4];
AY[2][3]=YK[2];

RENRTU(NN,AY);

*A=AY[0][3];
*B=AY[1][2];
*C=AY[2][3];
}

void RENRTU(int N,double A[3][4])
{
double P,AIK;
int I,J,K,M=N+1;
for(K=1;K<=N;K++)
{
P=A[K-1][K-1];
for(J=K;J<=N;J++)
A[K-1][J-1]/=P;

for(I=1;I<=N;I++)
{
if(I==K)continue;
AIK=A[I-1][K-1];
for(J=K;J<=N;J++)
A[I-1][J-1]-=AIK*A[K-1][J-1];
}
}
}

int main()
{ double A,B,C;
double X1[]={ 9333.000000, 9005.000000, 8756.000000, 8036.000000,
7773.000000, 5738.000000, 7130.000000, 6779.000000};
double X2[]={ 9333.000000,18338.000000,27094.000000,35130.000000,
42903.000000,48641.000000,55771.000000,62550.000000};
double Y[ ]={ 9333.000000,18010.000000,26268.000000,32144.000000,
38865.000000,34428.000000,49910.000000,54232.000000};
RABXCY(8,X1,X2,Y,&A,&B,&C);
printf("%lf,%lf,%lf\n",A,B,C);
return 0;
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-17 19:20
快速回复:求助关于曲线拟和
数据加载中...
 
   



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

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