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

MATLAB曲面拟合(万分紧急)

[复制链接]
发表于 2010-1-12 16:06:37 | 显示全部楼层 |阅读模式 来自 宁波大学
花了3个小时对下面三列数据进行曲面拟合,但还是有问题,往哪位好心大哥帮一下小弟,万分感谢:
x        y      z
30000    0.1    26.089
40000    0.1    27.296
50000    0.1    28.674
60000    0.1    29.62
70000    0.1    30.683
80000    0.1    31.822
90000    0.1    33.085
100000    0.1    34.368
150000    0.1    39.658
200000    0.1    45.41
300000    0.1    55.944
400000    0.1    66.674
30000    0.2    40.601
40000    0.2    43.397
50000    0.2    45.556
60000    0.2    47.886
70000    0.2    50.016
80000    0.2    52.333
90000    0.2    54.723
100000    0.2    56.695
150000    0.2    67.77
200000    0.2    78.863
300000    0.2    101.39
400000    0.2    123.55
30000    0.3    59.612
40000    0.3    63.042
50000    0.3    67.501
60000    0.3    70.822
70000    0.3    74.365
80000    0.3    78.897
90000    0.3    82.267
100000    0.3    86.266
150000    0.3    104.91
200000    0.3    124.51
300000    0.3    160.11
400000    0.3    199
30000    0.4    80.046
40000    0.4    87.172
50000    0.4    93.218
60000    0.4    99.428
70000    0.4    104.68
80000    0.4    109.99
90000    0.4    116.52
100000    0.4    120.83
150000    0.4    149.83
200000    0.4    177.85
300000    0.4    233.38
400000    0.4    291.03
30000    0.5    105.36
40000    0.5    115.55
50000    0.5    123.92
60000    0.5    128.98
70000    0.5    138.13
80000    0.5    146.72
90000    0.5    154.47
100000    0.5    162.1
150000    0.5    202.44
200000    0.5    240.11
300000    0.5    321.26
400000    0.5    397.77
30000    0.6    134.41
40000    0.6    146.25
50000    0.6    157.26
60000    0.6    168.79
70000    0.6    176.4
80000    0.6    187.69
90000    0.6    196.03
100000    0.6    208.16
150000    0.6    261.79
200000    0.6    313.34
300000    0.6    416.67
400000    0.6    522.86
30000    0.7    166.6
40000    0.7    180.1
50000    0.7    193.71
60000    0.7    205.08
70000    0.7    220.02
80000    0.7    234.76
90000    0.7    247.32
100000    0.7    261.51
150000    0.7    322.72
200000    0.7    391.68
300000    0.7    527.84
400000    0.7    660.82
30000    0.8    202.92
40000    0.8    221.02
50000    0.8    234.81
60000    0.8    253.16
70000    0.8    270.62
80000    0.8    285.13
90000    0.8    298.29
100000    0.8    317.75
150000    0.8    402.81
200000    0.8    479.84
300000    0.8    643.82
400000    0.8    815.89
30000    0.9    239.51
40000    0.9    263.99
50000    0.9    281.77
60000    0.9    302.44
70000    0.9    323.15
80000    0.9    342.97
90000    0.9    362.54
100000    0.9    384.27
150000    0.9    483.48
200000    0.9    579.86
300000    0.9    765.01
400000    0.9    989.15
发表于 2010-1-13 05:05:39 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
你要怎么样拟合?拟合公式是什么?最好把你的代码贴出来,并且说明有什么问题。
回复 不支持

使用道具 举报

发表于 2010-1-13 08:03:39 | 显示全部楼层 来自 四川雅安
本帖最后由 lengyunfeng 于 2010-1-13 08:39 编辑

