请问用matlab做出三维曲线拟合后再加什么函数才可以看到拟合的精度啊?

如题所述

频率直方图我没太用过 但是其他形式的曲线 比如控制领域的时域图用一下方法是可以实现的。
首先:想办法读出样本点,x=(),y=() (在7.0里用小括号就可以了,不同版本可以自行改一下)
之后可参见如下方法,我也是转载ilove.MATLAB论坛上的方法 用过很好用
转载:“在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。
下面给你简单介绍一下它的使用方法。
首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。
例如在命令行里输入下列数据:
x=(0:0.02:0.98)';
y=sin(4*pi*x+rand(size(x)));
此时x-y之间的函数近似的为正弦关系,频率为2,但是存在一个误差项。
可以通过作图看出它们的大体分布:
plot(x,y,'*','markersize',2);
打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets页面里,在X Data选项中选取x向量,Y Data选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。
点击Fitting...按钮,出现Fitting对话框,Fitting对话框分为两部分,上面为Fit Editor,下面为Table of Fits,有时候窗口界面比较小,Fit Editor部分会被收起来,只要把Table of Fits上方的横条往下拉就可以看见Fit Editor。在Fit Editor里面点击New Fit按钮,此时其下方的各个选框被激活,在Data Set选框中选中刚才建立的x-y数据组,然后在Type of fit选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是:
Custom Equations 用户自定义函数
Expotential e指数函数
Fourier 傅立叶函数,含有三角函数
Gaussian 正态分布函数,高斯函数
Interpolant 插值函数,含有线性函数,移动平均等类型的拟合
Polynomial 多项式函数
Power 幂函数
Rational 有理函数(不太清楚,没有怎么用过)
Smooth Spline ??(光滑插值或者光滑拟合,不太清楚)
Sum of sin functions正弦函数类
Weibull 威布尔函数(没用过)
不好意思,没有学过数理统计,所以很多东西都是用了才知道,翻译也就不太准确。不过在Type of fit选框下方有一个列表框,基本上各个函数类里的函数都写成解析式列在下方以供选择,所以找合适的函数还是比较容易的。
在这个Type of fit选框中选择好合适的类型,并选好合适的函数形式。于是点击Apply按钮,就开始进行拟合或者回归了。此时在Curve Fitting Tool窗口上就会出现一个拟合的曲线。这就是所要的结果。
在上面的例子中,选择sum of sin functions中的第一个函数形式,点击Apply按钮,就可以看见拟合得到的正弦曲线。
在Fitting对话框中的Results文本框中显示有此次拟合的主要统计信息,主要有
General model of sin1:
....... (函数形式)
Coefficients (with 95% conffidence range) (95%致信区间内的拟合常数)
a1=... ( ... ...) (等号后面是平均值,括号里是范围)
....
Godness of fit: (统计结果)
SSE: ... (方差)
R-squared: ... (决定系数,不知道做什么的)
Adjusted R-squared: ... (校正后的决定系数,如何校正的不得而知)
RMSE: ... (标准差)
上面的例子中经过拟合得到的函数最后为
y=0.9354*sin(12.36x+6.886)
频率为1.98加减0.03,和原来设置的频率为2符合,相对误差为1.5%。
这是曲线拟合工具箱的一个最简单的使用方法,上面还有很多功能,写是写不完的,自己参照这个基本的思路,翻着英汉词典,看着帮助,然后一个按钮一个按钮的试吧。
另外要说的是,如果想把这个拟合的图像导出的话,在Curve Fitting Tool窗口的File菜单下选Print to Figure,此时弹出一个新的图像窗口,里面是你要导出的图像,在这个figure窗口的File菜单里再选Export,选择好合适的格式,一般是jpeg,选择好路径,点击OK就可以了。出来的图像可以在Word等编辑环境中使用,就不多说了。
要修改图像的性质,如数据点的大小、颜色等等的,只需要在对象上点右键,就差不多可以找到了。”

上面所说的X,Y向量就是样本点。
下面是转载的网址,希望有用处

ilovematlab是个不错的论坛,我也是刚发现,不过帮助很大,基本的问题在那都会有答案。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-19
A=xy\z'

