Re: [問題] 盲點,看不出自己的問題,請幫幫我!已回收

看板MATLAB作者 (juzn)時間14年前 (2010/05/08 16:12), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
後來仔細看 發現問題所在 ※ 引述《jass1988 (月夜黑風高)》之銘言: : 翻了書後,在幾番煎熬後, : 不才的我,又得跑來叨擾各位大大 : 實感抱歉ˊˋ : 這是小的寫的程式碼: : syms x : f=(x-1/3).*(x-3^1/2).*(x-pi); %function : b =0:0.1:4 ; : a = b + 0.1; %range a and b step 0.1 : if subs(f,b).* subs(f,a) < 0 % found root 這邊條件會導致判斷出錯 因為subs(f,b).* subs(f,a)不是單值而是一串資料矩陣 且這串資料有正有負 並不是每個element都小於0 所以其實程式從這以下就沒執行了 因為條件不符合 可以試著令 fba=subs(f,b).*subs(f,a) 然後條件改為 for i=1:length(b) if fba(i)<0 c(i) = b(i) + (a(i)-b(i))./2; a(i) = a1(i); 等等之類的做法 另外應該注意不符條件時 c的值該如何給定 我不是高手 所以只能到此為止了 也許另有高手有高見 : if subs(f,c).* subs(f,a1) < 0 % found root : c=b1; : a=a2; : if (a2-b1)./b1 <= 5*10^(-6) : g = (a2+b1)./2 ; : end : end : end : vpa(g,6) : 雖然以題目的方式已經說明了精確解 : 但是小的所寫的程式碼 : 是以掃點的方式 進行 : 找到 在有效誤差範圍內解答 : 但 : ??? Undefined function or variable 'g'. : 到底是哪裡出問題啦!! : 請幫助現在這個時間點還在奮鬥的不才吧! : 謝謝您的大恩大德 : ps.其實我寫了好幾種版本,這是小的最體面的一種了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.0.181 ※ 編輯: juzn 來自: 134.208.0.181 (05/08 16:50)

05/08 18:06, , 1F
您太客氣了!真的非常感謝您給我一個不同的想法,感恩
05/08 18:06, 1F
文章代碼(AID): #1BvHpUEP (MATLAB)
文章代碼(AID): #1BvHpUEP (MATLAB)