1

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」を入れて、値を変更できるようにしたい..どうすればよいですか?

ありがとう

4

3 に答える 3

2

主なオプションは 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」は関数の内外で同じ値になります。

于 2013-03-22T05:08:47.490 に答える
1

関数は実際には x と a の 2 つの値に依存しているため、次のようになります。

f=@(x,a) x*x*a
[V, IER, NFUN, ERR] = quad (@(x) f(x,3), A, B, TOL, SING)

インライン関数を使用した方が理解しやすいと思います。

于 2013-05-08T12:59:57.393 に答える