SimWe仿真论坛's Archiver

COMSOL 2008年会

feitianxue001 发表于 2007-4-8 20:24

求助

我有一组数,比如748.91,760.32,774.92,785.28,795.52,804.8,814.97,828.73,843.44,856.95,884.03,908.89,我要找出他们符合的方程,y=exp(a*ln(y(-1))+b*ln(y(-2))+c),这个方程不是很合适,想用istopt找一个合适的方程,怎么实现?代码?请赐教。

shamohu 发表于 2007-4-8 21:22

你这好象是时间系列的自回归模型,不知下面结果如何?

1stOpt代码:
**************************
Parameter a,b,c;
Variable x, y;
StartProgram [Pascal];
Procedure MainModel;
var i: integer;
    temy1, temy2: double;
Begin
    temy1 := 748.91;
    temy2 := 760.32;
    for i := 0 to DataLength - 1 do begin
        y[i]:=exp(a*ln(temy1)+b*ln(temy2)+c);
        temy1 := temy2;
        temy2 := y[i];
    end;
End;
EndProgram;
Data;
1        774.92
2        785.28
3        795.52
4        804.8
5        814.97
6        828.73
7        843.44
8        856.95
9        884.03
10        908.89
***************************
得结果:

优化算法: 标准简面体爬山法 + 通用全局优化法
计算结束原因: 达到收敛判定标准
均方差(RMSE): 2.06219102816797
残差平方和(SSE): 42.5263183665648
相关系数(R): 0.999079654252023
相关系数之平方(R^2): 0.998160155540342
决定系数(DC): 0.99751806035343
F统计(F-Statistic): 1410.18739308856

参数                  最佳估算
--------------------        -------------
a                  -1.50240058914606
b                  2.5266639017367
c                  -0.169045121788916

====== 输出结果 =====

文件:Data file - 1
No        实测y        计算y
1        774.92        771.524122452661
2        785.28        782.592537770325
3        795.52        793.635782363274
4        804.8        804.828244982805
5        814.97        816.44584749827
6        828.73        828.926893194475
7        843.44        842.971366300918
8        856.95        859.70564066794
9        884.03        880.962418843768
10        908.89        909.773564926609

feitianxue001 发表于 2007-4-8 21:31

谢谢,我这是个系列的自回归,但是我想这个软件能不能自己找到一个回归方程。目前的方程好像不太合适。我要预测的人口发展数据。目前有1980-2005的数据,预测2010,2020年的数据结果。麻烦还请你帮忙了。

feitianxue001 发表于 2007-4-9 15:05

怎么没有人帮助我啊?

shamohu 发表于 2007-4-9 16:08

我上面给出的答案,光从结果上看,拟合效果已很好了吧!
如果是搞人口模型,用下面的S曲线如何?数据是1949至2003人口:
**************
Function y=a*(1-b*exp(-k*x))^c;
Data;
年份(+1948)        年末总人口(万人)
1        54167
2        55196
3        56300
4        57482
5        58796
6        60266
7        61465
8        62780
9        64238
10        65346
11        66012
12        66207
13        66457
14        67295
15        69172
16        70499
17        72538
18        74206
19        76032
20        78198
21        80335
22        82542
23        84779
24        86727
25        88761
26        90409
27        91970
28        93267
29        94774
30        96159
31        97542
32        98705
33        100072
34        101654
35        103008
36        104357
37        105851
38        107507
39        109300
40        111026
41        112704
42        114333
43        115823
44        117171
45        118517
46        119850
47        121121
48        122389
49        123626
50        124761
51        125786
52        126743
53        127627
54        128453
55        129227
**********************
结果:
相关系数(R): 0.999039231611412
相关系数之平方(R^2): 0.99807938629872
决定系数(DC): 0.998079243495469
卡方系数(Chi-Square): 393.13145154131
F统计(F-Statistic): 8850.67938590649

参数        最佳估算
----------        -------------
a                  139162.803410613
b                  -95.4765890756594
k                  0.0989222608374894
c                  -0.213736063761349

预测(万人)
2010年人口:133674.213124153
2020年人口:136972.905857036

feitianxue001 发表于 2007-4-9 16:26

我用你给的第一个结果算了一下,人口2010和2020的人数和已有规划相差很大啊
再用你新给的试一下

feitianxue001 发表于 2007-4-9 16:42

1  748.91
2  760.32
3  774.92
4  785.28
5  795.52
6  804.80
7  814.97
8  831.76
9  843.44
10  856.95
11  884.03
12  908.89
13  920.41
14  928.02
15  935.28
16  941.83
17  948.19
18  952.59
19  956.64
20  959.48
21  1001.14
22  1004.06
23  1007.18
24  1011.30
25  1023.67
26  1042.9
以上是我的1980-2005的数据,我得是未注册版不能计算,我以前曾经遇上过这个问题,请你帮我算一下参数值。谢谢

shamohu 发表于 2007-4-9 17:09

y=a*(1-b*exp(-k*x))^c;

均方差(RMSE): 9.45545372556106
残差平方和(SSE): 2324.54573406189
相关系数(R): 0.994314355619232
相关系数之平方(R^2): 0.988661037790489
决定系数(DC): 0.988661031954045
卡方系数(Chi-Square): 1.26392717156154
F统计(F-Statistic): 646.737278349511

参数        最佳估算
----------        -------------
a                  1135.81794300922
b                  -4.50555230617841
k                  0.0890435442814436
c                  -0.259384460680176

feitianxue001 发表于 2007-4-9 17:27

这个方程好像不怎么适用2010,和2020年的数据差的很小。仁兄能不能用1STOPT自己给我找个方程,是自相关的方程,另外你有没有关于这个软件在水文模型中自动率定的例子,软件带的那个PDF文档里面的不够详细,没有学会用。

页: [1]
 

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.