2013-01-31 179 views
-2

有人可以幫助我,並告訴是什麼問題? 我必須計算一些積分,並且不斷收到此錯誤。Matlab和積分計算

例子:

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{:}); 
+0

你能解釋一下嗎?我的準則中沒有「eval」。 – cleveroid

回答

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) 
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繪圖或做任何你想要的。

乾杯!

+0

@cleveroid請問爲什麼你不接受我的問題? – wotann07