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

『求助』帮忙拟合个曲线

[复制链接]
发表于 2006-3-31 21:11:45 | 显示全部楼层 |阅读模式 来自 大连理工大学
大家帮忙拟合个曲线吧,多谢了。
如果有人能拟合出正确的结果,并给出拟合方法,过程。
可以去ls-dyna版发个帖子,我会给您加10分。
谢谢!

本帖子中包含更多资源

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

×
发表于 2006-3-31 23:40:57 | 显示全部楼层 来自 新疆乌鲁木齐

Re:『求助』帮忙拟合个曲线——奖励10分

Simdroid开发平台
  1. Parameters p(1:5)[0.01,8];
  2. Variable x,y;
  3. Function y=p4*(1-p1/(p2*x))*exp(-p2*x)+p5*(1-p1/(p3*x))*exp(-p3*x)+.07*p1/x;
  4. data;
  5. //x   y
  6. .75 .1965
  7. .85 .135
  8. .95 .0967
  9. 1.05 .0716
  10. 1.15 .0545
  11. 1.25 .0424
  12. 1.35 .0337
  13. 1.45 .0272
  14. 1.55 .0223
  15. 1.65 .0185
  16. 1.75 .0155
  17. 1.85 .0131
  18. 1.95 .0112
  19. 2.05 .0096
  20. 2.15 .0083
  21. 2.25 .0073
  22. 2.35 .0064
  23. 2.45 .0056
  24. 2.55 .005
  25. 2.65 .0045
  26. 2.75 .004
  27. 2.85 .0036
  28. 2.95 .0032
  29. 3.00 .0031
复制代码
1STOPT答案如下(已经修改过的答案,由于未加对参变量的范围修正,此答案应为最佳):
  1. ω=0.103870605282661
  2. R1=5.85431435963133
  3. R2=2.09414859092986
  4. A=8.28857589992427
  5. B=0.445212479913354
复制代码
昨天没有用matlab试出结果,今天算出来了,列如下:
BTW:领分的事情就算了,能有值得讨论的问题已经是很幸福的事情了,分数除了满足一点点虚荣心什么也证明不了,不得也罢。况且这个问题在MATLAB版应该是不能得分的...^_^
MATLAB代码如下:
  1. function FitData
  2. clc
  3. format long
  4. x1=[.75:.15:3];
  5. y1=.0829./x1.^3;
  6. % v=[ω,R1,R2,A,B]
  7. yFit=inline(['v(4)*(1-v(1)./(v(2)*xFit)).*exp(-v(2)*xFit)+',...
  8. 'v(5)*(1-v(1)./(v(3)*xFit)).*exp(-v(3)*xFit)+0.07*v(1)./xFit'],'v','xFit');
  9. p=nlinfit(x1,y1,yFit,5*ones(1,5))
复制代码
运行结果:
  1. p =
  2.   Columns 1 through 4
  3.    0.10333909330306   2.08735649458603   5.82757636089033   0.44007383986685
  4.   Column 5
  5.    8.17703231677932
复制代码
1stopt计算结果图形示意如下,可以看出两个软件的结果基本比较接近,应为正解,验算部分列在最下边:

本帖子中包含更多资源

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

×
 楼主| 发表于 2006-4-1 10:44:30 | 显示全部楼层 来自 大连理工大学

Re:『求助』帮忙拟合个曲线——奖励10分

感谢bainhome。这个问题在ls-dyna版困扰了很多人啊。
 楼主| 发表于 2006-4-1 10:55:31 | 显示全部楼层 来自 大连理工大学

Re:『求助』帮忙拟合个曲线——奖励10分

我试了一下,怎么感觉不行。
代入你的得到的参数值  y=73.138649
还有就是,可以让所求的参数都是正数吗?

A=3.74    B=0.0323     R1= 4.15      R2=0.95       omega=0.3
这个是可以满足应用的结果。
bainhome能在帮忙看看吗?
多谢了。
发表于 2006-4-1 20:43:22 | 显示全部楼层 来自 新疆乌鲁木齐

Re:『求助』帮忙拟合个曲线——奖励10分