LZ,以多元统计而论,你这三组数据是有问题的:X、Z的值普遍比y大2~5个数量级(是不是你每个数的单位不一致?)。以这种数据进行拟合是不合适的,会产生因变量对个别变量过分依赖以及“大数吃小数”的现象(协方差受数据本身大小的影响,数据如果数量级相差过大,则可能会出现大数与Z协方差较大的假象)。为了尽量使统计的结果真实地反映客观实际,建议对原始的三列数据进行标准化变换。即:
xi'=(xi-x均值)/sqrt(Sx),其中xi'为标准化后的变量值,xi为原始数据,Sx为数据x的样本方差。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-13 08:37:49 | 显示全部楼层 来自 宁波大学
lengyunfeng,你的建议很好。下面采取两个措施,能否做下曲面拟合(给出代码),望赐教!
1、去掉第1列数据中每个数的后面4个0;
2、标准化。
标准化结果:
-0.912753535        -1.542004467        -1.016100244
-0.822232523        -1.542004467        -1.009380945
-0.731711512        -1.542004467        -1.001709699
-0.6411905        -1.542004467        -0.996443372
-0.550669488        -1.542004467        -0.990525713
-0.460148476        -1.542004467        -0.984184966
-0.369627465        -1.542004467        -0.977153919
-0.279106453        -1.542004467        -0.970011532
0.173498606        -1.542004467        -0.94056241
0.626103665        -1.542004467        -0.90854136
1.531313782        -1.542004467        -0.849899194
2.4365239                        -1.542004467        -0.790165907
-0.912753535        -1.156503351        -0.935312783
-0.822232523        -1.156503351        -0.919747614
-0.731711512        -1.156503351        -0.907728586
-0.6411905        -1.156503351        -0.894757612
-0.550669488        -1.156503351        -0.882900025
-0.460148476        -1.156503351        -0.870001421
-0.369627465        -1.156503351        -0.85669643
-0.279106453        -1.156503351        -0.845718421
0.173498606        -1.156503351        -0.784064539
0.626103665        -1.156503351        -0.722310453
1.531313782        -1.156503351        -0.596903953
2.4365239         -1.156503351        -0.47354052
-0.912753535        -0.771002234        -0.829479651
-0.822232523        -0.771002234        -0.81038504
-0.731711512        -0.771002234        -0.785562047
-0.6411905        -0.771002234        -0.767074232
-0.550669488        -0.771002234        -0.747350557
-0.460148476        -0.771002234        -0.722121177
-0.369627465        -0.771002234        -0.703360583
-0.279106453        -0.771002234        -0.681098382
0.173498606        -0.771002234        -0.577308317
0.626103665        -0.771002234        -0.468196256
1.531313782        -0.771002234        -0.270013125
2.4365239                        -0.771002234        -0.053514755
-0.912753535        -0.385501117        -0.71572476
-0.822232523        -0.385501117        -0.676054733
-0.731711512        -0.385501117        -0.642397002
-0.6411905        -0.385501117        -0.607826293
-0.550669488        -0.385501117        -0.578588714
-0.460148476        -0.385501117        -0.549028252
-0.369627465        -0.385501117        -0.512676122
-0.279106453        -0.385501117        -0.488682602
0.173498606        -0.385501117        -0.327241287
0.626103665        -0.385501117        -0.171255576
1.531313782        -0.385501117        0.137876708
2.4365239                        -0.385501117        0.458810908
-0.912753535        0        -0.574803193
-0.822232523        0        -0.518076056
-0.731711512        0        -0.471480752
-0.6411905        0        -0.443312026
-0.550669488        0        -0.392374508
-0.460148476        0        -0.344554477
-0.369627465        0        -0.301410677
-0.279106453        0        -0.25893491
0.173498606        0        -0.034364475
0.626103665        0        0.175342226
1.531313782        0        0.627099561
2.4365239         0        1.053026285
-0.912753535        0.385501117        -0.413083531
-0.822232523        0.385501117        -0.347170939
-0.731711512        0.385501117        -0.285878909
-0.6411905        0.385501117        -0.221692069
-0.550669488        0.385501117        -0.179327641
-0.460148476        0.385501117        -0.116476867
-0.369627465        0.385501117        -0.070048572
-0.279106453        0.385501117        -0.002521567
0.173498606        0.385501117        0.296033527
0.626103665        0.385501117        0.583009381
1.531313782        0.385501117        1.158241487
2.4365239                        0.385501117        1.749395046
-0.912753535        0.771002234        -0.233883672
-0.822232523        0.771002234        -0.158729956
-0.731711512        0.771002234        -0.082963877
-0.6411905        0.771002234        -0.019667748
-0.550669488        0.771002234        0.063502364
-0.460148476        0.771002234        0.145559087
-0.369627465        0.771002234        0.215479878
-0.279106453        0.771002234        0.294474783
0.173498606        0.771002234        0.635227296
0.626103665        0.771002234        1.019123609
1.531313782        0.771002234        1.777118417
2.4365239                        0.771002234        2.51741035
-0.912753535        1.156503351        -0.031692342
-0.822232523        1.156503351        0.069069306
-0.731711512        1.156503351        0.145837434
-0.6411905        1.156503351        0.247990818
-0.550669488        1.156503351        0.345189624
-0.460148476        1.156503351        0.42596595
-0.369627465        1.156503351        0.499226906
-0.279106453        1.156503351        0.607559595
0.173498606        1.156503351        1.081083672
0.626103665        1.156503351        1.509905206
1.531313782        1.156503351        2.422772338
2.4365239                        1.156503351        3.380676029
-0.912753535        1.542004467        0.172002061
-0.822232523        1.542004467        0.308280799
-0.731711512        1.542004467        0.407261026
-0.6411905        1.542004467        0.522329715
-0.550669488        1.542004467        0.637621081
-0.460148476        1.542004467        0.747957869
-0.369627465        1.542004467        0.856902922
-0.279106453        1.542004467        0.97787257
0.173498606        1.542004467        1.530168875
0.626103665        1.542004467        2.066710734
1.531313782        1.542004467        3.097430026
2.4365239                        1.542004467        4.345204381
回复 不支持

