⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 energybalancemodel.m

📁 调试完成的matlab仿真代码
💻 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 + -