声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: dingd

[1stopt] [原创]1stOpt优化应用 - 与Matlab对比!

[复制链接]
发表于 2007-4-29 00:01 | 显示全部楼层

请教

我才找到的这个软件,用它求非线性方程参数,为什么每次得出得参数差好多呀:'( 郁闷死了
Parameter g1,g2,a;
Variable y, x;
Function   y = -g1-g2*exp(-a*g2)-lnx+g2-3.708+x*exp(-a*g1);
Data;
//   y               x
      -13.4323E0     3.3405E0
      -12.4625E0     5.7856E0
      -12.4347E0     6.0955E0
      -12.3667E0     6.5777E0
      -12.3588E0     6.8532E0
是因为点太少了嘛?急呀,马上要交论文了
回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2007-4-30 15:50 | 显示全部楼层
1: 将 lnx 改为 ln(x)
2: 公式的形式决定了有无穷组解:

原公式: y = -g1-g2*exp(-a*g2)-ln(x)+g2-3.708+x*exp(-a*g1)可改写为:
y = g3-ln(x)+x*g4
其中
g3=-g1-g2*exp(-a*g2)+g2-3.708
g4=exp(-a*g1)

拟合上述公式得唯一解:g3 = -13.9385784379896,g4 =0.531029976091689

得方程组:
-13.9385784379896=-g1-g2*exp(-a*g2)+g2-3.708
0.531029976091689=exp(-a*g1)

三个变量两组方程,自然不会有唯一解。
发表于 2007-5-16 20:31 | 显示全部楼层
请教dingd,我在用1stopt拟合时也碰到和snowjery同样的问题,‘公式的形式决定了有无穷组解’具体怎么做??谢谢:@)
发表于 2007-5-16 20:35 | 显示全部楼层
我在用一个公式拟合时相关系数不是太好,请问如何优化公式,使得相关系数更高??谢谢
 楼主| 发表于 2007-5-17 21:09 | 显示全部楼层
把具体问题及公式、数据放上来才好解答啊!
发表于 2007-5-18 16:52 | 显示全部楼层

请教

Parameter a,b,c,d,f,g,h;
Variable x,y;
Function  y=c*(1-d*exp(a*x)+f*exp(b*x)+h*exp(g*x));
Data;      
1      321.21
2      448.48
3      472.73
4       554
5       624.24
6       725
7       800
8       856
9       895
10      910
14      930
21      979
28      993
35      1018
42      1013
60      1057
120     1075.5
150     1063
180     1090

数据和公式如上面所示,每次拟合参数的值不相同,但相关系数相同,请问如何解决??还有就是上面的公式如果不太合适,如何优化,使得相关系数更高??谢谢!!
发表于 2007-5-22 14:37 | 显示全部楼层

请教如何用1stopt拟合

拟合内容见附件!谢谢

work.doc

34 KB, 下载次数: 16

 楼主| 发表于 2007-5-22 16:01 | 显示全部楼层
param1        .468632718487873
param2        -.244639115513389
param3        -.183539634047734
param4        18.9117620487394
param5        .220098982354945
       
均方差(RMSE)        3.69475253981371E-02
残差平方和(SSE)        8.1907177982759E-03
相关系数(R)        .999023582703742
相关系数之平方(R^2)        .998048118798221
发表于 2007-5-24 16:27 | 显示全部楼层

哇~~~~~

都是前辈啊。。  我是新来的。。  哈哈  学习 学习一下  :)
发表于 2007-5-24 18:22 | 显示全部楼层

用处不是很大!

稍复杂的情况就不能用了,比如积分等
发表于 2007-12-20 19:03 | 显示全部楼层

初次接触lsopt,有个问题想请教

请问,如何在一张图上拟合两组数据,即生成两条曲线~~
 楼主| 发表于 2007-12-20 20:38 | 显示全部楼层


