Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 微分方程的matplotlib精确解_Python_Python 2.7_Numpy_Matplotlib_Differential Equations - Fatal编程技术网

Python 微分方程的matplotlib精确解

Python 微分方程的matplotlib精确解,python,python-2.7,numpy,matplotlib,differential-equations,Python,Python 2.7,Numpy,Matplotlib,Differential Equations,我试图用matplotlib绘制python2.7中放射性泄漏模型微分方程的精确解。当用Euler方法或SciPy绘制图形时,我得到了预期的结果,但使用精确解时,输出的是一个直线图,应该是对数曲线 这是我的密码: import math import numpy as np import matplotlib.pyplot as plt #define parameters r = 1 beta = 0.0864 x0 = 0 maxt = 100.0 tstep = 1.0 #Make a

我试图用matplotlib绘制python2.7中放射性泄漏模型微分方程的精确解。当用Euler方法或SciPy绘制图形时,我得到了预期的结果,但使用精确解时,输出的是一个直线图,应该是对数曲线

这是我的密码:

import math
import numpy as np
import matplotlib.pyplot as plt

#define parameters
r = 1
beta = 0.0864
x0 = 0
maxt = 100.0
tstep = 1.0

#Make arrays for time and radioactivity

t = np.zeros(1)

#Implementing model with Exact solution where Xact = Exact Solution
Xact = np.zeros(1)
e = math.exp(-(beta/t))
while (t[-1]<maxt):
    t = np.append(t,t[-1]+tstep)
    Xact = np.append(Xact,Xact[-1] + ((r/beta)+(x0-r/beta)*e))

#plot results
plt.plot(t, Xact,color="green")
我意识到我的问题可能是由于一个不正确的方程式,但如果有人能指出我代码中的错误,我将非常感激。干杯。

您可能希望e依赖于t,例如

然后使用

 Xact.append( (r/beta)+(x0-r/beta)*e(t[-1]) )
但是你可以把它们都缩短

t = np.arange(0, maxt+tstep/2, tstep)
plt.plot(t, (r/beta)+(x0-r/beta)*np.exp(-t/beta), color="green" ) 
t = np.arange(0, maxt+tstep/2, tstep)
plt.plot(t, (r/beta)+(x0-r/beta)*np.exp(-t/beta), color="green" )