2014-02-18 47 views
0

的問題如下:聲明一個數值函數在八度/ MATLAB函數

在八度的邊條falsi方法的伊利諾伊版本實現。 函數的簽名是

illinois(
      f, % a real numeric function 
      a, % left bound of search interval 
      b, % right bound of search interval 
      yAcc, % accuracy in the y-dimsension 
      nIter % maximum number of iterations 
     ) 

提示:http://en.wikipedia.org/wiki/False_position_method#Illinois_algorithm

我想問:

我怎麼能輸入在Matlab功能的真正的數字功能這個問題?

例如說,我正在尋找在X^1月2日至4日和3之間的根,所以這將是對GUI功能應該是

illinois(x^2-4, 1, 3, 0.1, 1000) 

我如何告訴MATLAB /八度這個「數字函數'x^2-4或者我錯誤地解釋了這個問題?

回答

1

看看函數處理:

http://www.gnu.org/software/octave/doc/interpreter/Function-Handles.html

您可以定義使用[email protected](x)(x.^2-2)的功能,採用g(f,1,2,3,4)它傳遞給另一個函數和評價它像所有其他功能f(1)

+0

謝謝!奇蹟般有效!這是唯一可能的解決方案嗎? –

+0

這是我可以推薦的唯一解決方案。另一種方法是將函數作爲字符串傳遞並使用'eval',但總結一些缺點:奇怪的錯誤消息,難以調試,代碼難以閱讀,不支持私有函數,相同的變量名稱衝突和有限的語法,因爲你必須在一行中創建完整的功能。 – Daniel