pokkylu 发表于 2007-7-13 08:31

请教非线性拟合曲线过程中遇到的问题

以下是我的程序:
xdata=;
ydata=;
fun=inline('n(1).*((xdata-4.391e11)./1.2843e12.*2+n(2)).^2/(1+((xdata-4.391e11)./...
1.2843e12.*2).^2)','n','xdata')
n=lsqcurvefit(fun,,xdata,ydata)

运行后的错误报告如下:
Error using ==> c:/matlab6p5/toolbox/optim/private/lsqncommon
Function value and YDATA sizes are incommensurate.

Error in ==> C:\MATLAB6p5\toolbox\optim\lsqcurvefit.m
On line 129==> = ...

Error in ==> D:\luxc\work\matlab\fano model\trial2.m
On line 5==> n=lsqcurvefit(fun,,xdata,ydata)

好象是说我的ydata的数组大小和function的不一致.可是我换用一个简单的函数:
      n(1).*10+xdata.*n(2)来拟合,程序就可以正常运行,难道是所需拟合的函数的问题?

谢谢.

pokkylu 发表于 2007-7-13 10:41

我将lsqcurvefit函数用lsqnonlin函数替换后就可以计算了,这两个命令有什么区别呢?

eight 发表于 2007-7-13 13:39

原帖由 pokkylu 于 2007-7-13 10:41 发表 http://www.chinavib.com/forum/images/common/back.gif
我将lsqcurvefit函数用lsqnonlin函数替换后就可以计算了,这两个命令有什么区别呢?

一个是最小二乘曲线拟合,一个是最小二乘非线性方程组求解,具体自己 help 一下就可以了

pokkylu 发表于 2007-7-13 22:25

非常感谢!

pokkylu 发表于 2007-7-14 03:48

我将原式中几个设定的参数改为需要拟合的自由量参数,用lsqcurvefit就可以正常拟合了.谢谢!:@)
页: [1]
查看完整版本: 请教非线性拟合曲线过程中遇到的问题