数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 2128|回复: 2

请教matlab中一个优化问题

[复制链接]
发表于 2004-9-7 04:00:27 | 显示全部楼层 |阅读模式


<>我再用 优化工具箱中解决有约束线性二乘问题的lsqlin函数时,发现</P>
<>该函数分别使用两种算法,大型优化算法和中型优化算法,</P>
<>由于存在等式约束,需要采用中型优化算法,我是这样设置的</P>
<P>options=optimset('LargeScale','off')</P>
<P>x=lisqlin(C,d,[],[],Aeq,beq,[],[],options)</P>
<P>该这样就可以了啊。但是程序给出警告说是大型优化算法不适合该类型,应采用中型优化算法,我已经设置为中型了阿,而且还给出错误提示,Error using ==&gt; *
Function '*' is not defined for values of class 'struct'.</P>
<P>不知道是怎么回事,</P>
<P>希望熟悉matlab优化工具箱的朋友帮忙,看看
</P>
发表于 2004-9-7 08:07:29 | 显示全部楼层
<>那个警告信息你不必管,matlab仅仅是告诉你说它将采取中型算法</P><>*的问题肯定是你的操作数用的不是struct的域的值,而是直接把struct当作操作数了,由于struct没有对*重载,所有有这个错误</P>
 楼主| 发表于 2004-9-8 00:26:23 | 显示全部楼层
我该了这个错误后, 不再出现上面说的错误.
我的程序是通过不断迭代求得真解。迭代运行
options=optimset('LargeScale','off')

x=lisqlin(C,d,[],[],Aeq,beq,[],[],options)

前几次运行正常,但是程序迭代6次后,却给出错误提示
Error using ==&gt; *
Inner matrix dimensions must agree.
Error in ==&gt; C:\MATLAB6p5\toolbox\optim\private\qpsub.m
这个错误好像不是自己写的程序的错误,错误出在matlab优化工具箱内的错误,咋回事呢?
难道在运算过程中增维或减维了?
<DIV align=right></DIV>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 20:25 , Processed in 0.059295 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表