全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1477 1
2015-08-19
function [x,minf]=minpw(f,a,b,eps)
format long;
if nargin==3
    eps=1.0e-4;
end
t0=(a+b)/2;
while 1
    fa=subs(f,findsym(f),a);
    fb=subs(f,findsym(f),b);
    ft0=subs(f,findsym(f),t0);
    u=fa*(b^2-t0^2)+fb*(t0^2-a^2)+ft0*(a^2-b^2);
    v=fa*(b-t0)+fb*(t0-a)+ft0*(a-b);
    t1=0.5*u/v;
    ft1=subs(f,findsym(f),t1);
    tol=abs(t1-t0);
    if ft1<=ft0
        if tol<eps
           x=t1;
            break;
        else
            if t1<=t0
                b=t0;
               t0=t1;

            else a=t0;
               t0=t1;
            end

        end
    else
       if tol<eps
           x=t0;
           break;
       else
           if t1<=t0
              a=t1;

          else b=t1;

           end
      end
    end
end

minf=subs(f,findsym(f),x);
format short;

一直在运行,出不来结果。麻烦大神看一下哪里有问题。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-8-21 09:48:45
加几个断点看看吧,这种情况大多是break条件没有满足造成的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群