matlab中 积分函数quad使用问题
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/28 00:09:11
matlab中 积分函数quad使用问题
function y=density(x)
xd=[-0.1:0.001:0.1];
h=1.05*std(xd)*(length(xd)^(-1/5));
y=1/(length(xd)*h)*sum(1/sqrt(2*pi)*exp(-(((x-xd)/h).^2)/2));
end
%%%
quad(@density,0,1)
%%运行上述语句发生错误 为什么?
Error using -
Matrix dimensions must agree.
Error in density (line 4)
y=1/(length(xd)*h)*sum(1/sqrt(2*pi)*exp(-(((x-xd)/h).^2)/2));
Error in quad (line 72)
y = f(x,varargin{:});
function y=density(x)
xd=[-0.1:0.001:0.1];
h=1.05*std(xd)*(length(xd)^(-1/5));
y=1/(length(xd)*h)*sum(1/sqrt(2*pi)*exp(-(((x-xd)/h).^2)/2));
end
%%%
quad(@density,0,1)
%%运行上述语句发生错误 为什么?
Error using -
Matrix dimensions must agree.
Error in density (line 4)
y=1/(length(xd)*h)*sum(1/sqrt(2*pi)*exp(-(((x-xd)/h).^2)/2));
Error in quad (line 72)
y = f(x,varargin{:});
发生错误的原因主要是由于quad在做积分元算时,每次迭代会给x一组数据而不是一个数,所以x是一个向量,以此计算出的y也是一个向量,再将向量y中元素的差叠加求出积分.
而在你的函数中又有一个求和的运算,导致x-xd这一步中,xd也是一个向量.quad计算给x的向量和xd的向量长度不统一出现错误.
在这里需要将x-xd的x 和xd都拓展成矩阵,然后求和得出y向量
程序改为:
function y=density(x)
xd=[-0.1:0.001:0.1]';
h=1.05*std(xd)*(length(xd)^(-1/5));
y=1/(length(xd)*h)*sum(1/sqrt(2*pi)*exp(-(((ones(length(xd),1)*x-xd*ones(1,length(x)))/h).^2)/2));
end
而在你的函数中又有一个求和的运算,导致x-xd这一步中,xd也是一个向量.quad计算给x的向量和xd的向量长度不统一出现错误.
在这里需要将x-xd的x 和xd都拓展成矩阵,然后求和得出y向量
程序改为:
function y=density(x)
xd=[-0.1:0.001:0.1]';
h=1.05*std(xd)*(length(xd)^(-1/5));
y=1/(length(xd)*h)*sum(1/sqrt(2*pi)*exp(-(((ones(length(xd),1)*x-xd*ones(1,length(x)))/h).^2)/2));
end
matlab中 积分函数quad使用问题
matlab quad积分问题
matlab积分函数quad用法
matlab 使用quad函数对f1计算数值积分结果,怎么修改啊?
想用matlab的循环结构利用quad quadl trapz解决六个函数的积分值问题
MATLAB中quad的误差问题
matlab中求定积分中 int 与quad的区别?
在问题‘matlab求带参数的积分,符号积分解不出,用数值积分怎么搞’中,如果用quad应该怎么做?
matlab中quad.m函数,我把它简化了,
关于matlab的quad函数
怎样用quad进行数值积分?matlab
用MATLAB 中的quad函数求数值积分怎么求,为什么我的出不来?