回 帖 发 新 帖 刷新版面

主题:matlab三维曲线拟合

有一组数据如下,怎样根据目标函数拟合算出a,b,c的大小。
目标函数:z=a*x^b *y^c

X    Y    Z
70    25    3.9
70    50    8.5
70    100    25
80    25    5.5
80    50    12
80    100    34
90    25    7.5
90    50    18
90    100    46
100    25    10
100    50    22
100    100    60
200    25    65
200    50    150
200    100    400
300    25    200
300    50    450
300    100    1200

回复列表 (共8个回复)

沙发

在线等啊,请各位大侠指点啊.

板凳

Transform objective function into the following form
lnz= lna +b*lnx +c*lny
transform the x,y,z to the ln form
then do the regression.

3 楼

SSz=1.4677e+006
[a,b,c]=[.8351744741e-5,  2.711465210,  .2583935670]
RSS=27884.41946
MSe= 1.8590e+003
R^2=.981001

4 楼

谢谢各位指点.

5 楼

请问3楼的答案是按照2楼的方法计算出来的吗?

6 楼

不是。

7 楼

那请教下你的方法好吗?

8 楼

若zhat=a*x^b *y^c
一般的方法即为使sum(z-zhat)^2=min
而2楼的方法是使sum(ln(z)-ln(zhat))^2最小,目标函数不一样,在某些情况下这种变量转换的方法不可用,如z<0时,ln(z)不存在。
而我使用的是一般的方法。

我来回复

您尚未登录,请登录后再回复。点此登录或注册