请教 lsqcurvefit 不能得到最优结果的问题
我用lsqcurvefit来拟合一个公式,可是就是不能得到最优结果。恳请各位帮帮忙。
x=;
y=;
f=inline('log(a(1)*(1-x/a(2)))/a(3)','a','x');
=lsqcurvefit(f,,x,y)
结果如下:
Maximum number of function evaluations exceeded;
increase options.MaxFunEvals
a =
70.7955 0.9834 0.2253
jm =
0.3213
选取不同的初值都是一样得不到结果,请各位帮忙看看问题在哪?
应该加上什么条件,或者是由于别的原因?
[ 本帖最后由 eight 于 2007-11-27 16:48 编辑 ] 数据点太少?---这个问题用1stOpt比较容易解决。 显然是初值选择的问题,如下是lingo的结果:
Objective value: 0.1353339
Model Title: :Fit Problem
Variable Value Reduced Cost
A 434.7426 0.000000
B 0.9347376 0.8659544E-08
C 0.3568502 0.2563307E-07
X( 1) 0.9000000 0.000000
X( 2) 0.8500000 0.000000
X( 3) 0.8000000 0.000000
X( 4) 0.7700000 0.000000
X( 5) 0.7000000 0.000000
Y( 1) 7.824000 0.000000
Y( 2) 10.08580 0.000000
Y( 3) 11.87060 0.000000
Y( 4) 12.18500 0.000000
Y( 5) 13.03240 0.000000
Row Slack or Surplus Dual Price
1 0.1353339 -1.000000 谢谢各位的帮忙。结果非常不错。
再问一下,什么是lingo ?能说详细一点吗?
页:
[1]