24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1142  |  回复: 3

smileheaven

金虫 (小有名气)

[求助] MATLAB非线性优化拟合怎么改才正确

想对函数z求一下x和Fval的最优解,其中x1的取值范围在0.3到1.8,x2的取值范围在1到2,均为闭区间。以下是自己编的程序
    function [x fval history] = myproblem1(x0)
        history = []
        options = optimset('OutputFcn', @myoutput)
        [x fval] = fminsearch(@objfun, x0,options)
        function stop = myoutput(x,optimvalues,state)
            stop=[]
            if state == 'iter'
                history = [history; x]
            end
        end
        function z = objfun(x)
            z = 124.5993*x(1)^2-371.4544*x(1)+712.1124-1359.4398*x(2)^2+4028.7765*x(2)-2244.7098
        end
    end
但是返回的错误却是
??? In an assignment  A( = B, the number of elements in A and B
must be the same.

Error in ==> callAllOptimOutputFcns at 12
    stop(i) = feval(OutputFcn{i},xOutputfcn,optimValues,state,varargin{:});

Error in ==> fminsearch>callOutputAndPlotFcns at 478
            stop = callAllOptimOutputFcns(outputfcn,xOutputfcn,optimValues,state,varargin{:}) || stop;

Error in ==> fminsearch at 213
    [xOutputfcn, optimValues, stop] = callOutputAndPlotFcns(outputfcn,plotfcns,v(:,1),xOutputfcn,'init',itercount, ...

Error in ==> myproblem1 at 4
        [x fval history] = fminsearch(@objfun, x0,options)
请各位虫哥虫姐帮忙看看,谢谢啦
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

探求、奋斗、不达目的誓不罢休
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
smileheaven: 金币+5, ★★★★★最佳答案, 谢谢 2012-06-11 12:18:10
stop=false;


结果
state =

done


Exiting: Maximum number of function evaluations has been exceeded
         - increase MaxFunEvals option.
         Current function value: -31981372058113011000000000000000000000000000000000000000000000000000000000000000000000000000.000000


x =

  1.0e+044 *

    0.1905    1.5349


fval =

-3.1981e+091


result =

  1.0e+044 *

    0.1905    1.5349
showmethemoney
2楼2012-05-25 13:35:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smileheaven

金虫 (小有名气)

引用回帖:
2楼: Originally posted by csgt0 at 2012-05-25 13:35:05
stop=false;


结果
state =

done


Exiting: Maximum number of function evaluations has been exceeded
         - increase MaxFunEvals option.
         Current function value: -319813720581 ...

那为什么我这边计算不出来呢?什么地方错了,如果可能,还请您指教,谢谢
探求、奋斗、不达目的誓不罢休
3楼2012-05-25 14:01:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

stop只能是false或true,然后通过stop来判断是否跳出。你不用它就设为false,而不是[];再用state判断

Stop Flag

The output argument stop is a flag that is true or false. The flag tells the optimization function whether the optimization should quit or continue. The following examples show typical ways to use the stop flag.
Stopping an Optimization Based on Data in optimValues

The output function can stop an optimization at any iteration based on the current data in optimValues. For example, the following code sets stop to true if the objective function value is less than 5:

function stop = myoutput(x, optimValues, state)
stop = false;
% Check if objective function is less than 5.
if optimValues.fval < 5
    stop = true;
end

Stopping an Optimization Based on GUI Input

If you design a GUI to perform optimizations, you can make the output function stop an optimization when a user clicks a Stop button on the GUI. The following code shows how to do this, assuming that the Stop button callback stores the value true in the optimstop field of a handles structure called hObject stored in appdata.

function stop = myoutput(x, optimValues, state)
stop = false;
% Check if user has requested to stop the optimization.
stop = getappdata(hObject,'optimstop');
showmethemoney
4楼2012-05-25 14:25:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 smileheaven 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 药学305求调剂 +5 玛卡巴卡boom 2026-04-10 5/250 2026-04-11 12:13 by yutian743
[考研] 304求调剂(085602,过四级,一志愿985) +26 化工人999 2026-04-04 27/1350 2026-04-11 11:42 by may_新宇
[考研] 085600材料与化工329分求调剂 +16 叶zilin 2026-04-10 16/800 2026-04-11 11:04 by may_新宇
[考研] 085500求调剂材料 +10 易11122 2026-04-09 10/500 2026-04-11 10:39 by maddjdld
[考研] 化学工程调剂289 +43 yang婷 2026-04-07 49/2450 2026-04-11 10:37 by 紫曦紫棋
[考研] 0854调剂 +4 长弓傲 2026-04-09 4/200 2026-04-11 09:18 by 猪会飞
[考研] 本科211 工科085400 280分求调剂 可跨专业 +11 LZH(等待调剂中 2026-04-10 11/550 2026-04-11 08:39 by zhq0425
[考研] 一志愿中科院105500专业总分315求调剂 +6 lallalh 2026-04-09 7/350 2026-04-09 17:51 by lallalh
[考研] 求调剂 +8 吃口冰激凌 2026-04-07 8/400 2026-04-09 08:03 by 5268321
[考研] 0703化学调剂 348分 +14 唉我超真没招了 2026-04-06 15/750 2026-04-08 19:16 by 我减肥1
[考研] 0703调剂,一志愿天津大学319分 +23 haaaabcd 2026-04-05 26/1300 2026-04-08 16:19 by luoyongfeng
[考研] 071000生物学,一志愿深圳大学296分,求调剂 +12 TIckLw 2026-04-06 13/650 2026-04-07 20:34 by lijunpoly
[考研] 调剂 +4 mcbbc 2026-04-06 5/250 2026-04-07 12:33 by upczlm1989
[考研] 372分材料与化工(085600)英二数二求调剂 +4 蓝笺片 2026-04-06 4/200 2026-04-07 12:30 by dongzh2009
[论文投稿] Decision: Revise for Editor还会送审吗 100+3 CccccccccFD 2026-04-04 5/250 2026-04-07 10:58 by 北京莱茵润色
[考研] 软工学硕299求调剂 +6 useryy 2026-04-07 6/300 2026-04-07 09:50 by vgtyfty
[考研] 319分085702安全工程求调剂 +6 rious 2026-04-05 6/300 2026-04-07 09:42 by jp9609
[考研] 工科 22408 267求推荐 +4 wanwan00 2026-04-05 5/250 2026-04-06 22:47 by chenzhimin
[考研] 296求调剂 +3 汪!?! 2026-04-05 5/250 2026-04-05 17:38 by 蓝云思雨
[考研] 313求调剂 +3 海日海日 2026-04-04 3/150 2026-04-05 07:48 by 544594351
信息提示
请填处理意见