matlab 中quadl函数调用

函数调用过程N = quadl(@func1,xf,xd,[],[],sp,xd,R); % 精馏段理论板数N

%函数定义
function f = func2(x,sp,xw,R1) % 定义被积函数(提馏段)
y = fnval(sp,x);
f = 1./(y-x-(y-xw)/R1);
函数定义过程中有x、sp、xd、R 为什么quadl在调用时只向func中输入了sp、xd、R三个参数?

类似quadl这类函数被称为“函数的函数”,也就是说,其输入参数本身是函数(可以是函数句柄,如本例的func1,也可以是函数名)。

quadl这类函数的运行过程中,会调用作为输入参数的那个函数(func1),而后者的第一个输入参数由quadl内部来提供。例如,进行积分时,需要根据一定的规则调整积分步长,产生不同的x来调用func1,直到满足误差要求。

而func1后面的那几个参数(sp、xd、R)称为附加参数(additional arguments),quadl函数本身不对这些参数做任何处理,只是原封不动地将其传递给func1。传递附加参数的做法早期主要靠这种方式,在7.0之后的版本中,更多的使用匿名函数或嵌套函数的机制实现附加参数的传递。
温馨提示:答案为网友推荐,仅供参考
相似回答