y='4*a*sqrt(1-(c/a)^2*sin(x)^2))';
true=quad(y,0,2*pi,10^-6);
为什么输入这样的指令总是出现如下错误
??? Error using ==> inline.subsref at 14
Not enough inputs to inline function.
Error in ==> quad at 77
y = f(x, varargin{:});
Error in ==> Untitled5 at 9
true=quad(y,0,2*pi,10^-6)
还有我想问下那个@(x)是什么意思
你的函数y=@(x)4*a*sqrt(1-(c/a)^2*sin(x).^2)里面在sin(x)后面有个点,这是为什么呢?
追答quad是数值积分,所以输入的函数必须可以进行向量运算。若没有这个点,x就不能是向量,也就不能进行向量运算了。
追问那如果我不是要进行向量运算,是不是直接不要那个点就可以了?还有这个点放在外面和里面有什么差别呢?
追答当你使用quad时,就默认是在做向量运算了。如果用在其他不需要向量运算的地方,这个点就不用加。
因为在做乘方这个运算时用到这个点,所以它必须紧连^符号。点只适用在乘法,乘方和除法这三个运算,加减法加不加都一样。sin(x.)语法上是不对的。