| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 545 人关注过本帖
标题:没办法,我搞了一上午,那个汗啊!
取消只看楼主 加入收藏
qiaqiamao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-11-9
收藏
 问题点数:0 回复次数:3 
没办法,我搞了一上午,那个汗啊!

我想利用这个程序来解决一个实验问题:

6 12 18 24 30(X)
40 0.86401187 0.866099157 0.867398348 0.86937554 0.870896092
60 0.854009255 0.855680665 0.857071684 0.858549464 0.859949833
80 0.83886257 0.840435757 0.841817144 0.84312376 0.84447422
100 0.819346113 0.821072474 0.822730598 0.824357519 0.825876722
120 0.799431577 0.80125399 0.802904876 0.804598692 0.806227141 (Z)

(Y)

现在知Z=A*X+B*Y+C*Y^2,怎样通过对上面的一组数据的拟合得到A,B,C的值。
程序在附件里面(不完整),可惜我的C语言学得太烂,希望能够得到高手的指点。非常感谢!

2007-05-29 11:10
qiaqiamao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-11-9
收藏
得分:0 

是啊!

2007-05-29 11:58
qiaqiamao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-11-9
收藏
得分:0 

我在附件里面编了一个程序啊?可是到哪儿去了呢?下面的程序只是反映了我解决这个问题的思路,还望大家给一些指点!谢谢
#include<stdio.h>
#include<math.h>
main()
{long int i,j,k;
int m,n,P[5],T[5];
double a[100000000000000000000000000000000],b[10000000000000000000000000000000000000],c[100000000000000000000000000000000000000],F[5][5],Y0=0.02;
a[1]=0.000001,b[1]=0.000001,c[1]=0.000001,F[5][5]={{0.8555},{0.8685},{0.8748},{0.8545},{0.8724}};
P[5]={ 6,12,18,24,30};
T[5]={40,60,80,100,120};
for(i=2;;i++)
{if(i%2==0)a[i]=-a[i-1];
else a[i]=i/1000000;
for(j=2;;j++)
{if(j%2==0)b[j]=-b[j-1];
else b[j]=j/1000000;
for(k=2;;k++)
{if(k%2==0)c[k]=-c[k-1];
else c[k]=k/1000000;
for(m=0;m<=4;m++)
{for(n=0;n<=4;n++)
{if((F[m][n]-Y0*EXP(a[i]*P[n]+b[j]*T[m]+c[k]*T[m]*T[m]))<=1e-4);
printf("%d,%d,%d\n" ,a[i],b[j],c[k]);
break;}}}}}

}

2007-05-29 12:10
qiaqiamao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-11-9
收藏
得分:0 

我也不想啊?可是我想利用一个很大的循环算出a,b,c三个常数的值,没办法啊!能不能告诉我这个问题怎么解决啊?
我也试过用MATLAB,但是这个应该是属于多元非线形拟合,不知道该怎么办。

2007-05-31 08:26
快速回复:没办法,我搞了一上午,那个汗啊!
数据加载中...
 
   



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

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