In [1]:
%pylab inline
from nesode import *
#НЕ боимся WARNING'а ниже
Populating the interactive namespace from numpy and matplotlib

In [2]:
rcParams["figure.figsize"]=(9,7)
normdirfield(arange(-4,4,0.75),arange(-10,10,1),lambda x,y: -y**2-4*y-3,color='blue',linewidth=1,length=0.6)
axis([-4,4,-10,10])
center_spines()
mplot(linspace(-4,4),lambda t: exp(t),color='red') 
def eulersplot(f, xa, xb, ya, n=500, **kw):
    """plots numerical solution y'=f
    # xa: initial value of independent variable
    # xb: final value of independent variable
    # ya: initial value of dependent variable
    # n : number of steps (higher the better)
    """
    h = (xb - xa) / float(n)
    x = [xa] 
    y = [ya]
    for i in range(1,n+1):
        y.append(y[-1] + h * f(x[-1], y[-1]))
        x.append(x[-1] + h)
    plot(x,y, **kw)

eulersplot(lambda x,y:-y**2-4*y-3, -4, 4, 5,color="green")
eulersplot(lambda x,y:-y**2-4*y-3, -2, 4, 10, 100,color="green")
#СТРОКА НИЖЕ ВЫДАЕТ ОШИБКУ, потому что уходит на минус бесконечность. Не делайте так!
eulersplot(lambda x,y:-y**2-4*y-3, -4, 4, -3.1, 100,color="green")
---------------------------------------------------------------------------
OverflowError                             Traceback (most recent call last)
<ipython-input-2-25f31fe226e7> in <module>()
     22 eulersplot(lambda x,y:-y**2-4*y-3, -2, 4, 10, 100,color="green")
     23 #СТРОКА НИЖЕ ВЫДАЕТ ОШИБКУ, потому что уходит на минус бесконечность. Не делайте так!
---> 24 eulersplot(lambda x,y:-y**2-4*y-3, -4, 4, -3.1, 100,color="green")

<ipython-input-2-25f31fe226e7> in eulersplot(f, xa, xb, ya, n, **kw)
     15     y = [ya]
     16     for i in range(1,n+1):
---> 17         y.append(y[-1] + h * f(x[-1], y[-1]))
     18         x.append(x[-1] + h)
     19     plot(x,y, **kw)

<ipython-input-2-25f31fe226e7> in <lambda>(x, y)
     22 eulersplot(lambda x,y:-y**2-4*y-3, -2, 4, 10, 100,color="green")
     23 #СТРОКА НИЖЕ ВЫДАЕТ ОШИБКУ, потому что уходит на минус бесконечность. Не делайте так!
---> 24 eulersplot(lambda x,y:-y**2-4*y-3, -4, 4, -3.1, 100,color="green")

OverflowError: (34, 'Result too large')
C:\Users\User\Anaconda\lib\site-packages\matplotlib\lines.py:503: RuntimeWarning: invalid value encountered in greater_equal
  return np.alltrue(x[1:] - x[0:-1] >= 0)

Привет! $$\int_{0}^1x^2 dx$$

In []:
range(-5,6,2)+[123,123.12]
In []:
x=range(-5,6,2)
x.append([123,123.1])
x
In []: