Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-09-01
年龄: 40
帖子: 2
声望力: 0 ![]() |
![]()
在用fmincon编写程序,求一个方程f(x)得最优解。运算中出现99个iteration,想要plot 99个 iteration 中 x converge 到最优解的过程,不知如何实现呢?
在matlab center 看到一下解答,但运行后没有出现预期结果。 There is an undocumented global variable called OPT_STEP that you can >check inside your objective function. When it has the value 1 you are >about to finish (or just finished, I forget which) an iteration. For >example, your objective function could look like this (roughly): > > function f = objective(x) > global OPT_STEP > f = <some calculation on x> > if OPT_STEP == 1 > disp(x) % or whatever you want to do > end 另外这是我写的一个fmincon的例子: 复制以上的做法但没有显示出每一步 iteration得x function fff() clear; clc; A=[-1,-2,-2;1,2,2]; b=[0;72]; x0 = [1000; 1000; 1000]; % Starting guess at the solution [x,fval,EXITFLAG,OUTPUT] = fmincon(@myfun,x0,A,b) function f = myfun(x) global OPT_STEP f = -x(1) * x(2) * x(3); if OPT_STEP == 1 display(x) % or whatever you want to do end 先 多谢啦!! |
![]() |
![]() |