数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 7613|回复: 7

[求助]!!!一个关于matlab进行数据拟合的问题

[复制链接]
发表于 2005-4-22 00:40:42 | 显示全部楼层 |阅读模式
传感器试验测得大量的数据:
对每一个给订的温度点,在8个不同的 压力点下测得一个对应的AD值,比如:25摄氏度,
40kpa,AD是32487;45摄氏度,120kpa,AD是9832。。。。
现在的问题是如何利用matlab进行数据拟合,得出一个误差小的表达式,z=f(x,y)
我试过polyfit,surf可是不适用的,
因为这是两个输入对应一个输出,
那么回归命令regress可以么???清高手指点一下
 楼主| 发表于 2005-4-23 17:10:25 | 显示全部楼层
<>为什么没有人回复啊?大家帮帮忙啊</P>
发表于 2005-4-23 22:34:44 | 显示全部楼层
<>你做的那个式子错了吧,那个z=f(x,y),好象不是那个,因为你这样得到的是一个三维的东西,你的结果可能是一个数吧,你可能是要这样的一个式子吧,y=f(x)</P><>那样的话,就可以用拟合算</P>
 楼主| 发表于 2005-4-26 00:46:44 | 显示全部楼层
我是需要得出一个两输入单输出的表达式的z=f(x,y),所以遇到问题了啊。。。不知道regress命令是否可以啊。
发表于 2005-5-4 01:56:23 | 显示全部楼层
要进行什么样子的拟合 才是关键啊
发表于 2005-6-8 04:59:22 | 显示全部楼层

<>用regress</P>
<>[b,bint,r,rint,stats]=regress([32478;9238],[1 25 40;1 45 120],0.05)</P>
<>可以做置信水平为0.05的线性拟合</P>
<P>我也是现学现卖,请高手指教</P>
发表于 2005-6-11 01:17:13 | 显示全部楼层
<>    在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。</P>
<>    下面给你简单介绍一下它的使用方法。</P>
<>    首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。</P>
<P>    例如在命令行里输入下列数据:</P>
<P>x=(0:0.02:0.98)';</P>
<P>y=sin(4*pi*x+rand(size(x)));</P>
<P>此时x-y之间的函数近似的为正弦关系,频率为2,但是存在一个误差项。</P>
<P>可以通过作图看出它们的大体分布:</P>
<P>plot(x,y,'*','markersize',2);</P>
<P>    打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets页面里,在X Data选项中选取x向量,Y Data选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。</P>
<P>    点击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选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是:</P>
<P>Custom Equations    用户自定义函数</P>
<P>Expotential         e指数函数</P>
<P>Fourier             傅立叶函数,含有三角函数</P>
<P>Gaussian            正态分布函数,高斯函数</P>
<P>Interpolant         ??(不好意思,不知道对应的术语是什么)含有线性函数,移动平均等类型的拟合</P>
<P>Polynomial          多项式函数</P>
<P>Power               幂函数</P>
<P>Rational            有理函数(不太清楚,没有怎么用过)</P>
<P>Smooth Spline       ??(光滑插值或者光滑拟合,不太清楚)</P>
<P>Sum of sin functions正弦函数类</P>
<P>Weibull             威布尔函数(没用过)</P>
<P>    不好意思,没有学过数理统计,所以很多东西都是用了才知道,翻译也就不太准确。不过在Type of fit选框下方有一个列表框,基本上各个函数类里的函数都写成解析式列在下方以供选择,所以找合适的函数还是比较容易的。</P>
<P>    在这个Type of fit选框中选择好合适的类型,并选好合适的函数形式。于是点击Apply按钮,就开始进行拟合或者回归了。此时在Curve Fitting Tool窗口上就会出现一个拟合的曲线。这就是所要的结果。</P>
<P>    在上面的例子中,选择sum of sin functions中的第一个函数形式,点击Apply按钮,就可以看见拟合得到的正弦曲线。</P>
<P>    在Fitting对话框中的Results文本框中显示有此次拟合的主要统计信息,主要有</P>
<P>General model of sin1:</P>
<P>       .......               (函数形式)</P>
<P>Coefficients (with 95% conffidence range)  (95%致信区间内的拟合常数)</P>
<P>      a1=... ( ...  ...)     (等号后面是平均值,括号里是范围)</P>
<P>      ....</P>
<P>Godness of fit:       (统计结果)</P>
<P>     SSE:   ...      (方差)</P>
<P>     R-squared: ...   (决定系数,不知道做什么的)</P>
<P>     Adjusted R-squared: ...  (校正后的决定系数,如何校正的不得而知)</P>
<P>     RMSE: ...        (标准差)</P>
<P>     上面的例子中经过拟合得到的函数最后为</P>
<P>y=0.9354*sin(12.36x+6.886)</P>
<P>频率为1.98加减0.03,和原来设置的频率为2符合,相对误差为1.5%。</P>
<P>    这是曲线拟合工具箱的一个最简单的使用方法,上面还有很多功能,写是写不完的,自己参照这个基本的思路,翻着英汉词典,看着帮助,然后一个按钮一个按钮的试吧。</P>
<P>    另外要说的是,如果想把这个拟合的图像导出的话,在Curve Fitting Tool窗口的File菜单下选Print to Figure,此时弹出一个新的图像窗口,里面是你要导出的图像,在这个figure窗口的File菜单里再选Export,选择好合适的格式,一般是jpeg,选择好路径,点击OK就可以了。出来的图像可以在Word等编辑环境中使用,就不多说了。</P>
<P>    要修改图像的性质,如数据点的大小、颜色等等的,只需要在对象上点右键,就差不多可以找到了。</P>
发表于 2005-8-22 19:29:31 | 显示全部楼层
用回归分析做,可设y=a+bx1+cx2,x1,x2分别表示温度,压强.详见姜起源的<数学实验>一书
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 10:28 , Processed in 0.052444 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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