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;
一直在运行,出不来结果。麻烦大神看一下哪里有问题。


雷达卡




京公网安备 11010802022788号







