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

如何在MATLAB中对二维变量拟合出二阶近似模型

[复制链接]
发表于 2009-5-7 20:41:45 | 显示全部楼层 |阅读模式 来自 江苏南京
本帖最后由 shxseu 于 2009-5-7 21:04 编辑

向大家请教一个问题,现在有一组样本,输入是x1和x2,输出是y。想通过这组样本拟合出它们的二阶近似模型。即 y=a0+a1*x1+a2*x2+a3*x1*x2+a4*x1^2+a5*x2^2;    需要确定出上述方程中的待定系数a0,a1.,...a5。matlab教材中我只看到有一维非线性曲线拟合的,却没有介绍二维的怎么去拟合。请高手指点一下这个问题该怎么去解决,谢谢!

下面给出我所采集的样本:


x1         x2         y
0.9        2        2.87622
0.9        2.25        2.51430
0.9        2.5        2.20741
0.9        2.75        1.91694
0.9        3        1.63052
0.9        3.25        1.33444
0.9        3.5        0.99332
0.9        3.75        0.53562
1.0        2        3.55710
1.0        2.25        3.16144
1.0        2.5        2.78924
1.0        2.75        2.45810
1.0        3        2.18373
1.0        3.25        1.88885
1.0        3.5        1.58805
1.0        3.75        1.25967
1.0        4        1.00250
1.1        2        4.02657
1.1        2.25        3.77473
1.1        2.5        3.64869
1.1        2.75        2.99724
1.1        3        2.67150
1.1        3.25        2.39226
1.1        3.5        2.11451
1.1        3.75        1.80183
1.1        4        1.48954
1.1        4.25        1.10353
1.2        2        4.85453
1.2        2.25        4.43291
1.2        2.5        3.93082
1.2        2.75        3.56997
1.2        3        3.22687
1.2        3.25        2.89602
1.2        3.5        2.55901
1.2        3.75        2.26810
1.2        4        1.93335
1.2        4.25        1.66538
1.3        2        5.73742
1.3        2.25        5.11424
1.3        2.5        4.58052
1.3        2.75        4.13585
1.3        3        3.74415
1.3        3.25        3.38471
1.3        3.5        3.10349
1.3        3.75        2.75892
1.3        4        2.46643
1.3        4.25        2.17349
1.4        2        6.48422
1.4        2.25        5.84135
1.4        2.5        5.28233
1.4        2.75        4.75660
1.4        3        4.34507
1.4        3.25        3.95266
1.4        3.5        3.61326
1.4        3.75        3.26699
1.4        4        2.68282
1.4        4.25        2.69627
1.5        2        7.34437
1.5        2.25        6.65920
1.5        2.5        5.94227
1.5        2.75        5.38550
1.5        3        5.04734
1.5        3.25        4.48036
1.5        3.5        4.19532
1.5        3.75        3.80383
1.5        4        3.44003
1.5        4.25        3.16876
1.6        2        8.29034
1.6        2.25        7.38850
1.6        2.5        6.72070
1.6        2.75        6.15169
1.6        3        5.62019
1.6        3.25        5.17267
1.6        3.5        4.79602
1.6        3.75        4.36552
1.6        4        3.95263
1.6        4.25        3.67187
发表于 2009-5-7 21:10:11 | 显示全部楼层 来自 宁夏银川
Simdroid开发平台
均方差(RMSE): 0.0961274222030836
残差平方和(SSE): 0.711517060054562
相关系数(R): 0.998349249516723
相关系数之平方(R^2): 0.996701224010603
决定系数(DC): 0.996701224010604
卡方系数(Chi-Square): 0.166159320981922
F统计(F-Statistic): 4304.6269421283

参数        最佳估算
----------        -------------
a1                 6.7061124660432
a2                 -1.52586113887182
a3                 -1.2549678478502
a4                 1.20211642651201
a5                 0.25396360407328
a0                 0.223963543587177
回复 不支持

使用道具 举报

 楼主| 发表于 2009-5-8 09:54:44 | 显示全部楼层 来自 江苏南京
均方差(RMSE): 0.0961274222030836
残差平方和(SSE): 0.711517060054562
相关系数(R): 0.998349249516723
相关系数之平方(R^2): 0.996701224010603
决定系数(DC): 0.996701224010604
卡方系数(Chi-Square): 0.1 ...
wanglei5201118 发表于 2009-5-7 21:10

非常感谢!
回复 不支持

使用道具 举报

