地图与整合的结合

时间:2018-01-30 05:18:04

标签: python numpy matplotlib

这是我试图绘制的等式,但几个小时都没有成功。 XA在0到1之间变化。我想在改变eA和n常数时绘制它。我还在学习Python,这对我来说太复杂了。任何帮助都会非常明显。

enter image description here

XA = np.linspace(1e-2, 1-1e-2, 20)

from scipy.integrate import quad
def integrand(XA):
    return ((1+eA*XA)/(1-XA))**n

p = lambda XA: quad(integrand, 1e-2, XA)[0]

xs = 1-XA

def func(n, eA):
    return (XA*((1+eA*XA)/(1-XA))**n)/(p)

n = [1, 1, 2, 2]
eA = [1, 2, 1, 2]

ys = list(map(func, alps, e))

plt.plot(xs, ys)
plt.show()

1 个答案:

答案 0 :(得分:1)

您需要评估这些函数,以便在进一步的计算中使用它们。还要确保为函数提供所需的参数。

这是一个例子:

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad

bracket = lambda eA,XA,n: ((1+eA*XA)/(1-XA))**n 

p = lambda eA,XA,n: quad(lambda x: bracket(eA,x,n), 1e-2, XA)[0]

func = lambda eA,XA,n: XA*bracket(eA,XA,n)/p(eA,XA,n)


ns = [1, 1, 2, 2]
eAs = [1, 2, 1, 2]
XAs = np.linspace(3e-2, 1-1e-2, 50)

for e,n in zip(eAs,ns):
    ys = list(map(lambda x: func(e,x,n), XAs))
    plt.plot(XAs, ys, label="n={}, $e_A$={}".format(n,e))

plt.xlabel("$X_A$")
plt.legend()    
plt.show()

enter image description here