楼主: shalou1
8621 2

[其他] 关于fminsearch和fminunc为什么初始值不同,计算的结果不同? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

31%

还不是VIP/贵宾

-

威望
0
论坛币
318 个
通用积分
21.1200
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
8691 点
帖子
67
精华
0
在线时间
256 小时
注册时间
2008-3-5
最后登录
2022-1-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教编程达人 关于fminsearch和fminunc为什么初始值不同,计算的结果不同?见下面的例子:
第一个问题:
例1  f='x(1)^3+x(2)^3-3*x(1)*x(2)';          % 这时初始值取的是x0=[2,2]
       [x,fval]=fminsearch(f,[2,2])

运行结果是:
x =
    1.0000    1.0000

fval =
   -1.0000

可是 当初始值取x0=[-1.2,1]时,
f='x(1)^3+x(2)^3-3*x(1)*x(2)';
[x,fval]=fminsearch(f,[-1.2,1])

运行结果是:
Exiting: Maximum number of function evaluations has been exceeded
         - increase MaxFunEvals option.
         Current function value: -3639352150178994600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000

x =
  1.0e+044 *
   -1.2279   -1.2137

fval =
-3.6394e+132

我想知道为什么会出现这样的情况,fminsearch对初始点有什么要求吗?

第二个问题:
与第一个问题类似,若用例1中的目标函数,而采用fminunc来求这个无约束的最小点,当初始点取x0=[2,2]或x0=[1,8]都无法求得问题的最优解,这时候怎么办呢?

期盼大家能给解答,谢谢各位关注我这个问题的人。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:fminsearch fminunc search ARCH 结果不同 结果 fminsearch fminunc

本帖被以下文库推荐

沙发
chutru 发表于 2010-1-14 22:02:19 |只看作者 |坛友微信交流群
1# shalou1

fminsearch 和fminunc 都只能找local的minimum。 (这也取决于采用何种算法, 可以用optimset 进行设置)。

我的经验是fminsearch 对于两个以上参数的函数是很不管用的, 建议还是自己编个小程序解决。

另外, 你如果坚持要用的话, 那就用不同的初始值都解一遍, 然后比较得到的函数值。 还有一点就是在做之前要先仔细研究一下该函数的性质, 避免出现不可预料的情况。
已有 1 人评分论坛币 收起 理由
chenyi112982 + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

藤椅
jnuredcrystal 在职认证  发表于 2010-2-4 12:09:29 |只看作者 |坛友微信交流群
最优化的程序怎么写呢?我现在需要估计的就是3个以上参数。每次改一下初始值,得到的结果都不一样。
比较无知,请大家多指点!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-10-6 04:01