首页 > 解决方案 > 如何使用 Python 绘制积分方程?

问题描述

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

第一个等式是正常操作中认证的错误概率: 在此处输入图像描述

第二个等式是MIM攻击下认证的错误概率:

在此处输入图像描述

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

在此处输入图像描述

值得注意的是: 在此处输入图像描述

假设,图表(原始)将显示如下:

在此处输入图像描述

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()

代码生成的图形是: 在此处输入图像描述

在 Pe^MIM 的 N=0 (红线)和两个错误概率之间的差异(绿线)方面,我的情节看起来与原始情节不同。

我希望任何人都可以帮助我解决这个问题。

谢谢你。

标签: pythonintegral

解决方案


推荐阅读