24小时热门版块排行榜    

查看: 1394  |  回复: 12

alice919

金虫 (小有名气)

[求助] 帮我看看问题出在哪?

options =

                   Display: 'iter'
               MaxFunEvals: []
                   MaxIter: []
                    TolFun: []
                      TolX: []
               FunValCheck: []
                 OutputFcn: []
                  PlotFcns: []
           ActiveConstrTol: []
                 Algorithm: []
    AlwaysHonorConstraints: []
            BranchStrategy: []
           DerivativeCheck: []
               Diagnostics: []
             DiffMaxChange: []
             DiffMinChange: []
               FinDiffType: 'central'
         GoalsExactAchieve: []
                GradConstr: []
                   GradObj: []
                   HessFcn: []
                   Hessian: []
                  HessMult: []
               HessPattern: []
                HessUpdate: []
           InitialHessType: []
         InitialHessMatrix: []
          InitBarrierParam: []
     InitTrustRegionRadius: []
                  Jacobian: []
                 JacobMult: []
              JacobPattern: []
                LargeScale: 'off'
        LevenbergMarquardt: []
            LineSearchType: []
                  MaxNodes: []
                MaxPCGIter: []
             MaxProjCGIter: []
                MaxRLPIter: []
                MaxSQPIter: []
                   MaxTime: []
             MeritFunction: []
                 MinAbsMax: []
       NodeDisplayInterval: []
        NodeSearchStrategy: []
          NonlEqnAlgorithm: []
        NoStopIfFlatInfeas: []
            ObjectiveLimit: []
      PhaseOneTotalScaling: []
            Preconditioner: []
          PrecondBandWidth: []
            RelLineSrchBnd: []
    RelLineSrchBndDuration: []
              ScaleProblem: []
                   Simplex: []
       SubproblemAlgorithm: []
                    TolCon: []
                 TolConSQP: []
                TolGradCon: []
                    TolPCG: []
                 TolProjCG: []
              TolProjCGAbs: []
                 TolRLPFun: []
               TolXInteger: []
                  TypicalX: []
               UseParallel: []


                                         Norm of      First-order   Trust-region
Iteration  Func-count     f(x)          step         optimality    radius
     0          3    2.06697e+014                     2.49e+014               1
     1          6    1.03581e+012        0.92278      2.86e+013               1
     2          9    4.38753e+007      0.0759773      5.33e+011            2.31
     3         12       0.0824035    0.000500989      3.85e+007            2.31
     4         15    1.18085e-013   2.17124e-008      3.77e+003            2.31
     5         16    1.18085e-013   3.37394e-017      3.77e+003            2.31

Equation solved, fsolve stalled.

fsolve stopped because the relative size of the current step is less than the
default value of the step size tolerance squared and the vector of function values
is near zero as measured by the default value of the function tolerance.

<stopping criteria details>


x =

    1.0000
    0.9993


fval =

  1.0e-006 *

   -0.3436    0.0006


extiflag =

     2


output =

       iterations: 5
        funcCount: 16
        algorithm: 'trust-region-dogleg'
    firstorderopt: 3.7653e+003
          message: [1x774 char]


JAC =

  1.0e+010 *

    1.0957   -0.0000
   -0.0013    0.0013
帮我看看我的问题出在哪,我该怎么解决?这是一个用来计算化学平衡组成

[ 来自小组 化工工程工艺 ]
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与! 2013-08-01 22:33:51
“方程被求解,fsolve函数停止计算”
迭代最后一步与上一步的差值已经小于options中的预设值。

试着把options中的第4和第5项的TolFun和TolX调得更小一些,试试。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2013-07-26 14:51:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alice919

金虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2013-07-26 14:51:35
“方程被求解,fsolve函数停止计算”
迭代最后一步与上一步的差值已经小于options中的预设值。

试着把options中的第4和第5项的TolFun和TolX调得更小一些,试试。

改了,还是不行
3楼2013-07-26 15:04:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
3楼: Originally posted by alice919 at 2013-07-26 15:04:32
改了,还是不行...

是解非线性方程组吗?再改一下初值看看,同时看看目前的解代入原方程有多接近0。可不可以把待求方程组发上来,我们一起看看。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2013-07-26 15:06:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alice919

金虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2013-07-26 14:51:35
“方程被求解,fsolve函数停止计算”
迭代最后一步与上一步的差值已经小于options中的预设值。

试着把options中的第4和第5项的TolFun和TolX调得更小一些,试试。

