BaoXieWang1 发表于 2010-12-29 21:01

急~求一个Matlab曲面拟合算法~高手帮帮忙

很急,高手们给点意见,帮帮忙~我先谢谢大家了
拟合的函数是
x(1)*exp(-(t(1)-129)^2/(2*x(2)^2)-(t(2)-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(t(1)-129)^2/(2*x(4)^2)-(t(2)-7.5)^2/(2*x(4)^2))/(2*pi*x(4)^2)
就是两个加权正态函数叠加
拟合的数据点是
X=;(横坐标)
Y=;(纵坐标)
Z=;(函数值)
我想直接用拟合函数或者最小二乘函数lsqnonlin和lsqcurvefit,但是数据是三维的用不了
所以我就把问题转化为非线性最优化问题
目标函数(就是把函数在每个点的值减去函数值求平方和,展开了,各位大侠可以不用看了)
y=(x(1)*exp(-(140-129)^2/(2*x(2)^2)-(141.5-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(140-162)^2/(2*x(4)^2)-(141.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-2)^2+(x(1)*exp(-(108.5-129)^2/(2*x(2)^2)-(28-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(108.5-162)^2/(2*x(4)^2)-(28-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-4)^2+(x(1)*exp(-(88-129)^2/(2*x(2)^2)-(147-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(88-162)^2/(2*x(4)^2)-(147-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-2)^2+(x(1)*exp(-(185.5-129)^2/(2*x(2)^2)-(22.5-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(185.5-162)^2/(2*x(4)^2)-(22.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-4)^2+(x(1)*exp(-(195-129)^2/(2*x(2)^2)-(137.5-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(195-162)^2/(2*x(4)^2)-(137.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-2)^2+(x(1)*exp(-(105.5-129)^2/(2*x(2)^2)-(85.5-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(105.5-162)^2/(2*x(4)^2)-(85.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-2)^2+(x(1)*exp(-(157.5-129)^2/(2*x(2)^2)-(-6.5-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(157.5-162)^2/(2*x(4)^2)-(-6.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-1)^2+(x(1)*exp(-(107.5-129)^2/(2*x(2)^2)-(-81-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(107.5-162)^2/(2*x(4)^2)-(-81-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-1)^2+(x(1)*exp(-(77-129)^2/(2*x(2)^2)-(3-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(77-162)^2/(2*x(4)^2)-(3-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-2)^2+(x(1)*exp(-(162-129)^2/(2*x(2)^2)-(-66.5-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(162-162)^2/(2*x(4)^2)-(-66.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-1)^2+(x(1)*exp(-(117.5-129)^2/(2*x(2)^2)-(-38.5-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)+x(3)*exp(-(117.5-162)^2/(2*x(4)^2)-(-38.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-1)^2+(x(3)*exp(-(129-162)^2/(2*x(4)^2)-(7.5-84)^2/(2*x(4)^2))/(2*pi*x(4)^2)-6)^2+(x(1)*exp(-(162-129)^2/(2*x(2)^2)-(84-7.5)^2/(2*x(2)^2))/(2*pi*x(2)^2)-1)^2
但是我用fmincon解不了这个最优化问题,大规模算法,中规模算法都不行,请问应该怎样才能解这个问题

页: [1]
查看完整版本: 急~求一个Matlab曲面拟合算法~高手帮帮忙