声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3995|回复: 5

[1stopt] 非线性拟合的1stOpt与Lingo实现[转贴]

[复制链接]
发表于 2007-6-22 06:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
非线性拟合也是一优化问题,即残差平方和最小,Lingo因而可用于曲线拟合。Lingo也不需要赋初值。
拟合数据:
  1. X = [0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16],

  2. Y = [30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4];

  3. 拟合公式:

  4. y = A1*(Exp(-A2*X)-Exp(-A3*X))



  5. Lingo代码:

  6. Model:

  7.    Sets:

  8.        BAC/R1..R23/:X,Y;

  9.    EndSets

  10.    Data:

  11.        X = 0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16;

  12.        Y = 30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4;

  13.    EndData

  14.    Min = @Sum(BAC: A1*(@Exp(-A2*X)-@Exp(-A3*X))-y)^2);

  15. End
复制代码
1stOpt代码:
  1. Constant X = [0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16],

  2.              Y = [30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4];

  3. MinFunction Sum(i=1:23,X,Y)((A1*(Exp(-A2*X)-Exp(-A3*X))-y)^2);
复制代码
Lingo不需初值,成功率不是很高(有兴趣可自己试试),还有如果想赋初值,在Lingo里不知如何设定。1stOpt也不需初值,本题成功率为100%。有兴趣者也可用其它数学工具练练手,对比一下。

来自:simwe--shamohu
回复
分享到:

使用道具 举报

发表于 2007-6-30 09:31 | 显示全部楼层
Lingo是什么软件
 楼主| 发表于 2007-7-1 20:53 | 显示全部楼层
发表于 2007-7-3 09:30 | 显示全部楼层
谢谢指点:@D
发表于 2007-9-19 22:06 | 显示全部楼层
:lol 上面的lingo程序少了一个括号?
 楼主| 发表于 2007-9-21 01:50 | 显示全部楼层
原帖由 woodballhead 于 2007-9-19 22:06 发表
:lol 上面的lingo程序少了一个括号?


真仔细,确实少了一个

[ 本帖最后由 suffer 于 2007-9-21 01:55 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-15 17:42 , Processed in 0.076963 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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