如何在具有限制的积分方程上进行循环

时间:2014-08-01 09:53:21

标签: matlab

我正在尝试在积分“Ufluid方程”上实现循环。但是我无法成功地进行正确的循环。这个大问题如何使用限制因为范围在每一步都不同。 任何身体帮助我为这些计算制作循环。

U=3.888889
H=0.25

r = linspace(-0.125, -0.0416);
Ufluid1= 1.5*U*(1.0 - (2.0*r/H).^2);
A1=sum(Ufluid1,2)/((-0.125)-(-0.0416))

r = linspace(-0.0416, 0.0416 );
Ufluid2= 1.5*U*(1.0 - (2.0*r/H).^2);
A2 =sum(Ufluid2,2)/((-0.0416)-(0.0416))

r = linspace(0.0416, 0125 );
Ufluid3= 1.5*U*(1.0 - (2.0*r/H).^2);
A3=sum(Ufluid3,2)/((0.0416)-(0125))

提前致谢

2 个答案:

答案 0 :(得分:2)

如果您想将其作为循环,则可以使用单元格。但是,等式看起来不是一个整数,您必须考虑积分元素的宽度。另外,我认为需要调整linspace。但是关于循环,请尝试:

U=3.888889
H=0.25
A = 0;

r{1} = linspace(-0.125, -0.0416);
r{2} = linspace(-0.0416, 0.0416);
r{3} = linspace(0.0416, 0.125);

for k = 1:length(r)
    Ufluid = 1.5*U*(1.0 - (2.0*r/H).^2);
    A=A + sum(Ufluid,2)/((-0.125)-(-0.0416));
end

或者如果您想分别保存不同的部分:

U=3.888889
H=0.25

r{1} = linspace(-0.125, -0.0416);
r{2} = linspace(-0.0416, 0.0416);
r{3} = linspace(0.0416, 0.125);

for k = 1:length(r)
    Ufluid = 1.5*U*(1.0 - (2.0*r/H).^2);
    A{k}=sum(Ufluid,2)/((-0.125)-(-0.0416));
end

答案 1 :(得分:0)

我解决了问题解决方案

j=1
for i = -0.125:0.083333:0.083333;
r = linspace(i, i+0.083333);
Ufluid= 1.5*U*(1.0 - (2.0*r/H).^2);
Ufluid_A(j)=sum(Ufluid,2)/0.083333;
j = j+1;
end