matlab求非线性规划问题

目标函数:minW'HW,其中W为3行列向量,W‘为它的转置,H为3阶方阵,约数条件为:W’W=1,W>0用matlab怎么编程?我的是matlab2012a版本。我的源... 目标函数:minW'HW,其中W为3行列向量,W‘为它的转置,H为3阶方阵,约数条件为:W’W=1,W>0
用matlab怎么编程?我的是matlab2012a版本。
我的源代码如下:
function f=fun1(x);
f=-([x(1),x(2),x(3)]*[1 2 3;1 1 1;3 2 1]*[x(1);x(2);x(3)]);%创建目标函数
function [g,h]=fun2(x);
g=0;
h=[x(1),x(2),x(3)]*[x(1);x(2);x(3)]-1%创建约数函数
[x,y]fmincon('fun1',[0.1;0.1;0.1],[],[],[],[],[0.1;0.1;0.1],[],'fun2'...
,optimset)f%主程序
但运行失败,fun1和fun2可以成功创建,但主函数提示Error: Unexpected MATLAB expression.
哪位大侠可以帮帮我呢?谢谢了!
虽然我知道大侠们不稀罕悬赏,但如果对我有所帮助我可以再追加,真心感谢!
展开
 我来答
lhmhz
高粉答主

2012-09-11 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7272 获赞数:17068

向TA提问 私信TA
展开全部
可以运行,问题主要在于你书写格式不正确,而导致错误。
运行结果如下
>> [x,y]=fmincon('fun1',[0.1;0.1;0.1],[],[],[],[],[0.1;0.1;0.1],[],'fun2',optimset)
Warning: Trust-region-reflective algorithm does not solve this type of problem, using active-set algorithm.
You could also try the interior-point or sqp algorithms: set the Algorithm option to 'interior-point' or
'sqp' and rerun. For more help, see Choosing the Algorithm in the documentation.
> In fmincon at 472
Local minimum possible. Constraints satisfied.
fmincon stopped because the predicted change in the objective function
is less than the default value of the function tolerance and constraints
were satisfied to within the default value of the constraint tolerance.
<stopping criteria details>
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
1
x =
0.627962286552050
0.459703343062521
0.627961945396026
y =
-5.098076220590748
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
周永红_ZYH
推荐于2017-07-25 · TA获得超过2914个赞
知道大有可为答主
回答量:1455
采纳率:90%
帮助的人:804万
展开全部
function f=fun1(x)
f=-([x(1),x(2),x(3)]*[1 2 3;1 1 1;3 2 1]*[x(1);x(2);x(3)]); %创建目标函数

function [g,h]=fun2(x)
g=[];
h=[x(1),x(2),x(3)]*[x(1);x(2);x(3)]-1; %创建约数函数

% 主程序
% 2009a版以上,可用:
options=optimset('Algorithm','active-set','display','off','TolCon',1e-016,'TolFun',1e-016);
[x,y] = fmincon(@fun1,[0.1;0.1;0.1],[],[],[],[],[0;0;0],[],@fun2,options)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式