-2

有人可以帮助我并告诉我有什么问题吗?我必须计算一些积分,并且不断收到此错误。

例子:

quad('(x.^3)*(sqr.((x.^4)+1))',1,8)

??? Error using ==> inline.subsref at 14
Not enough inputs to inline function.

Error in ==> quad at 77
y = f(x, varargin{:});
4

2 回答 2

2

你的功能是错误的:

(x.^3)*(sqr.((x.^4)+1)) 

不是一个合法的功能。sqr 未定义,如果 x 是向量,则不能 *。你的意思是用 sqrt 代替 sqr 吗?要修复 *,只需使用 .*(逐个元素相乘),但您已经知道了。

它应该是:

(x.^3).*(sqrt((x.^4)+1)) 

您可以将代码更改为:

quad(@(x)((x.^3).*(sqrt((x.^4)+1))),1,8)

或者

quad('((x.^3).*(sqrt((x.^4)+1)))',1,8)
于 2013-01-31T21:21:49.467 回答
0

您必须先定义函数:

f = inline ('(x.^3).*(sqrt.((x.^4)+1))'); % define function f(x) = (x^3)*(sqrt(x^4 + 1))
q = quad(f, 1, 8);  %evaluate integral

然后你可以用 q 绘制或做任何你想做的事情。

干杯!

于 2013-01-31T21:28:45.327 回答