找回密码
 注册
Simdroid-非首页
查看: 226|回复: 8

[1stOpt] 用参数方程或隐函数拟合数据

[复制链接]
发表于 2008-6-20 13:02:11 | 显示全部楼层 |阅读模式 来自 美国
要对一组x,y数据进行拟合,拟合方程是如下参数方程形式
x=f(L),
y=g(L),
解不出来显示形式y=y(x)或x=x(L).

请问如何用1stOpt或任何其他工具来做拟合。

s,a1,a2,a3,b1,b2,b3是待定参数。

[ 本帖最后由 weitong 于 2008-6-25 10:26 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2008-6-21 18:22:15 | 显示全部楼层 来自 北京
Simdroid开发平台
1stOpt有个命令:ParVariable,可以专门处理这种缺失中间变量的问题。
回复 不支持

使用道具 举报

 楼主| 发表于 2008-6-22 05:46:44 | 显示全部楼层 来自 美国
请具体举例说明。多谢。
回复 不支持

使用道具 举报

发表于 2008-6-23 16:23:14 | 显示全部楼层 来自 北京海淀
你的两个公式左边都是y,其中一个应该是x吧?
下面是个实例,需与SharedModel结合使用(老版本不敢担保能正确运行):

Parameter R ,B,x0,y0;
ParVariable t;
Variable x, y;
SharedModel;
Function x = R*(cos(t)+(t-B)*sin(t))+x0;
Function y = R*(sin(t)-(t-b)*cos(t))+y0;
Data;
15.5910        86.2142
24.6601        83.7114
33.3732        80.2618
49.3445        70.7216
62.7992        58.0891
68.3962        50.8058
73.1584        42.9946
79.9955        26.1718
83.0531        8.4225
回复 不支持

使用道具 举报

 楼主| 发表于 2008-6-25 10:22:07 | 显示全部楼层 来自 美国
不好意思,第二个是x。

多谢。我试试。
回复 不支持

使用道具 举报

 楼主| 发表于 2008-6-25 11:22:19 | 显示全部楼层 来自 美国
迭代数: 16
计算用时(时:分:秒:微秒): 00:00:01:172
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判定标准
均方差(RMSE): 24.4851332036679
残差平方和(SSE): 10791.3914640244
相关系数(R): 0.914755795566993
相关系数之平方(R^2): 0.836778165523402
决定系数(DC): 0.836778165523402
F统计(F-Statistic): 1

参数                  最佳估算
--------------------        -------------
t                  2.73169953009845
r                  2.50317497875691
b                  0.724030952332493
x0                 54.7787726064432
y0                 50.7701875200851

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

文件:Data file - 1
No        实测x        计算x        实测y        计算y
1        15.591        54.4856888883948        86.2142        56.3769777773365
2        24.6601        54.4856888883948        83.7114        56.3769777773365
3        33.3732        54.4856888883948        80.2618        56.3769777773365
4        49.3445        54.4856888883948        70.7216        56.3769777773365
5        62.7992        54.4856888883948        58.0891        56.3769777773365
6        68.3962        54.4856888883948        50.8058        56.3769777773365
7        73.1584        54.4856888883948        42.9946        56.3769777773365
8        79.9955        54.4856888883948        26.1718        56.3769777773365
9        83.0531        54.4856888883948        8.4225        56.3769777773365

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2008-6-25 11:33:21 | 显示全部楼层 来自 北京海淀
不知你用的哪个版本?是否支持ParVariable和SharedModel?
下面是例子的结果:

均方差(RMSE): 1.34537356270244E-5
残差平方和(SSE): 3.2580540417936E-9
相关系数(R): 0.999999999999975
相关系数之平方(R^2): 0.999999999999951
决定系数(DC): 0.999999999999951
F统计(F-Statistic): -2008242960984.38

参数                  最佳估算
--------------------        -------------
r                  3.1995227671986
b                  -24.4385000174272
x0                 -0.00032965248461091
y0                 0.000374652430465203
t0                 2.92615423123336
t1                 2.81843505829979
t2                 2.71071459521477
t3                 2.49527589843761
t4                 2.27983592536782
t5                 2.17211673605045
t6                 2.0643969924754
t7                 1.84895788756821
t8                 1.6335204748713

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

文件:Data file - 1
No        实测x        计算x        实测y        计算y
1        15.591        15.5909970736633        86.2142        86.2141866252252
2        24.6601        24.6601113317204        83.7114        83.7114338348863
3        33.3732        33.373187219426        80.2618        80.2617721959986
4        49.3445        49.3445110215649        70.7216        70.7216146089185
5        62.7992        62.7991966119381        58.0891        58.0890970931054
6        68.3962        68.396185457749        50.8058        50.8057900225526
7        73.1584        73.1584050648767        42.9946        42.994602724725
8        79.9955        79.9955112434135        26.1718        26.1718032105108
9        83.0531        83.0530949757003        8.4225        8.42249968428047
回复 不支持

使用道具 举报

 楼主| 发表于 2008-6-25 11:50:42 | 显示全部楼层 来自 美国
我用的是2.0版本。正式注册版。我看它里面的函数有 sharemodel,还有一个VarPar,不知和你的ParVariable是否一样。

[ 本帖最后由 weitong 于 2008-6-25 11:55 编辑 ]
回复 不支持

使用道具 举报

发表于 2009-1-20 18:08:03 | 显示全部楼层 来自 宁夏银川
ParVariable 可以设置多个中间变量么,比如两个,即x=f1(u,v),y=f2(u,v)么?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-24 02:22 , Processed in 0.055828 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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