有人可以幫助我,並告訴是什麼問題? 我必須計算一些積分,並且不斷收到此錯誤。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{:});
有人可以幫助我,並告訴是什麼問題? 我必須計算一些積分,並且不斷收到此錯誤。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{:});
你的功能是錯誤的:
(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)
你必須定義功能第一:
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繪圖或做任何你想要的。
乾杯!
@cleveroid請問爲什麼你不接受我的問題? – wotann07
你能解釋一下嗎?我的準則中沒有「eval」。 – cleveroid