Как использовать для l oop с odeint в python? - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу решить дифференциальное уравнение с импульсным моментом. Мне нужно изменить начальное значение в каждом новом интервале, но я не смог. Мне нужна помощь, чтобы исправить новое начальное значение. Математически это должно быть y0=y(interval_(i+1))+2/3. Спасибо.

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

interval=[] 
for i in range(10):
    interval.append(i)


def dy_dt(y, t):
    return (2-2*y)

y0 = 0.6  

for i in range(1,9):
        ys = odeint(dy_dt, y0, np.linspace(interval[i],interval[i+1],100))

        y0=ys[interval[i+1]]+2/3 #new initial value. I need help to fix here


        plt.xlabel("t")
        plt.ylabel("y")
        plt.plot(np.linspace(interval[i],interval[i+1],100), ys);
...