[問題] Input argument "x" is undefined已回收

看板MATLAB作者 (Go Suns)時間16年前 (2009/09/29 21:58), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
在 command window 輸入 main 之後,會出現下面的訊息 ??? Input argument "x" is undefined. Error in ==> main at 2 y = x^2 - 2*x + 1; 那想請問,我應該要在哪邊定義 x? 感謝回答 以下是 main.m 的程式碼 (照著老師上課寫在黑板的) %用二分法求出一元多次方程式的根 function y=f(x) y = x^2 - 2*x + 1; bisection(@f, 1e-8, 1000, 0, 2); end 以下是 bisection.m 的內容 (老師提供的) function bisection(f, tolerance, maxIter, a, b) i = 1; qa = f(a); qb = f(b); if qa*qb > 0, disp('Bracket error!'); return; end while i <= maxIter, p = 0.5*(a+b); q = f(p); disp(sprintf('n = %3d, p = %+0.16e ', i, p)); if abs(q) < tolerance, break; end i = i + 1; if (q*qa > 0), a = p; qa = q; else b = p; qb = q; end end if ( i > maxIter), disp('Fail after maximum number of iterations.'); end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.233.227

09/29 22:25, , 1F
把y=f(x)改成y = main(x)
09/29 22:25, 1F

09/29 22:25, , 2F
然後在command window輸入 main(0) 試看看?
09/29 22:25, 2F

09/29 22:32, , 3F
一樣無法成功耶
09/29 22:32, 3F

09/29 22:33, , 4F
抱歉上面方法可能不行, 這筆記有些地方有錯
09/29 22:33, 4F

09/29 22:33, , 5F
main.m改成f.m, 保留前面2行就好
09/29 22:33, 5F

09/29 22:35, , 6F
直接在主視窗輸入bisection(@f, 1e-8, 1000, 0, 2)
09/29 22:35, 6F

09/29 22:40, , 7F
好像可以了耶! 感謝onbit大大~ 有事先下線,等等再測試
09/29 22:40, 7F
文章代碼(AID): #1AmXATMg (MATLAB)
文章代碼(AID): #1AmXATMg (MATLAB)