r******n 发帖数: 351 | 1 用 fmincon 优化
x = fmincon(&myfun,x0,[],[],[],[],[],[],&mycon)
非线性的约束条件做成函数.
function [c,ceq] = mycon(x)
c = ... % Compute nonlinear inequalities at x.
ceq = x(1)+x(2)-b % Compute nonlinear equalities at x.
现在的问题是,这个约束条件mycon里有一个需要不断改变的参数b。怎么能把这个参数
从外面传到这个约束条件的函数mycon里面。 | l*****i 发帖数: 3929 | 2 把mycon定义成mycon(x,b)?
【在 r******n 的大作中提到】 : 用 fmincon 优化 : x = fmincon(&myfun,x0,[],[],[],[],[],[],&mycon) : 非线性的约束条件做成函数. : function [c,ceq] = mycon(x) : c = ... % Compute nonlinear inequalities at x. : ceq = x(1)+x(2)-b % Compute nonlinear equalities at x. : 现在的问题是,这个约束条件mycon里有一个需要不断改变的参数b。怎么能把这个参数 : 从外面传到这个约束条件的函数mycon里面。
| r******n 发帖数: 351 | 3 Good point. 但是如何在fmincon 中调用mycon?
x = fmincon(&myfun,x0,[],[],[],[],[],[],&mycon(b)) ?
我试过了,好像不行
【在 l*****i 的大作中提到】 : 把mycon定义成mycon(x,b)?
| k*****l 发帖数: 59 | 4 u can add parameters at the end of this function.
fmincon(@OBJFUN,x0,A,B,Aeq,Beq,VLB,VUB,@NONLCON,OPTIONS,P1,P2,...);
【在 r******n 的大作中提到】 : 用 fmincon 优化 : x = fmincon(&myfun,x0,[],[],[],[],[],[],&mycon) : 非线性的约束条件做成函数. : function [c,ceq] = mycon(x) : c = ... % Compute nonlinear inequalities at x. : ceq = x(1)+x(2)-b % Compute nonlinear equalities at x. : 现在的问题是,这个约束条件mycon里有一个需要不断改变的参数b。怎么能把这个参数 : 从外面传到这个约束条件的函数mycon里面。
| l*****a 发帖数: 119 | 5 search "nested function" in the help document.
【在 r******n 的大作中提到】 : 用 fmincon 优化 : x = fmincon(&myfun,x0,[],[],[],[],[],[],&mycon) : 非线性的约束条件做成函数. : function [c,ceq] = mycon(x) : c = ... % Compute nonlinear inequalities at x. : ceq = x(1)+x(2)-b % Compute nonlinear equalities at x. : 现在的问题是,这个约束条件mycon里有一个需要不断改变的参数b。怎么能把这个参数 : 从外面传到这个约束条件的函数mycon里面。
| r******n 发帖数: 351 | 6 Thanks
【在 l*****a 的大作中提到】 : search "nested function" in the help document.
| o****r 发帖数: 57 | 7 function [c,ceq] = mycon(x,b)
......
fmincon(@mycon,[x0]........,b) |
|