📄 energybalancemodel.m
字号:
function energybanlancemodel()
%主函数
for i=1:100 %赋初值
u(i)=-1;
a(i)=-1;
end
u(101)=0;
a(1)=1;
a(101)=0;
r=0.3;
%pi=3.14159;
for i=100:-1:1
u(i)=fu(u,a,i);%调用函数求各节点传输的数据量
a(i)=fa(u,a,i);%调用函数求各节点采用直传和多跳传输的比值
end
for i=1:100
d(i)=1+u(i+1)*(1-a(i+1))/(pi*(2*i-1));%数据密度
e(i)=r*(d(i)-1)+(a(i)*i*i-a(i)+1)*d(i);%求能量公式
y(i)=a(i);
end
x=1:1:100;
plot(x,y);
ylabel('\alpha');
xlabel('半径');
title('\alpha Curve for Eo=1403.765');
figure;
y=e;
plot(x,y);
axis([0 120 1403.76 1403.8]);
title('Eo=1403.765');
a
%d
%u
format long;
e
%------------------------------function fa(u,a,i)--------------------------
function ra=fa(u,a,i)
%求直传和多跳传输的比值
if a(i)~=-1
ra=a(i);return;
end
e=1403.765;r=0.3;
%以下是a(x)和u(x)的关系式
a(i)=(e*pi*(2*i-1)-r*fu(u,a,i+1)*(1-fa(u,a,i+1))-(pi*(2*i-1)+fu(u,a,i+1)*(1-fa(u,a,i+1))))/((pi*(2*i-1)+fu(u,a,i+1)*(1-fa(u,a,i+1)))*(i*i-1));
ra=a(i);
%----------------------------------function fu(u,a,i)--------------
function ru=fu(u,a,i)
%求传输的数据量
if u(i)~=-1
ru=u(i);return;
end
%pi=3.14159;
u(i)=pi*(2*i-1)+(1-fa(u,a,i+1))*fu(u,a,i+1);
ru=u(i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -