我在集成八度時遇到了一些問題。 我有以下代碼:八度積分
a = 3; y = x(x)
y = x * x * a;endfunction可寫
[V,IER,nfun,ERR] =四( 「F」,0,3);
這個'a'函數給我帶來麻煩。Octave說'a'是未定義的。所以,如果我不是'a'在函數y中放置數字3,那麼一切正常。然而,我想在函數中有'a',所以我可以改變它的值。我該怎麼做?
感謝
我在集成八度時遇到了一些問題。 我有以下代碼:八度積分
a = 3; y = x(x)
y = x * x * a;endfunction可寫
[V,IER,nfun,ERR] =四( 「F」,0,3);
這個'a'函數給我帶來麻煩。Octave說'a'是未定義的。所以,如果我不是'a'在函數y中放置數字3,那麼一切正常。然而,我想在函數中有'a',所以我可以改變它的值。我該怎麼做?
感謝
你可以使用一個功能關閉,這將封裝a
。
function f = makefun (a)
f = @(x) x * x * a;
endfunction
f = makefun(3)
[v, ier, nfun, err] = quad(f, 0, 3);
有兩個主要選項。
如voithos筆記所示,選項1是爲該函數輸入'a'。
選項2是將'a'定義爲全局變量。
global a=3;
function y = f (x)
global a
y = x*x*a;
endfunction
[v,ier,nfun,err]=quad("f",0,3);
這將導致'a'在功能內外都是相同的值。
你的函數實際上是依賴於兩個值,X和A,爲此:
[email protected](x,a) x*x*a
[V, IER, NFUN, ERR] = quad (@(x) f(x,3), A, B, TOL, SING)
我用內聯函數,因爲我認爲這是比較容易理解。