function ChemEquil   
clear all
clc
global P
P=600;                %压力单位:kpa
%m=50;              %氢气:草酸二甲酯摩尔比
%KP1=[23.4 21.8 20.3 18.9 17.6 16.4 15.3 14.2 13.3 12.4 11.5 10.8];
%KP2=[0.0393 0.0375 0.0358 0.0342 0.0328 0.0314 0.0301 0.0289 0.0277 0.0267...
   % 0.0257 0.0247];
%KP3=[4.4346E05 3.6476E05 3.0202E05 2.5168E05 2.1101E05 1.7796E05 1.5094E05...
   %1.2872E05 1.1036E05 0.9509E05 0.8233E05 0.7163E05];
%x0=0.001;
%x=fsolve(@equil1,x0,[])
x0=[1 0 ]';
options=optimset('Display','iter', 'LargeScale','off','TolFun', 1.0e-22,'TolX',1.0e-22)
[x,fval,extiflag,output,JAC]=fsolve(@equil1,x0,options)

%...................................................
%平衡组成关系式
function f=equil1(x)
global P
%f=x^2*(51-x)-21.8*((50-2*x)^2*(1-x)*P)
tmp1=50-2*x(1)-2*x(2);
tmp2=51-x(1)-x(2);
f(1)=(x(1)-x(2))*(x(1)+x(2))*tmp2*100-8630*((1-x(1))*tmp1^2*P);
f(2)=(x(1)+x(2))*x(2)*tmp2*100-10.4*((x(1)-x(2))*tmp1^2*P);
这是源程序,可以帮我看看错在哪?是不是要改算法
5楼2013-07-26 15:07:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★
xiegangmai: 金币+2, 谢谢参与! 2013-08-01 22:34:01
引用回帖:
5楼: Originally posted by alice919 at 2013-07-26 15:07:09
function ChemEquil   
clear all
clc
global P
P=600;                %压力单位:kpa
%m=50;              %氢气:草酸二甲酯摩尔比
%KP1=;
%KP2=;
%KP3=;
%x0=0.001;
%x=fsolve(@equil1,x0,[])
x0= ...

目标函数值fval =

  1.0e-006 *

   -0.3436    0.0006

x =

    1.0000
     0.9993
这一组解,已经使fval达到1e-6的高精度了,已经算是成功地解方程了,你觉得有哪里不对吗?
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2013-07-26 15:23:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alice919

金虫 (小有名气)

引用回帖:
6楼: Originally posted by 月只蓝 at 2013-07-26 15:23:01
目标函数值fval =

  1.0e-006 *

   -0.3436    0.0006

x =

    1.0000
     0.9993
这一组解,已经使fval达到1e-6的高精度了,已经算是成功地解方程了,你觉得有哪里不对吗?...

你的结果出现“Equation solved, fsolve stalled.”这个吗,以前我算过别的平衡组成,都没有出现这种情况
7楼2013-07-26 15:31:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★
xiegangmai: 金币+2, 鼓励讨论交流! 2013-08-01 22:34:08
引用回帖:
7楼: Originally posted by alice919 at 2013-07-26 15:31:25
你的结果出现“Equation solved, fsolve stalled.”这个吗,以前我算过别的平衡组成,都没有出现这种情况...

出现了。
这一组x已经使得原方程相当接近于0了,如果这组解符合实际的话,就可以采用。


MATLAB的Help中Equation Solved, fsolve Stalled的意思是:
fsolve found a point where the sum of squares of function values is less than the square root of the TolFun tolerance. However, the last step was less than the TolX tolerance, indicating the function may be changing rapidly, or that the function is not smooth near the final point. This is the meaning of stalled.
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
8楼2013-07-26 15:40:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alice919

金虫 (小有名气)

引用回帖:
8楼: Originally posted by 月只蓝 at 2013-07-26 15:40:42
出现了。
这一组x已经使得原方程相当接近于0了,如果这组解符合实际的话,就可以采用。


MATLAB的Help中Equation Solved, fsolve Stalled的意思是:
fsolve found a point where the sum of squares of func ...

问题是,不符合
9楼2013-07-26 15:44:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
9楼: Originally posted by alice919 at 2013-07-26 15:44:18
问题是,不符合...

在确认方程没问题的情况下,可以根据x的预估区间调节初值。你希望两个x各落在什么范围内?
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
10楼2013-07-26 15:46:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 alice919 的主题更新
信息提示
请填处理意见