如何使用Python绘制积分方程?

时间:2018-12-28 08:34:18

标签: python integral

我有一些积分方程,需要将其转换为Python。问题是当我尝试根据方程式绘制图形时,某些图形与原始图形不相同。

第一个等式是正常操作中身份验证的错误概率: enter image description here

第二个方程是MIM攻击下身份验证的错误概率:

enter image description here

错误概率可以通过以下方式计算:

enter image description here

请注意: enter image description here

假定图形(原始)如下所示:

enter image description here

Pe ^ normal =蓝线

Pe ^ MIM =红线

两个错误概率之间的差异=绿线

我试图将其编码为Python,这是我的完整代码:

import matplotlib.pyplot as plt
import math
import numpy as np
from scipy.special import iv,modstruve

x=np.arange(0.1,21,1)
x = np.array(x)
t = 0.9
y = (np.exp(t*x/2)*(iv(0, t*x/2) - modstruve(0,t*x/2))-1)/(np.exp(t*x)-1)
z = (np.exp((1-t**2)*x/2)*(iv(0, (1-t**2)*x/2) - modstruve(0,(1-t**2)*x/2))-1)/(np.exp((1-t**2)*x)-1)
z2= y+z


plt.plot(x, y,'o', color='red',label='Normal')
plt.plot(x, z2,  '-', color='black', label='MIM')
plt.plot(x, z,  marker='s', linestyle='--', color='g', label='DIFF')
plt.xlabel('Mean photon number N')
plt.ylabel('Error probabiity')
plt.scatter(x,y)
plt.text(10, 0.4, 't=0.9', size=12, ha='center', va='center')
plt.ylim([0, 0.5])
plt.xlim([0, 20])
plt.legend()
plt.show()

代码产生的图形为: enter image description here

就Pe ^ MIM的N = 0(红线)和两个错误概率之间的差(绿线)而言,我的图看起来与原始图不相同。

我希望有人可以帮助我解决这个问题。

谢谢。

0 个答案:

没有答案