发表于 2010-8-30 16:21:47 | 显示全部楼层 来自 北京
2# wanglei5201118
请问这些参数是如何算出来的?是手算?还是某个软件计算所得?刚刚接触还不是很了解。。。
回复 不支持

使用道具 举报

发表于 2010-8-30 16:51:28 | 显示全部楼层 来自 北京
本帖最后由 qibbxxt 于 2010-8-30 16:54 编辑

以下是用matlab计算的

  1. clear;clc;close all
  2. data=[0.9        2        2.87622
  3. 0.9        2.25        2.51430
  4. 0.9        2.5        2.20741
  5. 0.9        2.75        1.91694
  6. 0.9        3        1.63052
  7. 0.9        3.25        1.33444
  8. 0.9        3.5        0.99332
  9. 0.9        3.75        0.53562
  10. 1.0        2        3.55710
  11. 1.0        2.25        3.16144
  12. 1.0        2.5        2.78924
  13. 1.0        2.75        2.45810
  14. 1.0        3        2.18373
  15. 1.0        3.25        1.88885
  16. 1.0        3.5        1.58805
  17. 1.0        3.75        1.25967
  18. 1.0        4        1.00250
  19. 1.1        2        4.02657
  20. 1.1        2.25        3.77473
  21. 1.1        2.5        3.64869
  22. 1.1        2.75        2.99724
  23. 1.1        3        2.67150
  24. 1.1        3.25        2.39226
  25. 1.1        3.5        2.11451
  26. 1.1        3.75        1.80183
  27. 1.1        4        1.48954
  28. 1.1        4.25        1.10353
  29. 1.2        2        4.85453
  30. 1.2        2.25        4.43291
  31. 1.2        2.5        3.93082
  32. 1.2        2.75        3.56997
  33. 1.2        3        3.22687
  34. 1.2        3.25        2.89602
  35. 1.2        3.5        2.55901
  36. 1.2        3.75        2.26810
  37. 1.2        4        1.93335
  38. 1.2        4.25        1.66538
  39. 1.3        2        5.73742
  40. 1.3        2.25        5.11424
  41. 1.3        2.5        4.58052
  42. 1.3        2.75        4.13585
  43. 1.3        3        3.74415
  44. 1.3        3.25        3.38471
  45. 1.3        3.5        3.10349
  46. 1.3        3.75        2.75892
  47. 1.3        4        2.46643
  48. 1.3        4.25        2.17349
  49. 1.4        2        6.48422
  50. 1.4        2.25        5.84135
  51. 1.4        2.5        5.28233
  52. 1.4        2.75        4.75660
  53. 1.4        3        4.34507
  54. 1.4        3.25        3.95266
  55. 1.4        3.5        3.61326
  56. 1.4        3.75        3.26699
  57. 1.4        4        2.68282
  58. 1.4        4.25        2.69627
  59. 1.5        2        7.34437
  60. 1.5        2.25        6.65920
  61. 1.5        2.5        5.94227
  62. 1.5        2.75        5.38550
  63. 1.5        3        5.04734
  64. 1.5        3.25        4.48036
  65. 1.5        3.5        4.19532
  66. 1.5        3.75        3.80383
  67. 1.5        4        3.44003
  68. 1.5        4.25        3.16876
  69. 1.6        2        8.29034
  70. 1.6        2.25        7.38850
  71. 1.6        2.5        6.72070
  72. 1.6        2.75        6.15169
  73. 1.6        3        5.62019
  74. 1.6        3.25        5.17267
  75. 1.6        3.5        4.79602
  76. 1.6        3.75        4.36552
  77. 1.6        4        3.95263
  78. 1.6        4.25        3.67187];
  79. x1=data(:,1);
  80. x2=data(:,2);
  81. y=data(:,3);
  82. X=[ones(length(x1),1),x1,x2,x1.*x2,x1.^2,x2.^2];
  83. [b,bint,r,rint,stats] = regress(y,X)
复制代码
结果如下
b =
    0.2240
    6.7061
   -1.5259
   -1.2550
    1.2021
    0.2540
分别对用的是a0,a1,a2,a3,a4,a5,还有一些返回参数在bint,r,rint,stats中

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-8-31 10:52:10 | 显示全部楼层 来自 北京
5# qibbxxt
非常感谢版主,帮我解决了一个大问题。。。:handshake
回复 不支持

使用道具 举报

发表于 2010-8-31 11:12:12 | 显示全部楼层 来自 黑龙江哈尔滨
好东西,又进步了

评分

1

查看全部评分

回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-6 21:29 , Processed in 0.052396 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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