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

看板MATLAB作者 (月夜黑風高)時間14年前 (2010/05/08 02:42), 編輯推噓2(205)
留言7則, 5人參與, 最新討論串1/2 (看更多)
翻了書後,在幾番煎熬後, 不才的我,又得跑來叨擾各位大大 實感抱歉ˊˋ 這是小的寫的程式碼: 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 c = b + (a-b)./2; a = a1; 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: 114.46.220.221 ※ 編輯: jass1988 來自: 114.46.220.221 (05/08 02:49)

05/08 04:35, , 1F
Undefined function or variable 'g'
05/08 04:35, 1F

05/08 08:27, , 2F
光看第一行就知道你是新手求值不是這樣寫的
05/08 08:27, 2F

05/08 10:22, , 3F
也先把簡體字改一改...
05/08 10:22, 3F
大師有何見看法,請務必解說 因為小的只會這一種 y=[1*1*1,-1/3-3^.5-pi,(-1/3)*(-3^.5)+(-3^.5)*(-pi)+(-1/3)*(-pi),(-1/3)*(-3^.5)*(-pi)]; x=roots(y) %方程式的解析解 x = 3.1416 1.7321 0.3333 但是還是很想知道上面那一種寫法該怎麼寫 syms x f=(x-1/3).*(x-3^0.5).*(x-pi); %function for b =0:0.0001:4 ; % %range a and b step 0.1 if subs(f,x,b).* subs(f,x,b+0.01) < 0 % found root 這裡會找到1但是顯示不出來 if 0.0001./b <= 5*10^(-6) vpa(b,6) end end end 這是今天我又改來改去 的結果.... ※ 編輯: jass1988 來自: 114.46.220.221 (05/08 13:24) ※ 編輯: jass1988 來自: 114.46.220.221 (05/08 13:29)

05/08 14:21, , 4F
單從程式來說 g要存在必須符合(a2-b1)./b1 <= 5*10^(-6)
05/08 14:21, 4F

05/08 14:23, , 5F
當不符合條件時 g不存在 所以出現錯誤
05/08 14:23, 5F

05/08 14:25, , 6F
可以使用 else 來創造不合條件下的g值 使錯誤不會發生
05/08 14:25, 6F

05/08 14:45, , 7F
小的先去上完課就試試看!
05/08 14:45, 7F
文章代碼(AID): #1Bv5yUIv (MATLAB)
文章代碼(AID): #1Bv5yUIv (MATLAB)