matlab中integral2中的嵌套积分
我试图获取由积分定义的函数的二重积分(使用积分2) 以下是我目前正在尝试的:matlab中integral2中的嵌套积分,matlab,nested,integration,integral,Matlab,Nested,Integration,Integral,我试图获取由积分定义的函数的二重积分(使用积分2) 以下是我目前正在尝试的: t=linspace(0,1,50); fun_1= @(v) exp(.071*v) fun = @(x,y) exp(0.14*0.00607*integral(@(u)fun_1(u),0,x)).*exp(-(x-y).^2).*exp(0.14*0.00607*integral(@(u)fun_1(u),0,x)); for i=2:length(t) for j=i:length(t)
t=linspace(0,1,50);
fun_1= @(v) exp(.071*v)
fun = @(x,y) exp(0.14*0.00607*integral(@(u)fun_1(u),0,x)).*exp(-(x-y).^2).*exp(0.14*0.00607*integral(@(u)fun_1(u),0,x));
for i=2:length(t)
for j=i:length(t)
A(i,j)=integral2(fun,t(i-1),t(i),t(j-1),t(j));
end
end
我收到了错误
使用整数(第86行)时出错A和B必须是浮点标量
任何人都可以提供有关如何解决此问题的任何信息。给您:
l=3;
t=linspace(0,1,365);
fun3= @(v) integral(@(v)exp(.071*v),0,v,'ArrayValued',true);
for i=2:length(t)
for j=i:length(t)
xx=t(i);
yy=t(j);
fun = @(x,y) exp(0.14*0.00607*fun3(yy)).*exp(-(x-y).^2/l).*exp(0.14*0.00607*fun3(xx));
y(i,j)=integral2(fun,t(i-1),t(i),t(j-1),t(j));
end
end
它可以工作,但速度非常慢。给你:
l=3;
t=linspace(0,1,365);
fun3= @(v) integral(@(v)exp(.071*v),0,v,'ArrayValued',true);
for i=2:length(t)
for j=i:length(t)
xx=t(i);
yy=t(j);
fun = @(x,y) exp(0.14*0.00607*fun3(yy)).*exp(-(x-y).^2/l).*exp(0.14*0.00607*fun3(xx));
y(i,j)=integral2(fun,t(i-1),t(i),t(j-1),t(j));
end
end
它可以工作,但速度很慢