关于lsqnonlin的问题
关于要拟合的函数:function f=lxgjn(b)
a=load('090707.txt');
x=a(:,1);
y=a(:,2);
f=y-(b(0)+b(1).*x+b(2).*(1-exp(b(3).*x)));
一下脚本文件
clear
clc
b0=;
=lsqnonlin('lxgjn',b0);
为什么不行呢?
报错:
Error using ==> optim\private\lsqncommon
User supplied function ==> lxgjn
failed with the following error:
Attempted to access b(0); index must be a positive integer or logical.
Error in ==> lsqnonlin at 163
= ...
很少用这个函数,我不知道是什么原因。
[ 本帖最后由 kakalx 于 2009-7-23 21:20 编辑 ] matlab矩阵的index不能为零!
回复 沙发 ChaChing 的帖子
嗯,那我该怎么办呢? 试试f=y-(b(1)+b(2).*x+b(3).*(1-exp(b(4).*x)));
回复 地板 ChaChing 的帖子
还是报错;估计对初值是不有要求,造成不能运行。chaching,
如果我不用lsqnonlin函数,我该怎么做,能获得这个待求多项式的表达式? 看看这组结果如何?
参数最佳估算
b1= 25.112158616381
b2= 0.00471717814272614
b3= 1.00395547558027
b4= -0.0255216579223049
[ 本帖最后由 dingd 于 2009-7-23 22:41 编辑 ]
回复 6楼 dingd 的帖子
把你的程序能发一下吗?
页:
[1]