Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

使用Python求解分隙ALOHA最大效率

$
0
0

SymPy是一个符号计算的python库,SymPy支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能。下面我将基于它求解以下两个问题。

当有N个活跃节点的时候,分隙ALOHA的效率为 \(N p (1 - p)^{N - 1}\) ,找出使这个表达式最大化的 p 值。

采用 1 中的p值,计算当 N 趋近于无穷时分隙ALOHA的效率。

from sympy import *

首先导入sympy库,方便起见,导入了所有内容。

N = Symbol('N') p = Symbol('p')

在SymPy中,数学符号是Symbol类的对象,要明确声明符号变量,我们新建了 N 与 p 符号。

e = N*p*(1-p)**(N-1)

定义公式 \(N p (1 - p)^{N - 1}\) 为 e 。

e1 = diff(e, p)

使用 diff(func, var) 函数计算函数 e 对 p 的微分。

solve(e1, p) [1/N]

使用 solve(func, var) 函数求解当 e1=0 时p的值,为 \(\frac{1}{N}\) 可知,使 \(N p (1 - p)^{N - 1}\) 最大化的 p 值为 \(\frac{1}{N}\)

e=e.subs(p, 1/N)

将 \(p = \frac{1}{N}\) 代入原表达式。

limit(e, N, oo) exp(-1)

使用 limit(function, variable, point) 函数求解当N趋向无穷大时, 表达式e的极限,即为 \(\frac{1}{e}\) 所以,当 N 趋近于无穷时分隙ALOHA的效率为 \(\frac{1}{e}\)


Viewing all articles
Browse latest Browse all 9596

Trending Articles