0

我正在使用 matlab 中的数值积分子程序在 Matlab 中编写一个小脚本

我对变量的维度有一些问题:

我需要将 o 到 pi/2 的衰落的矩生成函数的乘积与给定的另一个函数相结合:

mgf= (2*(sin(phi)).^2)/(2*(sin(phi)).^2+ EbNolin.*b);

另一个功能是:

function = -b./(2*((sin(phi)).^2))

其中 b 是一个常数:

问题是 EbNolin 是一个向量,每个值都会变化为:

EbNodB = [0:0.51:40];
EbNolin = 10.^(EbNodB/10) ;

所以为了使积分我定义:

phi =0:0.02:pi/2;

为了获得相同长度的 EbNolin 和 phi,但是当我尝试集成时出现很多错误,我尝试过:

for i = 1:(79),

Pe = [Pe (a/pi).*quadgk(mgf(i)*function),phi,0,pi/2] %using quadgk
Pe = [Pe (a/pi).*integrate(mgf(i)*function),phi,0,pi/2] %using integrate
Pe = [Pe (a/pi).*int(mgf(i)*function),phi,0,pi/2] %using int

但是总有一些事情......我不知道我是否正在将积分整合到一个循环中,但我不知道如何以其他方式做到这一点。我的matlab版本是r2010

如果有人能给我一点帮助,我会很高兴,谢谢!

4

1 回答 1

0

尝试像这样计算 mgf:

mgf= (2*(sin(phi)).^2)./(2*(sin(phi)).^2+ EbNolin.*b);

还要记住,而不是:

EbNodB = [0:0.51:40];
phi =0:0.02:pi/2;

您可以使用:

EbNodB = linspace(0, 40, 79);
phi = linspace(0, pi/2, 79) ;
于 2013-11-15T01:44:31.983 回答