24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1163  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 22408 312求调剂 +24 门路摸摸 2026-04-14 26/1300 2026-04-18 13:04 by wunaiy88
[考博] 申博/考博 +3 啃面包的小书虫 2026-04-17 4/200 2026-04-17 23:54 by 阳阳阳^_^
[考研] 一志愿中科大材料与化工,353分还有调剂学校吗 +10 否极泰来2026 2026-04-15 12/600 2026-04-17 17:54 by mapenggao
[考研] 335求调剂 +20 想上岸呀!! 2026-04-12 23/1150 2026-04-17 10:50 by cuisz
[考研] 279求调剂 +13 张番茄不炒蛋 2026-04-11 13/650 2026-04-17 10:38 by cuisz
[考研] 294求调剂 +14 淡然654321 2026-04-15 14/700 2026-04-16 21:01 by lpl364211
[考研] 291求调剂 +11 关忆北. 2026-04-14 11/550 2026-04-16 15:18 by jiahl2024
[考研] 297,工科调剂? +10 河南农业大学-能 2026-04-14 10/500 2026-04-15 21:50 by noqvsozv
[考研] 一志愿A区211,22408 321求调剂 +6 随心所欲☆ 2026-04-15 7/350 2026-04-15 21:45 by lbsjt
[考研] 085404 22408 309分求调剂 +9 lzmk 2026-04-14 10/500 2026-04-15 20:02 by 学员JpLReM
[考研] 通信工程求调剂!!! +6 zlb770521 2026-04-14 6/300 2026-04-15 20:00 by 学员JpLReM
[考研] 药学求调剂 +11 RussHu 2026-04-12 13/650 2026-04-15 19:07 by zhuwenxu
[考研] 求调剂 +12 何气正 2026-04-13 13/650 2026-04-14 14:47 by zs92450
[考研] 105500药学求调剂 +4 x_skys 2026-04-12 4/200 2026-04-14 13:37 by rndfc
[考研] 085600材料与化工349分求调剂 +16 李木子啊哈哈 2026-04-12 17/850 2026-04-14 09:11 by fenglj492
[考研] +10 李多米lee. 2026-04-12 11/550 2026-04-12 22:58 by yuyin1233
[考研] 0831一轮调剂失败求助 +10 小熊睿睿_s 2026-04-11 10/500 2026-04-12 22:43 by 长弓傲
[考研] 346分,工科0854求调剂,专硕 +6 moser233 2026-04-12 7/350 2026-04-12 22:11 by fqwang
[考研] 339求调剂 +8 hanwudada 2026-04-11 9/450 2026-04-12 15:36 by laoshidan
[考研] 求调剂,一志愿材料科学与工程985,365分, +8 材化李可 2026-04-11 10/500 2026-04-12 08:42 by 852137818
信息提示
请填处理意见