Matlab与积分计算

Matlab与积分计算,matlab,integral,Matlab,Integral,有人能帮我告诉我是什么问题吗? 我必须计算一些积分,我不断地得到这些误差 例如: 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)) 这不

有人能帮我告诉我是什么问题吗? 我必须计算一些积分,我不断地得到这些误差

例如:

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)


您必须首先定义函数:

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来绘图或做任何你想做的事情


干杯

你能再解释一下吗?我的指导方针中没有“eval”。@克利夫罗伊德我可以问你为什么不接受我的问题吗?
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