我正在學習數學微積分課程,除了非常基本的課程外,我們不需要知道任何scilab編程,因爲課程大部分都是理論課。我正在閱讀小冊子,並發現這個scilab代碼旨在通過bissection方法找到一個函數的根。 問題是,我無法找到使其工作的方法。我試圖用bissecao(x,-1,1,0.1,40)
來調用它,但它不起作用。 我得到的錯誤是:有關scilab的基本問題
at line 3 of function bissecao (E:\Downloads\bisseccao3.sce line 3)
Invalid index.
正如我高度懷疑,代碼本身是不工作,我試圖尋找什麼我可以發現,似乎錯了,沒有用,我想我可能不知何故,它說錯了。
的代碼如下:
function p = bissecao(f, a, b, TOL, N)
i = 1
fa = f(a)
while (i <= N)
//iteraction of the bissection
p = a + (b-a)/2
fp = f(p)
//stop condition
if ((fp == 0) | ((b-a)/2 < TOL)) then
return p
end
//bissects the interval
i = i+1
if (fa * fp > 0) then
a = p
fa = fp
else
b = p
end
end
error ('Max number iter. exceded!')
endfunction
其中F是函數(I猜),a和b是在其中我們將迭代的間隔的限制,TOL在公差在其程序終止接近零,N是最大迭代次數。
任何幫助如何使這個運行非常感謝。
錯誤日誌不符合我的:您的通話'涉及bissecao''x'作爲第一個參數,這是不是在你的問題中定義。請明確定義:你的意思是身份功能嗎? – PTRK