Octave への統合に問題があります。次のコードがあります。
a=3;
関数 y = f (x)
y = x*x*a;終了機能
[v,ier,nfun,err]=quad("f",0,3);
関数の「a」が問題を引き起こしています。Octave は、「a」が未定義であると言っています。したがって、'a' の代わりに 3 を関数 y に入れると、すべて正常に動作します。ただし、関数に「a」を入れて、値を変更できるようにしたい..どうすればよいですか?
ありがとう
主なオプションは 2 つあります。
オプション 1 は、voithos が指摘するように、'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 の 2 つの値に依存しているため、次のようになります。
f=@(x,a) x*x*a
[V, IER, NFUN, ERR] = quad (@(x) f(x,3), A, B, TOL, SING)
インライン関数を使用した方が理解しやすいと思います。