[英]Octave integrating
我在Octave中集成時遇到一些問題。 我有以下代碼:
a = 3;
函數y = f(x)
y = x * x * a;終端功能
[v,ier,nfun,err] = quad(“ f”,0,3);
函數中的“ a”給我帶來麻煩。 八度表示“ a”未定義。 因此,如果我不是在功能y中將數字3替換為“ a”,則一切正常。 但是,我想在功能中使用“ 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這兩個值:
f=@(x,a) x*x*a
[V, IER, NFUN, ERR] = quad (@(x) f(x,3), A, B, TOL, SING)
我使用內聯函數,因為我認為它更易於理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.