楼主: lovecandyhouse
10256 5

请教:怎么用matlab求最优解 [推广有奖]

  • 0关注
  • 0粉丝

本科生

22%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2040 点
帖子
51
精华
0
在线时间
57 小时
注册时间
2009-11-13
最后登录
2020-6-3

楼主
lovecandyhouse 发表于 2011-1-12 10:38:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教一下,怎样求 min x'*A*x, 这里x是列向量,x'表示x的转置, 矩阵A已知,在matlab中可以用什么函数或是用什么方法求得向量x呢?
二维码

扫码加我 拉你入群

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

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

关键词:MATLAB matla atlab Mat Atl 请教 MATLAB

沙发
ariszheng 发表于 2011-1-12 15:55:42
fmincon函数

藤椅
lovecandyhouse 发表于 2011-1-12 19:58:09
2# ariszheng

我的代码是这样的:

                    w0 = ones(1,22)./22;

                    [w, fval] = fmincon(@ftn, x0, [], [], [], [], [], [],  'fcon');

求解方程的函数:w是要求解的,为1x22的向量;U已知,是22x22的向量。
'ftn.m'
function f = ftn(w)
f = w * U * w';

约束条件的函数:
约束是每个w(i)的绝对值<=1,并且w(i)加和为1

'fcon.m'
function [c,ceq] = fcon(w)

N = length(w);
c = [];

for i = 1:N
    c = [c, abs(w(1,i))-1];
end;

ceq = sum(abs(w(1,:)))-1;

奇怪的是初始值赋什么值,计算的w就是什么值,也就是说,w=w0. 有没有高人能告诉我哪里出问题了呢。

板凳
liuxin9023 发表于 2011-1-13 10:03:08
这个实际上是一个二次规划 你用二次规划的函数就可以了

报纸
lovecandyhouse 发表于 2011-1-13 10:14:14
4# liuxin9023

二次规划的函数是什么啊?

地板
matlab-007 发表于 2014-12-5 09:33:59
用黄金非分割法或者二次插值法

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 17:40