Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 如何在施工期间消除瞬态?_Python - Fatal编程技术网

Python 如何在施工期间消除瞬态?

Python 如何在施工期间消除瞬态?,python,Python,我有一个制作图片的程序。但是我需要取消晋升的机会。我试着用t.trans和numpy来做,但是发生了一个错误 这是我的密码: import numpy as np import scipy.integrate as integrate import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D с0 = 0.08 c1 = 10 c11=7 c3 = 3 m0=1 m1=2 m=m0/m1 t_trans=n

我有一个制作图片的程序。但是我需要取消晋升的机会。我试着用t.trans和numpy来做,但是发生了一个错误

这是我的密码:

import numpy as np
import scipy.integrate as integrate
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


с0 = 0.08
c1 = 10
c11=7
c3 = 3
m0=1
m1=2
m=m0/m1
t_trans=np.array((59, 100,5000))
def f(x):
    f = ((-m)*x)+(1/2)*((m0+m1)/m1)*(abs(x+1.0)-abs(x-1.0))
    return f
def dH_dt(H, t=0):
        return np.array([(-c1/c3)*f(H[1]-H[0]),
                     (-1/c3)*(f(H[1]-H[0])+H[2]),
                     c3*H[1],
                     (-c11/c3)*f(H[4]-H[3]),
                     (-1/c3)*(f(H[4]-H[3])+H[5])+(с0/c3)*(H[1]-H[4]),
                     c3*H[4]])

t = np.linspace(1000, 1800, 5000)
H0 = [1, 1, 1, 1, 1, 1]
H, infodict = integrate.odeint(dH_dt, H0, t, full_output=True)
fig = plt.figure()
if t>t_trans:
    plt.plot(H[:,0], H[:,2])
    plt.show()
结果曲线:

我要删除的曲线部分:

您可以通过切片从绘图中排除
H
的前600个条目。我还稍微整理了一下您的代码,结果如下:

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

def f(x, m0=1, m1=2):
    m=m0/m1
    f = ((-m)*x) + (1/2) * ((m0+m1)/m1) * (abs(x+1.0) - abs(x-1.0))
    return f

def dH_dt(H, t=0, c0=0.08, c1=10, c11=7, c3=3):
    return np.array([(-c1/c3) * f(H[1]-H[0]),
                 (-1/c3) *( f(H[1]-H[0]) + H[2]),
                 c3 * H[1],
                 (-c11/c3) * f(H[4]-H[3]),
                 (-1/c3) * (f(H[4]-H[3]) + H[5]) + (c0/c3) * (H[1]-H[4]),
                 c3 * H[4]])

t = np.linspace(1000, 1800, 5000)
H0 = [1, 1, 1, 1, 1, 1]
H, _ = integrate.odeint(dH_dt, H0, t, full_output=True)

fig = plt.figure()
plt.plot(H[600:,0], H[600:,2])
plt.show()
这是生成的图像:

晋升时刻的具体含义是什么?是否要根据t和t_trans之间的比较绘制H的某些元素?你想排除哪些时间步?是的,我想删除前600个时间步。我添加了两张图片,第一张是我拥有的,第二张是需要删除的。我想这是在前600个步骤上。主要的是要了解如何写下它,但你可以稍后再提取“错误发生”不是很具体