使用道具 举报

发表于 2010-1-13 13:19:07 | 显示全部楼层 来自 浙江杭州
想看曲面拟合的代码,可以版内搜索“拟合”,有许多很好的例子。
回复 不支持

使用道具 举报

发表于 2010-1-13 13:54:12 | 显示全部楼层 来自 北京
可以用1stOpt自动搜索功能,下面是一个(不用对x数据作处理):

z = p1+p2*x^p3*y^p4

均方差(RMSE): 13.7563509646567
残差平方和(RSS): 20437.6167211835
相关系数(R): 0.997035892307478
相关系数之平方(R^2): 0.994080570549369
决定系数(DC): 0.994080570549369
卡方系数(Chi-Square): 48.5644543280209
F统计(F-Statistic): 5856.42027762812
参数 最佳估算
---------- -------------
p1          31.0298761278773
p2          0.195697898351746
p3          0.668800209642246
p4          1.63617607373431

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-13 16:50:45 | 显示全部楼层 来自 宁波大学
shamohu, 谢谢你的热心。
z=p1+p2*x^p3*y^p4是在给定函数的情况下,估计参数吧?那为什么给定这样一个函数呢?
另外,从数据上可以简单分析,在给定y的情况下,x与z应该是线性关系。
望继续赐教。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-13 16:55:49 | 显示全部楼层 来自 宁波大学
图中横坐标t对应的是上面x的数据,纵坐标对应上面的z 数据,而p值对应上面的y数据,可以验证在给定y的情况下,z应该是x的线性关系。

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2010-1-13 17:07:15 | 显示全部楼层 来自 浙江杭州
你应该早把这种关系告诉大家吧,等别人拟合完了,你才告诉大家,不是逗人玩呢吗?

230164图中横坐标t对应的是上面x的数据,纵坐标对应上面的z 数据,而p值对应上面的y数据,可以验证在给定y的情况下,z应该是x的线性关系。230164
zhouhuijie 发表于 2010-1-13 16:55
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-13 19:21:10 | 显示全部楼层 来自 宁波大学
messenger,这个图我是今天刚刚画的,因为曲面拟合做不来,所以就作了一个平面图。关于z数据与y数据之间的关系你有什么高见?或者说能否对x,y,z数据作一下曲面拟合最好。谢谢你的热心。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-13 19:27:12 | 显示全部楼层 来自 宁波大学
我在本网站上找到一个关于曲面拟合的,而且写的很好,只是用在我这里怎么不行呢?下面是那位高手在本网上的数据和代码:
%可用样条曲面拟合,最好对原数据整理一下,拟合的代码如下:
x0=2.2:0.1:7;y0=10:5:30;
z0 =[ 0.0121    0.0118    0.0129    0.1098    0.0103
    0.0116    0.0116    0.0124    0.1007    0.0111
    0.0110    0.0113    0.0120    0.0914    0.0119
    0.0105    0.0111    0.0116    0.0820    0.0128
    0.0099    0.0109    0.0112    0.0726    0.0136
    0.0094    0.0107    0.0108    0.0635    0.0144
    0.0090    0.0105    0.0105    0.0547    0.0151
    0.0085    0.0104    0.0101    0.0465    0.0158
    0.0081    0.0102    0.0098    0.0391    0.0164
    0.0078    0.0101    0.0096    0.0325    0.0170
    0.0075    0.0100    0.0094    0.0270    0.0174
    0.0073    0.0099    0.0092    0.0228    0.0177
    0.0072    0.0099    0.0091    0.0200    0.0179
    0.0071    0.0098    0.0091    0.0187    0.0180
    0.0071    0.0098    0.0091    0.0183    0.0180
    0.0071    0.0098    0.0091    0.0179    0.0180
    0.0071    0.0098    0.0091    0.0176    0.0180
    0.0072    0.0099    0.0091    0.0172    0.0180
    0.0072    0.0099    0.0091    0.0169    0.0180
    0.0072    0.0099    0.0091    0.0165    0.0180
    0.0072    0.0099    0.0091    0.0162    0.0180
    0.0072    0.0099    0.0091    0.0159    0.0180
    0.0073    0.0099    0.0091    0.0156    0.0179
    0.0073    0.0100    0.0092    0.0154    0.0179
    0.0074    0.0100    0.0092    0.0151    0.0178
    0.0075    0.0101    0.0093    0.0149    0.0178
    0.0076    0.0101    0.0093    0.0147    0.0177
    0.0077    0.0102    0.0094    0.0144    0.0177
    0.0078    0.0102    0.0095    0.0142    0.0176
    0.0079    0.0103    0.0095    0.0140    0.0175
    0.0081    0.0104    0.0096    0.0139    0.0174
    0.0082    0.0105    0.0097    0.0137    0.0173
    0.0084    0.0106    0.0099    0.0135    0.0171
    0.0086    0.0107    0.0100    0.0134    0.0170
    0.0089    0.0108    0.0101    0.0133    0.0168
    0.0091    0.0109    0.0103    0.0131    0.0166
    0.0094    0.0111    0.0105    0.0130    0.0164
    0.0097    0.0112    0.0107    0.0129    0.0162
    0.0100    0.0114    0.0109    0.0128    0.0160
    0.0104    0.0115    0.0111    0.0128    0.0157
    0.0108    0.0117    0.0114    0.0127    0.0155
    0.0112    0.0119    0.0116    0.0126    0.0152
    0.0116    0.0121    0.0119    0.0126    0.0148
    0.0121    0.0123    0.0122    0.0125    0.0145
    0.0126    0.0126    0.0126    0.0125    0.0141
    0.0131    0.0128    0.0129    0.0125    0.0138
    0.0137    0.0131    0.0133    0.0125    0.0133
    0.0143    0.0133    0.0137    0.0124    0.0129
    0.0150    0.0136    0.0141    0.0124    0.0124];
