Matlab求解积分上限是自变量的计算方法
数学中经常会遇到积分上限是自变量的积分,例如计算大气透过率的积分:
Γ
(
z
)
=
e
x
p
(
−
∫
0
z
A
(
t
)
d
t
)
.
\Gamma(z) = exp(-\int_0^z \Alpha(t)dt)\,.
Γ(z)=exp(−∫0zA(t)dt).
但Matlab的数值积分中没有直接计算此类积分的函数以调用,因此,可采用两步实现:
1、定义积分核函数:
funA = @(t) A(t);
2、定义积分函数:
funGamma = @(z) integral(funA, 0, z);
之后可用for循环对每个自变量求出积分,并作图。
h = (0:0.1:30); %海拔
Gamma = zeros(1,length(h)); %预分配内存
for i = 1:1:length(h)
Gamma(i) = exp(-funGamma(h(i)));
end
figure(1)
plot(Gamma,h);
此为一个简单易于实现的方法,共大家参考。