试一试这组,昨天答案有误,我把指数项负号落掉了,公式也抄错了...-_-|||。我修改了楼上贴中1stopt代码,这次结果应该可以。保险起见我算了三组,第一组参数范围[0,200];第二组[0.01,8];第三组[0,5]。
三组数据及MATLAB验算代码,MATLAB的结果我也算出来了,你可以再看看原来我上面的解法,我修改过了:
  1. function FitData
  2. clc
  3. v(1,:)=[0.103870604620035,2.09414858551244,5.85431435020337,...
  4. .445212476928508,8.28857585993659];
  5. v(2,:)=[0.101293035127223,2.06471057799648,5.78134496022111,...
  6. 0.426194052862568,7.99999999999993];
  7. v(3,:)=[0.028658944934503,4.80825596321816,1.4806338821421,...
  8. 5,0.181667842426016];
  9. for i=1:3
  10.     str=[num2str(v(1,4)),'*(1-',num2str(v(1,1)),'./(',num2str(v(1,2)),'*xFit)).*exp(-',num2str(v(1,2)),'*xFit)+',...
  11.         num2str(v(1,5)),'*(1-',num2str(v(1,1)),'./(',num2str(v(1,3)),'*xFit)).*exp(-',num2str(v(1,3)),'*xFit)+...
  12. 0.07*',num2str(v(1,1)),'./xFit'];
  13.     yFit=inline(str,'v','xFit');
  14.     xFit=.75:.01:3;
  15.     subplot(3,1,i)
  16.     plot(xFit,yFit(v(1,:),xFit),'r',xFit,.0829./xFit.^3,'b')
  17.     str0={'[0.00,200]';'[0.01,8.0]';'[0.00,5.0]'};
  18.     str1=['参数范围:',str0{i}];
  19.     xlabel(str1,'fontsize',16,'fontname','隶书','fontweight','bold')
  20. end
复制代码

本帖子中包含更多资源

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

×
 楼主| 发表于 2006-4-2 20:19:38 | 显示全部楼层 来自 大连理工大学

Re:『求助』帮忙拟合个曲线——奖励10分

严重感谢bainhome,呵呵
感谢您的热心帮忙,更感谢的是您向我介绍了1stOpt。
授人鱼,不如授人以渔啊!

我按照您的程序,自己做出来了。
但现在还有个问题请教。
如何在 x=0.75时,保证两个函数值相等。其余的值可以拟合的粗糙些。
因为此时,Y值最大,也是我最关心的。
发表于 2006-8-2 16:18:40 | 显示全部楼层 来自 陕西渭南

下面是你要的curvefit吗?

  曲线拟合是否良好,是有很多参数判别的。
以下应该是你需要比较良好的拟合了。
1、在x=0.75处,原函数值为0.19650370370370
   拟合f(xi)为0.196502
2、下面给出了拟合后各点的函数值
3、给出了拟合参数及区间估计
4、拟合优度参数
5、拟合曲线及残差曲线

model:
f(x) = a*(1-b/c*x)*exp(-c*x)+d*(1-b/e*x)*exp(-e*x)+0.07*b/x

Coefficients (with 99% confidence bounds):
      a  =A =        7.148  (6.349, 7.946)
       b =w =        0.7323  (0.277, 1.188)
       c =R1=        5.368  (5.177, 5.559)
       d =B =        0.08271  (0.007398, 0.158)
       e =R2=        0.7809  (0.6461, 0.9156)

拟合优度参数:
  SSE: 7.122e-005
  R-square: 0.9998
  Adjusted R-square: 0.9998
  RMSE: 0.0005677

xi      f(xi)
0.75        0.196502
0.76        0.188919
0.77        0.181697
0.78        0.174817
0.79        0.168261
0.8        0.162013
0.81        0.156057
0.82        0.150378
0.83        0.144962
0.84        0.139795
0.85        0.134864
0.86        0.130158
0.87        0.125664
0.88        0.121373
0.89        0.117274
0.9        0.113356
0.91        0.109612
0.92        0.106032
0.93        0.102608
0.94        0.0993319
0.95        0.0961968
0.96        0.0931954
0.97        0.0903211
0.98        0.0875675
0.99        0.0849288
   1        0.0823992
1.01        0.0799735
1.02        0.0776464
1.03        0.0754132
1.04        0.0732693
1.05        0.0712105
1.06        0.0692325
1.07        0.0673315
1.08        0.0655039
1.09        0.0637461
1.1        0.0620547
1.11        0.0604267
1.12        0.0588591
1.13        0.0573491
1.14        0.0558939
1.15        0.054491
1.16        0.053138
1.17        0.0518327
1.18        0.0505727
1.19        0.0493562
1.2        0.048181
1.21        0.0470455
1.22        0.0459477
1.23        0.044886
1.24        0.0438589
1.25        0.0428648
1.26        0.0419022
1.27        0.0409699
1.28        0.0400666
1.29        0.0391909
1.3        0.0383417
1.31        0.037518
1.32        0.0367187
1.33        0.0359427
1.34        0.0351891
1.35        0.034457
1.36        0.0337456
1.37        0.033054
1.38        0.0323814
1.39        0.0317271
1.4        0.0310904
1.41        0.0304706
1.42        0.0298671
1.43        0.0292793
1.44        0.0287065
1.45        0.0281483
1.46        0.0276041
1.47        0.0270733
1.48        0.0265556
1.49        0.0260505
1.5        0.0255575
1.51        0.0250761
1.52        0.0246061
1.53        0.0241471
1.54        0.0236985
1.55        0.0232603
1.56        0.0228319
1.57        0.0224131
1.58        0.0220035
1.59        0.021603
1.6        0.0212111
1.61        0.0208277
1.62        0.0204525
1.63        0.0200852
1.64        0.0197257
1.65        0.0193737
1.66        0.0190289
1.67        0.0186912
1.68        0.0183604
1.69        0.0180363
1.7        0.0177187
1.71        0.0174074
1.72        0.0171024
1.73        0.0168033
1.74        0.0165101
1.75        0.0162226
1.76        0.0159406
1.77        0.0156642
1.78        0.015393
1.79        0.0151269
1.8        0.014866
1.81        0.0146099
1.82        0.0143587
1.83        0.0141122
1.84        0.0138703
1.85        0.0136329
1.86        0.0133999
1.87        0.0131712
1.88        0.0129467
1.89        0.0127263
1.9        0.01251
1.91        0.0122977
1.92        0.0120892
1.93        0.0118845
1.94        0.0116835
1.95        0.0114862
1.96        0.0112924
1.97        0.0111021
1.98        0.0109153
1.99        0.0107319
   2        0.0105517
2.01        0.0103748
2.02        0.0102011
2.03        0.0100305
2.04        0.00986301
2.05        0.0096985
2.06        0.00953696
2.07        0.00937832
2.08        0.00922253
2.09        0.00906955
2.1        0.00891933
2.11        0.00877181
2.12        0.00862696
2.13        0.00848473
2.14        0.00834507
2.15        0.00820793
2.16        0.00807329
2.17        0.00794109
2.18        0.00781129
2.19        0.00768387
2.2        0.00755877
2.21        0.00743595
2.22        0.00731539
2.23        0.00719705
2.24        0.00708089
2.25        0.00696687
2.26        0.00685496
2.27        0.00674514
2.28        0.00663735
2.29        0.00653158
2.3        0.00642779
2.31        0.00632596
2.32        0.00622604
2.33        0.00612801
2.34        0.00603185
2.35        0.00593751
2.36        0.00584499
2.37        0.00575423
2.38        0.00566523
2.39        0.00557795
2.4        0.00549237
2.41        0.00540845
2.42        0.00532619
2.43        0.00524554
2.44        0.00516649
2.45        0.00508901
2.46        0.00501308
2.47        0.00493867
2.48        0.00486576
2.49        0.00479434
2.5        0.00472437
2.51        0.00465583
2.52        0.00458871
2.53        0.00452298
2.54        0.00445863
2.55        0.00439562
2.56        0.00433394
2.57        0.00427358
2.58        0.0042145
2.59        0.0041567
2.6        0.00410015
2.61        0.00404483
2.62        0.00399073
2.63        0.00393783
2.64        0.0038861
2.65        0.00383554
2.66        0.00378612
2.67        0.00373783
2.68        0.00369065
2.69        0.00364456
2.7        0.00359955
2.71        0.0035556
2.72        0.00351269
2.73        0.00347081
2.74        0.00342995
2.75        0.00339008
2.76        0.0033512
2.77        0.00331329
2.78        0.00327633
2.79        0.00324031
2.8        0.00320521
2.81        0.00317102
2.82        0.00313774
2.83        0.00310533
2.84        0.00307379
2.85        0.00304311
2.86        0.00301328
2.87        0.00298427
2.88        0.00295608
2.89        0.0029287
2.9        0.00290211
2.91        0.0028763
2.92        0.00285125
2.93        0.00282697
2.94        0.00280342
2.95        0.00278061
2.96        0.00275853
2.97        0.00273715
2.98        0.00271647
2.99        0.00269648
   3        0.00267716

评分

1

查看全部评分

发表于 2006-8-2 17:29:18 | 显示全部楼层 来自 北京西城
用1stOpt,按下列代码,可保证拟合后曲线通过指定点:
************************************
AutoData x = 0.75:0.01:3, y = 0.0829/x^3;
Constant n = 225;
Parameter a, b, c, d, e;
MinFunction  Sum(i=1:n)((a*(1-b/c*x)*exp(-c*x)+d*(1-b/e*x)*exp(-e*x)+0.07*b/x-y)^2);
             a*(1-b/c*0.75)*exp(-c*0.75)+d*(1-b/e*0.75)*exp(-e*0.75)+0.07*b/0.75=0.0829/0.75^3;
*********************************
可得两组最佳参数:
1:
a= 0.418052715383162,
b= 0.111674950647592,
c= 2.02226536220775,
d= 7.56154343332161,
e= 5.77303095975291;

2:
a= 7.56146559428503,
b= 0.111662804344447,
c= 5.77301004015884,
d= 0.418046380091523,
e= 2.02224395604015;

指定点:y=0.196503703703704,
拟合计算点: y=0.196503703692071

评分

1

查看全部评分

发表于 2006-8-2 17:33:32 | 显示全部楼层 来自 北京西城
代码应如下:

AutoData x = 0.75:0.01:3, y = 0.0829/x^3;
Constant n = 225;
Parameter a, b, c, d, e;
MinFunction  Sum(i=1:n)((a*(1-b/c*x)*exp(-c*x)+d*(1-b/e*x)*exp(-e*x)+0.07*b/x-y)^2);
             a*(1-b/c*0.75)*exp(-c*0.75)+d*(1-b/e*0.75)*exp(-e*0.75)+0.07*b/0.75=0.0829/0.75^3;
发表于 2006-8-2 17:37:30 | 显示全部楼层 来自 北京西城
中括号自动消失了,不知何故!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 23:31 , Processed in 0.071694 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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