friendchj 发表于 2009-5-5 15:11

你可以借助1stopt,这方面的确比matlab强,以下是1stopt的结果,相对准确:
x1: 1.65253708606871
x2: -5.72247063859172
x3: 0.874187837674711
x4: -3.70271540024915
x5: -3.02179426504917
x6: -4.06471894438377
x7: 0.569707010599709
x8: 0.974186695511806
x9: -2.07997141011562
x10: -2.30309287803062
x11: -5.79785592978777
x12: -0.382894846025122
x13: 3.74263748184617
x14: 6.61603415442044
x15: 4.80619722198472
x16: -2.85654001445456
x17: 0.586901077430745
x18: -2.07557456320707
x19: 3.58033278643525
x20: 1.55773763229045
x21: 6.61929201177414
x22: -0.15757135011255
x23: -0.267314850532027

happyup 发表于 2009-5-5 15:26

谢谢friendchj我用了1stopt,
我算的结果如下
A:   -0.447,
然后几次都是-0.4几
现在重设了迭代数和重复数,都改为50.
迭代还没中止呢。不过A值己在0.008了

happyup 发表于 2009-5-5 15:27

另外我有一点不明白,目标函数值是什么意思,我没设这个值啊,怎么会出现目标函数值呢?

friendchj 发表于 2009-5-5 15:43

回复 18楼 happyup 的帖子

目标函数值应是指每个方程误差绝对值之和,用于判断求解的准确度,我的理解

happyup 发表于 2009-5-5 15:47

是程序自己设的吗?
我现在运行的程序目标函数值是5.00002706
,当它的值多少就可以认为是比较准的呢?
         谢谢!

friendchj 发表于 2009-5-5 16:13

回复 20楼 happyup 的帖子

把求得的方程的解带入到每个方程中,方程的值的绝对值之和即为目标函数值。借助我写的那个myfun你可以验证一下,例如:x=;f=myfun(x),sum(abs(f))
它是衡量求解准确性的一个指标,其值越接近于0,说明求得的方程解越接近真值

happyup 发表于 2009-5-5 16:40

谢谢,看来5还是不准的,如何设为0呢?

friendchj 发表于 2009-5-5 16:49

回复 22楼 happyup 的帖子

目标函数值不是设的,而是根据求得方程解求的,我感觉5应该可以在承受范围之内了
页: 1 [2]
查看完整版本: 求助,请邦我用matlab运行一下这个方程组