zyfbb 发表于 2006-3-23 19:40

菜鸟求教指数曲线拟合

我要对一堆数据做指数曲线拟合,求其中的系数<BR>公式为x=y*b*exp(-y/c)<BR>其中b,c为要拟合求出的系数<BR>语法该怎么写啊?我刚刚开始学,照有关的例子写了几个都不对,现在只会用x,y数据画图plot :P<BR>a=xlsread ('data.xls','041');<BR>x1=a(:,3);<BR>y1=a(:,4)<BR>x2=a(:,6);<BR>y2=a(:,7);<BR>x3=a(:,9);<BR>y3=a(:,10);<BR>plot(x1,y1,'b.',x2,y2,'k.',x3,y3,'r.')<BR>xlabel('Volume');<BR>ylabel('Speed');<BR>title(Volume-Speed of Link02041);<BR>后面分别用x1,y1,x2.y2,x3,y3拟合求系数b,c该怎么写咧?<BR>本人比较笨,请高手不吝赐教:)<BR>

happy 发表于 2006-3-23 20:00

回复:(zyfbb)菜鸟求教指数曲线拟合

<P>建议移项,两边去对数得到ln(x/y)=lnb-y/c<BR><BR>然后用polyfit用上述公式进行多项式拟合即可</P>

zyfbb 发表于 2006-3-23 20:31

<P>谢谢指教,原来是没有直接的方法呀,我还以为是输入公式,语法写对了就直接算出来啦<BR>谢谢哈,我试试</P>

zyfbb 发表于 2006-3-23 22:03

为什么我写log(x/y)的时候,提示警告底数为0<BR>我写ln(x/y)的话,又提示没有ln这个变量,ft。。。-_-要怎么写啊?<BR>大牛救命啊。。。。

happy 发表于 2006-3-23 22:07

回复:(zyfbb)为什么我写log(x/y)的时候,提示警告...

倒,这说明你给出的数据y中有0存在,去掉这点或者用eps代替

ln在matlab中的函数是log

zyfbb 发表于 2006-3-23 22:32

不可能阿,x是平均流量,y是平均速度,一平均怎么也不可能有0啊<BR>我还找到xls表仔细看了一遍,xy都没有0啊<BR>我是这么想的<BR>a=xlsread ('data.xls','041');<BR>y1=a(:,3);<BR>x1=a(:,4)<BR>p1=log(y1/x1);    (结果这一步就提示warning了)<BR>X=;<BR>a=X\y1<BR>哪里不对么?<BR>特聘教授你写一个正确的给我观摩一下吧:)

happy 发表于 2006-3-24 07:36

回复:(zyfbb)不可能阿,x是平均流量,y是平均速度,...

<DIV class=quote><B>以下是引用<I>zyfbb</I>在2006-3-23 22:32:15的发言:</B><BR>不可能阿,x是平均流量,y是平均速度,一平均怎么也不可能有0啊<BR>我还找到xls表仔细看了一遍,xy都没有0啊<BR>我是这么想的<BR>a=xlsread ('data.xls','041');<BR>y1=a(:,3);<BR>x1=a(:,4)<BR>p1=log(y1/x1);    (结果这一步就提示warning了)<BR>X=;<BR>a=X\y1<BR>哪里不对么?<BR>特聘教授你写一个正确的给我观摩一下吧:)</DIV>
<br>把数据传上来
页: [1]
查看完整版本: 菜鸟求教指数曲线拟合