willing0909 发表于 2009-6-16 22:10

fsolve函数使用的问题(求助)

初始状态的自变量与函数值***初始状态的自变量与函数值*
beta0 =
-1.4628    0.6510   -0.0838

fval =

-8.2005 -120.7321   28.9073

*下面开始用fsolve函数求解**下面开始用fsolve函数求解**

                                       Norm of      First-order   Trust-region
IterationFunc-count   f(x)          step         optimality    radius
   0          4         15479.1                      4.3e+004               1
   1          8         1954.31       0.353951      3.03e+004               1
   2         12         15.5384      0.0815926      2.26e+003               1
   3         16      0.00128498   0.00767982         20.2               1
   4         20    9.00318e-012   7.02803e-005      0.00169               1
   5         24    3.01653e-028   5.88553e-009      3.08e-012               1
Optimization terminated: first-order optimality is less than options.TolFun.
x =

-1.4628    0.3700   -0.0581

fval =

1.0e-013 *

-0.1599    0.0655   -0.0178

*上面为最终的自变量与函数值****上面为最终的自变量与函数值*>>

>> beta=[-1.4628,0.3700,   -0.0581];
>> fun(beta)
ans =

0.0012   -0.0047    0.0085

为什么刚计算的结果,再次代入结果差别这么大????????
望高手指点!!!!!!!

ChaChing 发表于 2009-6-17 09:52

这是很有趣的现象!?
个人水平专业有限, 即有资讯不号判断!
若可以的话, 建议给出完整的程序或(及)式子, 方便有兴趣者试试看

rocwoods 发表于 2009-6-17 10:21

我个人猜测,楼主可能直接copy的command window里的-1.4628    0.3700   -0.0581到beta里的,殊不知这是format short显示格式的x,正确的应该是format long后看x等于多少再copy
或者beta = x赋值也可。
你算出来的fval 在10^-13数量级,你带进去的在0的正负0.01附近,应该是你copy误差造成的

[ 本帖最后由 rocwoods 于 2009-6-17 10:23 编辑 ]

ChaChing 发表于 2009-6-17 13:23

抱歉! 看完3F的回覆才发现又误解楼主的意思!
我以为重复使用fsolve:@L

[ 本帖最后由 ChaChing 于 2009-6-17 13:25 编辑 ]

willing0909 发表于 2009-6-18 10:32

:@D :@D
谢谢啊,和,3楼的话让我恍然大悟啊
页: [1]
查看完整版本: fsolve函数使用的问题(求助)