作业帮 > 综合 > 作业

matlab中关于int积分问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 10:01:44
matlab中关于int积分问题
代码如下:
clear;
for delta=0:0.5:3;
sigma1=0.5;
sigma2=0.5+delta;

x=-50:1:50;

M=int(4.*x.*exp((-2).*(x.^2)).*log(4.*x.*exp((-2).*(x.^2))/(x/(0.5+sigma2).^2.*exp((-0.5).(x.^2)/(0.5+sigma2).^2))));

plot(x,M);

grid on;

end

run后出现Undefined function 'int' for input arguments of type 'double'.为什么写成int32(...)或者用trapz就不报错了,但是算出的结果肯定不对.
麻烦帮我把这个循环改一下,想画的图是delta每加一次算出来的M值和x的关系,但是要出现delta=0到3的一共6根线.
clc
clear
figure
hold on
sigma1=0.5;
delta=0:0.5:3;
sigma2=0.5+delta;
x=-50:1:50;
for p=(0.5+sigma2).^2
M=zeros(size(x));
for i=1:length(x)
M(i)=integral(@(x)4*x.*exp(-2*x.^2).*log(4*x.*exp(-2*x.^2)/(x/p.*exp(-0.5.*x.^2/p))),x(1),x(i));
end
plot(x,M);
end
grid on;