积分出问题,求解决
Eq39 -----------------------------------------
alpha=4
L=100;
K=50;
R=1;
r1=R*sqrt(rand(1,L));
seta1=2*pi*rand(1,L);
x1=r1.*cos(seta1);
y1=r1.*sin(seta1);
% plot(x1,y1,'rd')
r2=R*sqrt(rand(1,K));
seta2=2*pi*rand(1,K);
x2=r2.*cos(seta2);
y2=r2.*sin(seta2);
% plot(x2,y2,'b*')
gamma1=zeros(K,L);
d=zeros(1,K);
for u=1:K
for b=1:L
gamma1(u,b) = sqrt((x2(u)-x1(b))^2+(y2(u)-y1(b))^2);
% gamma(u,b) = gamma1(u,b)^(-alpha/2);
end
d(u) = min(gamma1(u,:));
end
f=zeros(1,K);
syms Rt;
R=@(t) exp(-t)/t;
for k = 1:K
f(k)=integral(R,d(k),Inf);
end
plot(d,f,'r*');
出错Output of the function must be the same size as the input. If FUN is an array-valued integrand, set the 'ArrayValued' option to true. 怎么解决?? integral 这个matlab自带函数中好像没有
从提示语句上来看输入输出变量的问题 suffer 发表于 2016-3-28 09:36
integral 这个matlab自带函数中好像没有
从提示语句上来看输入输出变量的问题
就是积分下限是个数组……怎么解决? bedynamic 发表于 2016-3-28 10:07
就是积分下限是个数组……怎么解决?
不明白你的意思 本帖最后由 bedynamic 于 2016-3-28 10:26 编辑
suffer 发表于 2016-3-28 10:22
不明白你的意思
积分下限是代码中求出的d,上限是Inf,我用循环的方式好像有问题,怎么解决啊? bedynamic 发表于 2016-3-28 10:25
积分下限是代码中求出的d,上限是Inf,我用循环的方式好像有问题,怎么解决啊?
现在问题是出现在integral这个函数里边,别人不知道这个函数是真么回事,没办法解决 suffer 发表于 2016-3-28 10:28
现在问题是出现在integral这个函数里边,别人不知道这个函数是真么回事,没办法解决
有没有其它什么函数可以求的?或者换个其它方式求? suffer 发表于 2016-3-28 09:36
integral 这个matlab自带函数中好像没有
从提示语句上来看输入输出变量的问题
这个是2012a以后版本才增加的函数 后面部分修改为:
f=zeros(1,K);
syms Rt;
R=@(t) exp(-t)/t;
for k = 1:K
f(k)=integral(R,d(k),Inf);
end
plot(d,f,'r*'); happy 发表于 2016-3-28 14:17
后面部分修改为:
谢谢了。哈哈
页:
[1]