回复 #29 dingd 的帖子
这个确实很精确的,能发把代码发上来,我没有你说的软件,所以想用matlab做一个看看先 原帖由 无水1324 于 2007-7-4 09:42 发表 http://www.chinavib.com/forum/images/common/back.gif1stOpt的程序是怎么样的,matlab应该也可以计算的吧?还有谢谢楼上的两位解答
1stOpt是一个软件?知道了采用的是什么优化算法,matlab应该也可以吧 1stOpt是个国产的优化软件,本论坛已给出了不少实例介绍。理论上讲,Matlab也能做这种拟合,但缺点是不好定初值,参数一多(如上例),头都会炸的。1stOpt全局优化能力远胜于Matlab,不用猜初值,直接算就行。
回复 #33 dingd 的帖子
matlab仅是一种计算工具,不好比较吧。1stOpt肯定也是有自己的算法或是办法定初值的,如果将这套算法移植到matlab也能行得通吧!
Anyway,支持一下国产软件! 用什么三角函数、用几个,这是人工自己定的。因为原曲线看上去就像几个周期三角函数的绝对值叠加,试几下就出来了。关键是1stOpt能将想法马上算出来。下面是1stOpt代码,非常简单:
Function y=a+b*abs(sin(d*x+c))+e*abs(sin(f*x+g))+p1*abs(cos(p2*x+p3));
Data;
1 1.4553
2 1.5213
3 1.583
4 1.6399
5 1.6916
6 1.7376
7 1.7776
8 1.8112
9 1.8378
10 1.8572
11 1.869
12 1.8729
13 1.8686
14 1.8559
15 1.8346
16 1.8045
17 1.7657
18 1.8104
19 1.8463
20 1.8733
21 1.8917
22 1.9014
23 1.9027
24 1.8959
25 1.8813
26 1.859
27 1.8296
28 1.7933
29 1.7506
30 1.7019
31 1.6476
32 1.5881
33 1.5239
34 1.4553
35 1.5213
36 1.583
37 1.6399
38 1.6916
39 1.7376
40 1.7776
41 1.8112
42 1.8378
43 1.8572
44 1.869
45 1.8729
46 1.8686
47 1.8559
48 1.8346
49 1.8045
50 1.7657
51 1.718
52 1.754
53 1.7812
54 1.7999
55 1.81
56 1.8119
57 1.8058
58 1.792
59 1.7708
60 1.7426
61 1.7078
62 1.6669
63 1.6203
64 1.5683
65 1.5116
66 1.4505
67 1.3854
68 1.4553
69 1.5213
70 1.583
71 1.6399
72 1.6916
73 1.7376
74 1.7776
75 1.8112
76 1.8378
77 1.8572
78 1.869
79 1.8729
80 1.8686
81 1.8559
82 1.8346
83 1.8045
84 1.7657
85 1.718
86 1.754
87 1.7812
88 1.7999
89 1.81
90 1.8119
91 1.8058
92 1.792
93 1.7708
94 1.7426
95 1.7078
96 1.6669
97 1.6203
98 1.5683
99 1.5116
100 1.4505
101 1.3854
回复 #34 zhlong 的帖子
支持国产,我一直是这样做的,不过确实没有用过这个软件哈![ 本帖最后由 无水1324 于 2007-7-4 15:26 编辑 ]
回复 #36 无水1324 的帖子
小声地问一下,你们用的都是正版的软件吗?买一个要多少钱哈 ^_^,第一次听说这个软件,好学吗,不知道可以下载不网上,找着看听这意思感觉这软件还不错 已经用最新的2.5版了,功能更强大了,也更好用了。当初学生版不到1000元。大家自己试试就会发现这个软件的优点了。
回复 #39 dingd 的帖子
恩,以后遇到这样的问题的时候一定试试 http://forum.vibunion.com/forum/thread-46964-1-1.html还有这个里面讲得也不错的
回复 #27 dingd 的帖子
昨天我也用了1stopt,但是效果和你的差远了,你做的这个效果真好!谢谢 谢谢大家的帮助!感觉真好!我刚才还用F展开呢!算了半天感觉还是有点不对,现在就好了 大家讨论一下有助于你的思路,欢迎常来 对于公式y=a+b*abs(sin(d*x+c))+e*abs(sin(f*x+g))+p1*abs(cos(p2*x+p3));
目标函数(均方差RMSE)是唯一的,为9.59015006131471E-03,但参数组值却不是唯一的,也即有多个全局最优点,看下面两组:
第一组:
a 1.01726836084128
b -8.60375713951182E-02
d 3.45382613290422E-02
c -7.1524357735207
e .445816790917051
f -9.23298169769648E-02
g -1.57107684206456
p1 .778549955538741
p2 9.39630650689395E-02
p3 10.9634957013511
均方差(RMSE) 9.59015006131471E-03
残差平方和(SSE) 9.28906879805198E-03
相关系数(R) .997343825316038
相关系数之平方(R^2) .994694705896028
第二组:
a 1.01726808240024
b 0.778550304443252
d 3.23555570288149
c 3.10951493061989
e -0.0860376817320175
f 0.0345382710397379
g 2.27234015871887
p1 0.445816890106156
p2 3.23392247002337
p3 -3.14131203740622
均方差(RMSE): 0.00959015006386168
残差平方和(SSE): 0.00928906880298601
相关系数(R): 0.997343825314625
相关系数之平方(R^2): 0.994694705893209
虽然最终RMSE一样,但将密度加大后画出的图形则完全不一样,所以,应根据实际情况选取一组。