roll66 发表于 2006-9-30 10:43

试验数据拟合的问题

大家好,有这样一个试验数据拟合的问题,得到的试验数据是F-t,就是一个量随时间变化的曲线。
已知F=f(a,,b,t),即函数F的形式已知,式中a是一个要拟合的参数,b是不同工况下的F-t曲线对应的一个参数,即表示对每种工况,b是已知的,但是不同的工况对应不同的b。
      现在由各组工况及函数形式拟合出a。这样得到好几组a,但是最后怎样确定表达式中的a呢?一种简单的方法是对拟合出的几组a 取平均值,但是这个方法是比较粗糙的,还有没有别的好点的方法?

fafan 发表于 2006-9-30 18:05

可以用软件做成三维图,这样就可以直观观察a的变化。
你是做的振动吗?如果有数据,就可以了我帮你看看。

roll66 发表于 2006-9-30 20:14

谢谢主任。
不过我就是想要由拟合出的几组a,用一种比较简单合理的方法来最后确定表达式中的a。做三维观察a的变化最后会得到什么结果呢?好复杂啊,不太懂,^_^。

fafan 发表于 2006-10-1 23:52

有没有例子,你说说。大家就可以帮助你了。或者你把数据贴出来

tjdht 发表于 2006-10-2 15:01

对,把数据提供出来

roll66 发表于 2006-10-3 16:49

o ,谢谢大家!这个数据是很多的,我也不知道怎么上传。
式子也很复杂,式一:F=(2.5*Ud+1)V+(39.5*Ud+2.1)*tanh(4.2v)。式中v为速度,每种工况速度已知;Ud=g(lamda,u1,t)=u+(u0-u-u1)*exp(-lamda*t)(式二),u和u0是每个试验工况中的一个确定的参数,不同的工况这个参数不同。Ud是时间t和参数lamda和u1的函数。
但是lamda 和u1只是中间变量,(式三)lamda=a+b*u;u1=cu+d。试验得到的是F-t的数据,最后要拟合得到a,b,c,d的值。
我拟合的时候是先按式二拟合出lamda 和u1,之后再由式三拟合出c,d的。但是老师说这样不是常规的拟合方法,说是都把参数代入,也就是最后得到一个F=F(a,b,c,d,u,t)的函数,不用拟合中间变量。这样拟合参数就有四个了,不知道效果会不会好。
我原来拟合是在matalb中用nlinfit这个函数拟合的,不知道大家都是用什么来拟合?

roll66 发表于 2006-10-3 17:06

感觉拟合也不是很准,如果初值选的不同的话,对结果会有影响,有的影响较大。式二写错了,是
Ud=u+u1+(u0-u-u1)*exp(-lamda*t)。
拟合的时候因为参数多,是不是可以先假设部分参数是个常数,不变的,比如拟合u1时,由式二,lamda对式二的稳定结果没有影响。所以可以由F-t的稳定段来拟合出c,d.之后再拟合a,b?
这样能说的通吗?

MVH 发表于 2006-10-3 21:47

把b也作为自变量,用二维拟合不行吗?

roll66 发表于 2006-10-4 11:27

不太明白,最后需要拟合的参数为四个,怎么用二维拟合呢?
倒是可以先拟合出中间变量lamda和u1,再由中间变量拟合a,b;c,d。每次拟合两个参数。但是这样二次拟合的应该没有一次拟合的结果准确吧?

fafan 发表于 2006-10-4 15:35

老师说的对,不用中间变量的拟合。用第一个公式,每个工况都有一条曲线。

fafan 发表于 2006-10-4 16:08

中间变量根据测试结果计算出来。通过曲线可以观测参数变化对输出的影响

另外,你说的不够详细,数据没有物理意义,正确与否无法判断。

roll66 发表于 2006-10-4 21:19

恩,每个试验工况都有一个曲线,每个试验工况中的一些参数不同,如每个工况的电压不同,即为u不同,对每个工况是可以拟合出一个a,b,c,d,但是根据几个试验工况,拟合出几组a,b,c,d后最后怎么确定这些参数取什么值呢?
因为每个工况的参数不同,所以表达式不能写为一个表达式,如果把这些工况合到一起最小二乘的话,由于表达式不统一,就不能直接用现有的拟合函数,得通过求误差极值的方法把参数求出。

linhao82 发表于 2006-10-12 08:49

请问LZ你的问题解决了么
我目前也有类似的问题
我还没有头绪呢?
页: [1]
查看完整版本: 试验数据拟合的问题