In [2]:
import numpy as np

1. Utwórz wektor zer o rozmiarze 10

np.zeros

In [ ]:

2. Ile pamięci zajmuje tablica?

In [ ]:

3.Utwórz wektor 10 zer z wyjątkiem 5-tego elementu równego 4


In [ ]:

4. Utwórz wektor kolejnych liczb od 111 do 144.

np.arange

In [ ]:

5. Odwróć kolejność elementów wektora.


In [ ]:

6. Utwórz macierz 4x4 z wartościamy od 0 do 15

reshape

In [ ]:

7. Znajdź wskażniki niezerowych elementów wektora

np.nonzero

In [ ]:

8. Znajdż miejsca zerowe funkcji wykorzystując np.nonzero.

  • znajdź odcinek na którym funkcja zmienia znak
  • wykonaj liniową interpolację mjejsca zerowego
  • Algorytm powinien zawierać tylko wektorowe operacje.
  • Funkcja jest dana jako tablice argumentów i wartosci.

In [4]:
import numpy as np 
x = np.linspace(0,10,23)
f = np.sin(x)

In [1]:
%matplotlib inline

In [2]:
import matplotlib.pyplot as plt

In [8]:
plt.plot(x,f,'o-')
plt.plot(4,0,'ro')


Out[8]:
[<matplotlib.lines.Line2D at 0x10efe66d8>]

In [25]:
# f1 = f[1:-1] * f[:]
print(np.shape(f[:-1]))
print(np.shape(f[1:]))
ff = f[:-1] * f[1:]
print(ff.shape)


(22,)
(22,)
(22,)

In [43]:
x_zero = x[np.where(ff < 0)]
x_zero2 = x[np.where(ff < 0)[0] + 1]
f_zero = f[np.where(ff < 0)]
f_zero2 = f[np.where(ff < 0)[0] + 1]
print(x_zero)
print(f_zero)


[ 2.72727273  5.90909091  9.09090909]
[ 0.40256749 -0.36542971  0.32770071]

In [50]:
Dx = x_zero2 - x_zero
df = np.abs(f_zero)
Df = np.abs(f_zero - f_zero2)
print(Dx)
print(df)
print(Df)


[ 0.45454545  0.45454545  0.45454545]
[ 0.40256749  0.36542971  0.32770071]
[ 0.44278217  0.44579401  0.44808461]

In [51]:
xz = x_zero + (df * Dx) / Df
xz


Out[51]:
array([ 3.14053513,  6.28169442,  9.42333485])

In [ ]:


In [54]:
plt.plot(x,f,'o-')
plt.plot(x_zero,f_zero,'ro')
plt.plot(x_zero2,f_zero2,'go')
plt.plot(xz,np.zeros_like(xz),'yo-')


Out[54]:
[<matplotlib.lines.Line2D at 0x10fa56ac8>]

In [40]:
np.where(ff < 0)[0] + 1


Out[40]:
array([ 7, 14, 21])

9. Utwórz macierz 3x3:

  • identycznościową np.eye
  • losową z wartościami 0,1,2

In [ ]:

10. Znajdz minimalną wartość macierzy i jej wskaźnik


In [ ]:

11. Znajdz średnie odchylenie od wartości średniej dla wektora


In [51]:
Z = np.random.random(30)

12. Siatka 2d.

Utworz index-array warości współrzędnych x i y dla obszaru $(-2,1)\times(-1,3)$.

  • Oblicz na nim wartości funkcji $sin(x^2+y^2)$
  • narysuj wynik za pomocą imshow i countour

In [65]:
x = np.linspace(0,3,64)
y = np.linspace(0,3,64)

In [67]:
X,Y = np.meshgrid(x,y)

In [60]:
X


Out[60]:
array([[ 0.,  1.,  2.,  3.],
       [ 0.,  1.,  2.,  3.],
       [ 0.,  1.,  2.,  3.],
       [ 0.,  1.,  2.,  3.]])

In [61]:
Y


Out[61]:
array([[ 0.,  0.,  0.,  0.],
       [ 1.,  1.,  1.,  1.],
       [ 2.,  2.,  2.,  2.],
       [ 3.,  3.,  3.,  3.]])

In [62]:
np.sin(X**2+Y**2)


Out[62]:
array([[ 0.        ,  0.84147098, -0.7568025 ,  0.41211849],
       [ 0.84147098,  0.90929743, -0.95892427, -0.54402111],
       [-0.7568025 , -0.95892427,  0.98935825,  0.42016704],
       [ 0.41211849, -0.54402111,  0.42016704, -0.75098725]])

In [69]:
plt.contourf(X,Y,np.sin(X**2+Y**2))


Out[69]:
<matplotlib.contour.QuadContourSet at 0x10ff8c5f8>

In [ ]:

13. Operator Laplace'a

Oblicz wartość numerycznego operatowa Laplace'a dla funkcji wypróbkowanej w poprzednim zadaniu.

  • Porównaj tak otrzymane wartości z wypróbkowanym analitycznym Laplasjanem.

In [ ]:

14. Równanie logistyczne

Zaimplementuj w numpy algorytm tworzący diagram bifurkacyjny dla równania logistycznego.


In [ ]: