matlab 三维数据拟合问题,急急急!!!!!!
我有一组实验数据,在matlabcftool中选择ploynomial进行拟合,实验数据三维图如图1,拟合图如图2,拟合后方程生成图如图3。我不清楚为什么用拟合后的方程重...
我有一组实验数据,在matlab cftool中选择ploynomial进行拟合,实验数据三维图如图1,拟合图如图2,拟合后方程生成图如图3。我不清楚为什么用拟合后的方程重新生成曲面的时候为什么和实验数据偏离了,而且那么离谱,拟合的时候曲面很漂亮。另外我在用[p,u]=meshgrid(0.2:0.6,200:900)生成p,u向量时p就一个数0.2,这是什么原因?希望大神能给解答一下,我想用实验数据来拟合曲面,用拟合后的公式从新画一个曲面,我的数据和一些设置都在txt文档中,恳请大神解答,非常着急。
pan点baidu点com/s/1pLMXccb
提问的时候没法上传文件,我只能通过网盘分享,还请大神们麻烦一点帮在下解燃眉之急啊 展开
pan点baidu点com/s/1pLMXccb
提问的时候没法上传文件,我只能通过网盘分享,还请大神们麻烦一点帮在下解燃眉之急啊 展开
1个回答
展开全部
用matlab cftool工具箱选择ploynomial进行拟合,拟合效果(看似很好)并不一定符合你要求。你可以用得到的拟合函数,来验证(yi=f(xi))是否与已知数据(y值)基本相吻合。
一般我们的拟合函数,可以用下列方法来进行。
fun=@(a,x)a(1)*x(1)+a(2)*x(2)+。。。 %自定义函数
[a,resnorm,residual,exitflag]=lsqcurvefit(fun,x0,X,y); %x0——初值,X=[x y];
或
[a,r,J] = nlinfit(X,y,fun,x0);
求得拟合函数后,绘制图形
xa=[。。。], ya=[。。。];
[x,y]=meshgrid(xa,ya);
z=f(x,y);
mesh(x,y,z)
xlabel('x');ylabel('y');zlabel('z');
如有还问题,可以再帮你。
一般我们的拟合函数,可以用下列方法来进行。
fun=@(a,x)a(1)*x(1)+a(2)*x(2)+。。。 %自定义函数
[a,resnorm,residual,exitflag]=lsqcurvefit(fun,x0,X,y); %x0——初值,X=[x y];
或
[a,r,J] = nlinfit(X,y,fun,x0);
求得拟合函数后,绘制图形
xa=[。。。], ya=[。。。];
[x,y]=meshgrid(xa,ya);
z=f(x,y);
mesh(x,y,z)
xlabel('x');ylabel('y');zlabel('z');
如有还问题,可以再帮你。
追问
谢谢大神的解答,通过拟合曲面也就是第二张图看到曲面和实验数据点吻合还是不错的,公式也生成了,但是放我用拟合的曲面公式重新画图的时候数值不仅变成负值,而且都变成10的10次方那么大,链接里的txt是我的实验数据和拟合公式能帮我看看我是哪里出问题了吗
追答
请你加我的企鹅,看了你给的数据不是太明白,即那一组数据代表那个变量(x、y、z)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询