Afi*_*ir 11 python equation matplotlib scipy
我有几个方程式,需要将其转换为Python.问题是我试图根据等式绘制图形.但是,我得到的图表与原图不同.
在本文中,MIM攻击的错误概率方程式由下式给出:
第一张图片

第二张图片

计算PNS攻击错误概率的公式如下:

区域条件满足的地方:

PNS攻击的错误概率应该如下绘制:

我的问题:如何将公式8.1插入公式8.5?
根据公式8.5,这是我的python代码:
import matplotlib.pyplot as plt
import math
import numpy as np
from scipy.special import iv,modstruve
x=[0, 5, 10, 15, 20]
t= 0.9
x = np.array(x)
y = (np.exp(x*t/2)*(iv(0, x*t/2) - modstruve(0,x*t/2))-1)/(np.exp(x*t/2-1))
plt.plot(x, y, label='Normal')
plt.xlabel('Mean photon number N')
plt.ylabel('Error probabiity')
plt.scatter(x,y)
plt.title('N/2')
plt.ylim([0, 0.5])
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.
谢谢.
小智 6
我通过使用图像中给出的公式为N1和N2计算y来更新代码.这给了我y1和y2,我相信它是绘制函数f(y1,y2)的组成部分.然而,如果没有纸张的其余部分,我无法弄清楚您提供的图像上的确切内容.
以下代码生成的图像非常类似于f : y1,y2 -> y1+y2:
import matplotlib.pyplot as plt
import numpy as np
from scipy.special import iv, modstruve
x = range(0, 20, 1)
# t= 0.1
for t, color in zip([0.9, 0.1, 0.5], ['b', 'g', 'r']):
x1 = (1 - t) * np.array(x)
y1 = (np.exp(x1 / 2) * (iv(0, x1 / 2) - modstruve(0, x1 / 2)) - 1) / (np.exp(x1) - 1)
x2 = (1 - t) * t * np.array(x)
y2 = (np.exp(x2 / 2) * (iv(0, x2 / 2) - modstruve(0, x2 / 2)) - 1) / (np.exp(x2) - 1)
y = y1 + y2
plt.plot(x, y, label=t, color=color)
plt.scatter(x, y, color=color)
# N1 = N2
x1 = np.array(x) / 2
y1 = (np.exp(x1 / 2) * (iv(0, x1 / 2) - modstruve(0, x1 / 2)) - 1) / (np.exp(x1) - 1)
x2 = np.array(x) / 2
y2 = (np.exp(x2 / 2) * (iv(0, x2 / 2) - modstruve(0, x2 / 2)) - 1) / (np.exp(x2) - 1)
y = y1 + y2
plt.plot(x, y, label="N1=N2=N/2", color='k')
plt.scatter(x, y, color='k')
plt.xlabel('Mean photon number N')
plt.ylabel('Error probabiity')
plt.title('N/2')
plt.ylim([0, 0.35])
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1034 次 |
| 最近记录: |