sp=csapi({x0 y0},z0);%可得到每片三次样条曲面的系数
fnplt(sp);              %可得到拟合曲面的效果图,见附件
  %也可以用最小二乘曲面拟合,代码为:
[m,n]=size(z0);k=9;
C=ones(m*n,1/2*(k+1)*(k+2));
x=reshape(ones(n,1)*x0,m*n,1);
y=reshape(y0'*ones(1,m),m*n,1);
z=reshape(z0,m*n,1);
for j=0:k
    for i=0:j
    C(:,1/2*(j+1)*(j+2)-j+i)=x.^(j-i).*y.^i;   
    end
end
coefficient=C\z;

%做出曲面效果图见附件2,此图与图1稍有不同,因为采集点较少,所以拟合次数对结果影响很大
syms x y
z=ones(1,1/2*(k+1)*(k+2));sum=0;
for j=0:k
    for i=0:j
    sum=sum+sym(x^(j-i)*y^i)*coefficient(1/2*(j+1)*(j+2)-j+i);
    end
end
figure;ezmesh(sum,[min(x0),max(x0),min(y0),max(y0)])
回复 不支持

使用道具 举报

发表于 2010-1-14 01:03:15 | 显示全部楼层 来自 浙江杭州
可以试试关系式 z = 20.6061+5.4299e-5*x+191.9521*y^1.6361+0.0023*x*y^1.6361

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2010-1-14 09:53:08 | 显示全部楼层 来自 北京海淀
感觉很简单的问题啊,怎么讨论来讨论去的?

MMA代码:

  1. data = Import["D:\\xyz.txt", "Table"];
  2. quad = Fit[data, {1, x, y, x^2, x y, y^2}, {x, y}]
  3. Show[Plot3D[quad,  {x, 30000, 400000}, {y, 0.1, 0.9},
  4.   PlotStyle -> Opacity[.5], PlotRange -> {0, 1000}],
  5. Graphics3D[{Red, PointSize[0.02], Map[Point, data]}]]
复制代码

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-1-14 14:42:22 | 显示全部楼层 来自 浙江杭州
lz 要求“在给定y的情况下,z应该是x的线性关系”,你这个模型在y一定的情况下,z与x呈2次方的关系。

感觉很简单的问题啊,怎么讨论来讨论去的?

MMA代码:

data = Import["D:\\xyz.txt", "Table"];
quad = Fit[data, {1, x, y, x^2, x y, y^2}, {x, y}]
Show[Plot3D[quad,  {x, 30000, 400000}, {y, 0.1, 0. ...
TBE_Legend 发表于 2010-1-14 09:53
回复 不支持

使用道具 举报

发表于 2010-1-14 15:02:25 | 显示全部楼层 来自 北京海淀
lz 要求“在给定y的情况下,z应该是x的线性关系”,你这个模型在y一定的情况下,z与x呈2次方的关系。


messenger 发表于 2010-1-14 14:42


不好意思,没看清题目。

这样行否?

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2011-4-11 21:35:10 | 显示全部楼层 来自 湖北十堰
真的很乱呀:'(

评分

1

查看全部评分

回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-4 21:23 , Processed in 0.060305 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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