A =

-58.3582
-0.0100
6.6402
17.3131
0.4895
-0.4729

>> [A,Aint,R,rint,stats]=regress(z',xy)

A =

-58.3582
-0.0100
6.6402
17.3131
0.4895
-0.4729

Aint =

-138.3888 21.6725
-0.0129 -0.0071
6.2873 6.9932
-1.6390 36.2652
0.3988 0.5801
-1.4622 0.5165

R =

0.0060
-0.2469
-0.6749
-0.8110
-0.6554
0.4641
-0.2952
-0.1191
-0.1013
0.2083
0.4973
0.7116
0.1816
-0.1666
0.1370
0.8155
0.4834
0.2574
-0.2268
0.5708
-0.2373
0.0258
0.0378
0.2315
-0.4629
-0.9903
-0.2312
-0.4393
-0.0356
0.7899
-0.3929
-0.5479
0.3740
-0.9123
1.0431
-0.7952
0.1658
-0.4524
0.9013
0.0467
-0.3272
0.6699
-0.5884
2.3052
-0.1895
-0.1188
1.7942
-1.7641
1.2694
-2.2053

rint =

-1.5477 1.5597
-1.8418 1.3480
-2.2563 0.9066
-2.3843 0.7622
-2.1604 0.8495
-1.0918 2.0201
-1.8967 1.3064
-1.7198 1.4816
-1.7008 1.4982
-1.3191 1.7357
-1.0652 2.0598
-0.8838 2.3070
-1.4235 1.7867
-1.7713 1.4382
-1.4000 1.6741
-0.7406 2.3715
-1.1251 2.0919
-1.3507 1.8654
-1.8354 1.3818
-0.9643 2.1059
-1.8296 1.3550
-1.6015 1.6531
-1.5778 1.6533
-1.3866 1.8496
-2.0264 1.1006
-2.5424 0.5619
-1.8415 1.3791
-2.0294 1.1509
-1.6381 1.5669
-0.7526 2.3325
-1.9558 1.1700
-2.1387 1.0430
-1.2076 1.9556
-2.4786 0.6540
-0.4683 2.5546
-2.3375 0.7472
-1.4343 1.7660
-2.0416 1.1369
-0.6701 2.4727
-1.4838 1.5771
-1.8564 1.2021
-0.9018 2.2415
-2.1721 0.9953
0.8869 3.7234
-1.6739 1.2949
-1.5187 1.2811
0.4242 3.1643
-3.1717 -0.3565
-0.1642 2.7030
-3.3432 -1.0674

stats =

1.0e+003 *

0.0010 2.0299 0.0000 0.0007
STATS有四个参数
分别r2 就是表征拟合度 F统计量 概率p 和方差的一个估计
第2个回答  2011-05-19
直接由sftool这个拟合后就可以看到拟合后的图和精度追问

能举个例子吗?没用过这个函数
比如x=[0 15 30 45 60 75 90];
y=[0 40 80 120 160 200 240 280];
z=[-1.5 -2.5 -3.3 -3.7 -3.5 -2.4 -1.3;-1.8 -3.7 -3.6 -3.3 -3.1 -2.6 -1.2;-1.6 -3.5 -3.8 -2.8 -2.8 -2.1 -1.5;-1.9 -2.9 -3.1 -2.1 -2.4 -1.7 -1.8;-1.4 -2.5 -4.1 -1.9 -1.6 -1.8 -1.7;-1.2 -3.2 -4.8 -3.6 -1.6 -1.9 -1.5;-1.1 -3.5 -4.7 -4.1 -3.8 -2.3 -2.1;-1.2 -3.3 -4.3 -4.5 -4.2 -2.7 -1.9];

追答

你先把这就几个矩阵输入进去,然后再输入sftool回车,就会出来一个界面,你按照界面上的指示选择刚才输入的数据。在拟合就出来结果了

追问

还是不行,我是MATLAB菜鸟,你能具体点吗?谢谢~

追答

这个不行的,你要你喝得元素必须是一样大小,就是你的x,y,z维数大小要一样大。

本回答被网友采纳