作者e0101010 (我...)
看板MATLAB
标题Re: [讨论有人可以帮我解释一下这一段的意思吗?
时间Wed Aug 22 08:05:29 2012
※ 引述《inn226 (胖虎@!@)》之铭言:
: [p,favl,exitflag,output,lambda]=linprog(f,Aeq,beq,A,b,[],[],[],optimset('Display','iter','Algorithm','interior-point'));
: p,eqlin2=lambda.eqlin
: 请问一下这一段是有什麽意思呢?? 为什麽要打这一段
这一小段是分好几行来看的 解说如下
[p,favl,exitflag,output,lambda]=linprog(f,Aeq,beq,A,b,[],[],[],...
optimset('Display','iter','Algorithm','interior-point'));
p,
eqlin2=lambda.eqlin
第一段 =左边是接收计算完後的值分别由 p, favl, exitflag, output, lambda接收
=右边是执行 linprog (linear program)的程式其中带入参数 是前面8个
f, 目标函数
Aeq, 限制式中是等式的参数
beq, 限制式中是等式的系数
A, 限制式中是不等式的参数
b, 限制式中是不等式的系数
[], 後面这三个通常都是上下界的设定 如果没有用到就用[],代替目的是因为後面还
要用到 optimset的设定
[],
[]
optimset的设定 不论在matlab用什麽最佳化函数去求解 optimset的设定全部都一样语法
optimset('Display','iter','Algorithm','interior-point')
两两一组做解答
第一组是 'Display','iter' 显示计算的叠代
第二组是 'Algorithm','interior-point' 使用的演算法 为内点法
演算法一般还有两种到三种可以选择
大概的最佳化都是这样 至於什麽问题用什麽解法这就不是简单可以说说的了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.240.194.141
※ 编辑: e0101010 来自: 111.240.194.141 (08/22 08:05)
1F:推 cmjer:在这里他的 Aeq 是不等式喔 08/22 10:25
你讲得没错这里是这样 因为他顺序放错
但为了避免误用 正常还是必须要以下列来表示 才不会造成日後回过头来看程式的时候
不清楚表达的内容。
Aineq Matrix for linear inequality constraints
bineq Vector for linear inequality constraints
Aeq Matrix for linear equality constraints
beq Vector for linear equality constraints
※ 编辑: e0101010 来自: 111.240.194.141 (08/22 11:20)
2F:推 inn226:谢谢大大精辟的解说 受益良多 08/23 21:41