lgx517 发表于 2007-11-27 16:36

请教 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 编辑 ]

xjzuo 发表于 2007-11-27 16:40

数据点太少?---这个问题用1stOpt比较容易解决。

bainhome 发表于 2007-11-27 18:31

显然是初值选择的问题,如下是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

lgx517 发表于 2007-11-27 22:59

谢谢各位的帮忙。结果非常不错。
再问一下,什么是lingo ?能说详细一点吗?
页: [1]
查看完整版本: 请教 lsqcurvefit 不能得到最优结果的问题