1stOpt支持外接C++、Fortran等,可以发挥自己的编程能力,将积分等复杂部分自己编写,用1stOpt强大的优化能力就OK了。若编程一点都不懂,哪就没办法了。
发表于 2008-3-29 22:58 | 显示全部楼层

请问Dingd兄问题

求解附件中的非线性方程组,问题为什么在1stopt中解出来的值很奇怪
Constant N=81870000000, M=12280000000,k=1,X=5.5,tuo=1,S=12,si=0.12,r=0.0488;
Function
si=(V*(((N+k*M-M*k*normcdf(((log(k*V/(N*X))+(r+1/2*sigma*sigma)*tao)/(sigma*sqrt(tao)))))/(N*(N+k*M))))/S)*sigma;
S*N=V-M*((1/(N+k*M))*(k*V*normcdf(((log(k*V/(N*X))+(r+1/2*sigma*sigma)*tao)/(sigma*sqrt(tao))))-exp(-r*tao)*N*X*(normcdf(((log(k*V/(N*X))+(r+1/2*sigma*sigma)*tao)/(sigma*sqrt(tao)))-sigma*sqrt(tao)))));

这里M与公式中n一样意思。
怎么运行结果会错误
sigma明显应该比sigmas大才对
一次结果如下:
迭代数: 839
计算用时(时:分:秒:毫秒): 00:00:03:188
计算中止原因: 达到收敛判定标准
优化算法: 遗传算法
函数表达式 1: 1.55-(v*(((25412000+1*3200000-3200000*1*normcdf(((log(1*v/(25412000*52))+(0.0488+1/2*sigma*sigma)*7)
            /(sigma*sqrt(7)))))/(25412000*(25412000+1*3200000))))/24.65)*sigma
         2: 24.65*25412000-v+3200000*((1/(25412000+1*3200000))*(1*v*normcdf(((log(1*v/(25412000*52))+(0.0488+1/2
            *sigma*sigma)*7)/(sigma*sqrt(7))))-exp(-0.0488*7)*25412000*52*(normcdf(((log(1*v/(25412000*52))+(0.0488
            +1/2*sigma*sigma)*7)/(sigma*sqrt(7)))-sigma*sqrt(7)))))
目标函数值: 8502.57205479832
v: 521377667.955105
sigma: -5365.93202516455 (肯定为正数才对啊)

另外运行一次又得:
迭代数: 43
计算用时(时:分:秒:毫秒): 00:00:02:16
计算中止原因: 达到收敛判定标准
优化算法: 遗传算法
函数表达式 1: 1.55-(v*(((25412000+1*3200000-3200000*1*normcdf(((log(1*v/(25412000*52))+(0.0488+1/2*sigma*sigma)*7)
            /(sigma*sqrt(7)))))/(25412000*(25412000+1*3200000))))/24.65)*sigma
         2: 24.65*25412000-v+3200000*((1/(25412000+1*3200000))*(1*v*normcdf(((log(1*v/(25412000*52))+(0.0488+1/2
            *sigma*sigma)*7)/(sigma*sqrt(7))))-exp(-0.0488*7)*25412000*52*(normcdf(((log(1*v/(25412000*52))+(0.0488
            +1/2*sigma*sigma)*7)/(sigma*sqrt(7)))-sigma*sqrt(7)))))
目标函数值: 18069.6833970072
v: 521399420.814364
sigma: -420.558088954254(肯定为正数才对啊)
====== 计算结束 ======

其中.doc

39.5 KB, 下载次数: 4

 楼主| 发表于 2008-3-30 19:16 | 显示全部楼层
1:请看你在Matlab版的相同问题记答案:
http://forum.vibunion.com/forum/ ... =page%3D1#pid326203
2:与你在Matlab版问题相比,系数有所改变,下面是结果:

v: 1065456210757
sigma: 0.127240160166278
发表于 2009-1-16 08:59 | 显示全部楼层
老帖子真好啊,学习中
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-4-29 11:36 , Processed in 0.066850 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表