八度积分

时间:2013-03-21 17:05:55

标签: octave integrate

我在Octave中集成时遇到了一些问题。 我有以下代码:

  

α= 3;

     

函数y = f(x)
  y = x * x * a;

     

endfunction可写

     

[V,IER,nfun,ERR] =四( “F”,0,3);

功能上的'a'给了我麻烦。 Octave说'a'是不确定的。所以,如果我代替'a'在函数y中输入数字3,一切正常。但是,我想在函数中使用'a',这样我就可以改变它的价值..我该怎么做?

由于

3 个答案:

答案 0 :(得分:1)

您可以使用函数闭包,它将封装a

function f = makefun (a)
    f = @(x) x * x * a;
endfunction

f = makefun(3)

[v, ier, nfun, err] = quad(f, 0, 3);

答案 1 :(得分:1)

有两个主要选项。

正如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'在函数内外都是相同的值。

答案 2 :(得分:0)

您的功能实际上取决于两个值,x和a,因此:

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

我使用内联函数,因为我觉得它更容易理解。