作者jim93 (小白)
看板MATLAB
标题[问题]请问Matlab的不同版本算抛物线法
时间Wed Nov 6 12:19:18 2013
想请问利用MATLAB算抛物线法时
function [x,minf] = minPWX(f,a,b,eps)
format long;
if nargin == 3
eps = 1.0e-6;
end
t0 = (a+b)/2;
k = 0;
tol = 1;
while tol>eps
fa = subs(f,findsym(f),a);
fb = subs(f,findsym(f),b);
ft0 = subs(f,findsym(f),t0);
tu = fa*(b^2 - t0^2)+fb*(t0^2 - a^2)+ft0*(a^2 - b^2);
td = fa*(b - t0)+fb*(t0 - a)+ft0*(a - b);
t1 = tu/2/td;
ft1 = subs(f,findsym(f),t1);
tol = abs(t1 - t0);
if ft1 <= ft0
if t1<= t0
b = t0;
t0 = t1;
else
a = t0;
t0 = t1;
end
k = k+1;
else
if t1<= t0
a = t1;
else
b = t1;
end
k = k+1;
end
end
x = t1;
minf = subs(f,findsym(f),x);
format short;
将以上程式码储存成minPWX的m file
来计算f=t^2-log(t)-5
区间为[0.5,4]
算完的结果发现
当使用matlab 2010版本时可得到0.7071的结果
但当使用matlab 2013时 程式会发散 得不到结果
对於版本对影响结果的差异不甚了解
想请问版上的高手了
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.57.49