[問題]請問Matlab的不同版本算拋物線法

看板MATLAB作者 (小白)時間12年前 (2013/11/06 12:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想請問利用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
文章代碼(AID): #1IUSD8hq (MATLAB)
文章代碼(AID): #1IUSD8hq (MATLAB)