Toggle navigation
Images.Elk.pl
04 PythonMatematyk
Matematyka
Matematyka
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 1
Plan prezentacji
Plan prezentacji
Matematyka
Matematyka
Liczby zespolone
Liczby zespolone
Algebra boolea
Algebra boolea
Rachunek zbiorów
Rachunek zbiorów
SciPy oraz matplotlib
SciPy oraz matplotlib
Rozwiązywanie układu równań
Rozwiązywanie układu równań
Obliczanie wartości całki oznaczonej
Obliczanie wartości całki oznaczonej
Ustalenie punktu przecięcia krzywych
Ustalenie punktu przecięcia krzywych
Szukanie pierwiastków wielomianu
Szukanie pierwiastków wielomianu
Wartości i wektory własne macierzy hermitowskiej
Wartości i wektory własne macierzy hermitowskiej
Interpolacja funkcji
Interpolacja funkcji
Bibiloteki do tworzenia wykresów
Bibiloteki do tworzenia wykresów
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 2
Inne wbudowane funkcje matematyczne
Inne wbudowane funkcje matematyczne
Wartość bezwzględna
Wartość bezwzględna
abs(-3) # 3
abs(-3) # 3
Wartość maksymalna
Wartość maksymalna
max([4,7,3]) # 3
max([4,7,3]) # 3
Wartość minimalna
Wartość minimalna
max([2,5,77]) # 77
max([2,5,77]) # 77
Cecha i mantysa ilorazu
Cecha i mantysa ilorazu
divmod(7,6) # (1,1)
divmod(7,6) # (1,1)
http://docs.python.org/library/functions.html
http://docs.python.org/library/functions.html
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 3
Moduł math
Moduł math
import math
import math
Epsilon
Epsilon
math.e # 2.7182818284590451
math.e # 2.7182818284590451
Pi
Pi
math.pi # 3.1415926535897931
math.pi # 3.1415926535897931
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 4
Funkcje matematyczne
Funkcje matematyczne
Sufit
Sufit
math.ceil(wartosc)
math.ceil(wartosc)
Podłoga
Podłoga
math.floor(wartosc)
math.floor(wartosc)
Odległość euklidesowa
Odległość euklidesowa
math.hypot(x, y)
math.hypot(x, y)
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 5
Inne funkcje matematyczne
Inne funkcje matematyczne
Pierwiastek
Pierwiastek
math.sqrt(wartosc)
math.sqrt(wartosc)
Logarytm
Logarytm
math.log(wartosc, baza); math.log10(wartosc)
math.log(wartosc, baza); math.log10(wartosc)
Eksponent
Eksponent
math.exp(wartosc)
math.exp(wartosc)
Konwersja z radianów na stopnie i na odwrót
Konwersja z radianów na stopnie i na odwrót
math.degrees(kat); math.radians(kat)
math.degrees(kat); math.radians(kat)
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 6
Fukcje *czne
Fukcje *czne
Funkcje trygonometryczne
Funkcje trygonometryczne
math.sin(wartosc); math.cos(wartosc); math.tan(wartosc)
math.sin(wartosc); math.cos(wartosc); math.tan(wartosc)
Funkcje cyklometryczne
Funkcje cyklometryczne
math.asin(wartosc); math.acos(wartosc); math.atan(wartosc)
math.asin(wartosc); math.acos(wartosc); math.atan(wartosc)
Funkcje hiperboliczne
Funkcje hiperboliczne
math.sinh(wartosc); math.cosh(wartosc); math.tanh(wartosc)
math.sinh(wartosc); math.cosh(wartosc); math.tanh(wartosc)
http://docs.python.org/library/math.html#module-math
http://docs.python.org/library/math.html#module-math
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 7
Liczby zespolone
Liczby zespolone
liczba = 20 + 7j
liczba = 20 + 7j
Część rzeczywista
Część rzeczywista
liczba.real # 20.0
liczba.real # 20.0
Część urojona
Część urojona
liczba.imag # 7.0
liczba.imag # 7.0
Sprzężenie zespolone
Sprzężenie zespolone
liczba.conjugate() # (20-7j)
liczba.conjugate() # (20-7j)
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 8
Liczby zespolone wbudowane działania
Liczby zespolone wbudowane działania
Dodawanie
Dodawanie
(20 + 10j) + (10 + 20j) # (30 + 30j)
(20 + 10j) + (10 + 20j) # (30 + 30j)
- Odejmowanie
- Odejmowanie
(20 + 10j) - (10 + 20j) # (10 - 10j)
(20 + 10j) - (10 + 20j) # (10 - 10j)
* Mnożenie
* Mnożenie
(2 + 2j) * (3 + 3j) # 12j
(2 + 2j) * (3 + 3j) # 12j
/ Dzielenie
/ Dzielenie
(9 + 9j) / (3 + 3j) # (3 + 0j)
(9 + 9j) / (3 + 3j) # (3 + 0j)
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 9
Math dla liczb zespolonych
Math dla liczb zespolonych
import cmath
import cmath
Analogiczne do math
Analogiczne do math
http://docs.python.org/library/cmath.html
http://docs.python.org/library/cmath.html
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 10
Algebra Boole'a
Algebra Boole'a
Koniunkcja (AND)
Koniunkcja (AND)
12 & 11 # 8
12 & 11 # 8
Alternatywa (OR)
Alternatywa (OR)
12 | 11 # 15
12 | 11 # 15
Alternatywa wykluczajÄ…ca (XOR)
Alternatywa wykluczajÄ…ca (XOR)
12 ^ 11 # 7
12 ^ 11 # 7
http://docs.python.org/reference/expressions.html#binary-bitwise-operations
http://docs.python.org/reference/expressions.html#binary-bitwise-operations
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 11
Rodzaje zbiorów
Rodzaje zbiorów
Zbiory niezmienne
Zbiory niezmienne
z1 = frozenset(['kot', 'pies', 'Ala'])
z1 = frozenset(['kot', 'pies', 'Ala'])
Zbiory zmienne
Zbiory zmienne
z2 =set(['Ola', 'Ala', 'Ela'])
z2 =set(['Ola', 'Ala', 'Ela'])
http://docs.python.org/tutorial/datastructures.html#sets
http://docs.python.org/tutorial/datastructures.html#sets
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 12
Modyfikacja zbioru zmiennego
Modyfikacja zbioru zmiennego
Usuwanie elementów
Usuwanie elementów
z2.remove('Ala') # set(['Ola', 'Ela')]
z2.remove('Ala') # set(['Ola', 'Ela')]
z2.pop() # set(['Ela'])
z2.pop() # set(['Ela'])
z2.clear() # set()
z2.clear() # set()
Rozszerzanie zbioru
Rozszerzanie zbioru
z2.add('Ala') # set(['Ala'])
z2.add('Ala') # set(['Ala'])
z2.update('Ela', 'Ola', 'Ula') # set(['Ala', 'Ela', 'Ola', 'Ula')]
z2.update('Ela', 'Ola', 'Ula') # set(['Ala', 'Ela', 'Ola', 'Ula')]
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 13
Rachunek zbiorów
Rachunek zbiorów
Suma zbiorów |
Suma zbiorów |
z1 | z2; z1.union(z2)
z1 | z2; z1.union(z2)
Różnica zbiorów -
Różnica zbiorów -
z1 z2; z1.difference(z2) # frozenset(['kot', 'pies'])
z1 z2; z1.difference(z2) # frozenset(['kot', 'pies'])
Część wspólna &
Część wspólna &
z1 & z2; z1.intersection(z2) # frozenset(['Ala'])
z1 & z2; z1.intersection(z2) # frozenset(['Ala'])
Symetryczna różnica ^
Symetryczna różnica ^
z1 ^ z2; z1.symatric_difference(z2) # frozenset(['Ela', 'Ola', 'Ula', 'kot', 'pies'])
z1 ^ z2; z1.symatric_difference(z2) # frozenset(['Ela', 'Ola', 'Ula', 'kot', 'pies'])
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 14
Rachunek zbiorów
Rachunek zbiorów
Zawieranie siÄ™ elementu
Zawieranie siÄ™ elementu
'Ala' in z1 # True
'Ala' in z1 # True
Nie zawieranie siÄ™ elementu
Nie zawieranie siÄ™ elementu
'kot' not in z2 # True
'kot' not in z2 # True
Czy podzbiór <=, <
Czy podzbiór <=, <
z1.issubset(z2) # False
z1.issubset(z2) # False
Czy nadzbiór >=, >
Czy nadzbiór >=, >
z2.isuperset(z1) # False
z2.isuperset(z1) # False
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 15
Zaawansowana matematyka
Zaawansowana matematyka
http://scipy.org/
http://scipy.org/
http://matplotlib.sourceforge.net/
http://matplotlib.sourceforge.net/
Wzorowane na Wstęp do SciPy Janusza Szwabińskiego
Wzorowane na Wstęp do SciPy Janusza Szwabińskiego
http://tiny.pl/sd22
http://tiny.pl/sd22
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 16
Rozwiąż układ równań
Rozwiąż układ równań
1 2 3 4 2
1 4 9 16 10
x=
1 8 27 64 44
śą źą śą źą
1 16 81 256 190
from numpy import matrix, linalg
from numpy import matrix, linalg
A = matrix([[1, 2, 3, 4], [1, 4, 9, 16], [1, 8, 27, 64], [1, 16, 81, 256]])
A = matrix([[1, 2, 3, 4], [1, 4, 9, 16], [1, 8, 27, 64], [1, 16, 81, 256]])
b =matrix([[2], [10], [44], [190]])
b =matrix([[2], [10], [44], [190]])
linalg.solve(A, b)
linalg.solve(A, b)
matrix([[-1], [1], [-1], [1]])
matrix([[-1], [1], [-1], [1]])
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 17
Oblicz wartość całki
Oblicz wartość całki
2 Ä…Ä…
1
exp{2-1/2sinśą xźą}dx
+"
0
2 Ä…Ä…
import numpy
import numpy
import scipy
import scipy
from scipy import integrate
from scipy import integrate
def fun(x):
def fun(x):
return numpy.exp(numpy.sin(x)/numpy.sqrt(2))/(2*numpy.pi)
return numpy.exp(numpy.sin(x)/numpy.sqrt(2))/(2*numpy.pi)
calka = integrate.quad(fun,0,2*numpy.pi)
calka = integrate.quad(fun,0,2*numpy.pi)
(1.1289609294541902, 7.4290709475421182e-09)
(1.1289609294541902, 7.4290709475421182e-09)
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 18
Ustalanie punktu przecięcia
Ustalanie punktu przecięcia
y=3x
y=ex
import numpy
import numpy
import scipy
import scipy
import scipy import optimize
import scipy import optimize
def fun(x):
def fun(x):
return scipy.exp(x) 3 * x
return scipy.exp(x) 3 * x
pp = optimize.fsolve(fun, 1)
pp = optimize.fsolve(fun, 1)
pp # 0.619061286736, fun(pp) # 0.0
pp # 0.619061286736, fun(pp) # 0.0
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 19
Wyszukanie pierwiastków wielomianu
Wyszukanie pierwiastków wielomianu
9x4ƒÄ…18x3ƒÄ…38x2-57xƒÄ…14=0
import scipy
import scipy
wiel =scipy.poly1d([9,18,38,-57,14])
wiel =scipy.poly1d([9,18,38,-57,14])
for x in wiel.r:
for x in wiel.r:
if x.imag == 0:
if x.imag == 0:
print x
print x
(0.666666666667+0j)
(0.666666666667+0j)
(0.333333333333+0j)
(0.333333333333+0j)
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 20
Wartości i wektory własne
Wartości i wektory własne
1 1-i 1-2i 1-3i
1ƒÄ…i 2 2-i 2-2i
A=
1ƒÄ…2i 2ƒÄ…i 3 3-i
śą źą
1ƒÄ…3i 2ƒÄ…2i 3ƒÄ…i 4
from numpy import matrix, linalg
from numpy import matrix, linalg
A = matrix([[1, 1 - 1j, 1 - 2j, 1 - 3j], [1 + 1j, 2, 2 - 1j, 2 - 2j], [1 + 2j, 2 + 1j, 3, 3 - 1j], [1
A = matrix([[1, 1 - 1j, 1 - 2j, 1 - 3j], [1 + 1j, 2, 2 - 1j, 2 - 2j], [1 + 2j, 2 + 1j, 3, 3 - 1j], [1
+ 3j, 2 + 2j, 3 + 1j, 4]])
+ 3j, 2 + 2j, 3 + 1j, 4]])
la, v = linalg.eig(A)
la, v = linalg.eig(A)
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 21
Wartości i wektory własne
Wartości i wektory własne
la
la
array([ 10.39935693 -3.33425624e-16j,
array([ 10.39935693 -3.33425624e-16j,
-1.22156554 -3.66048313e-17j,
-1.22156554 -3.66048313e-17j,
0.51866717 +1.54519031e-16j,
0.51866717 +1.54519031e-16j,
0.30354143 -9.75993871e-17j])
0.30354143 -9.75993871e-17j])
v
v
array([[ 0.09186865-0.38603305j, 0.78317402+0.j, -0.42280692+0.13189711j,
array([[ 0.09186865-0.38603305j, 0.78317402+0.j, -0.42280692+0.13189711j,
0.17396786+0.05243788j], [ 0.30830780-0.28002101j, 0.27388174-0.06177703j,
0.17396786+0.05243788j], [ 0.30830780-0.28002101j, 0.27388174-0.06177703j,
0.55138541+0.j, -0.66486088-0.04050999j], [ 0.49510013-0.1470822j,
0.55138541+0.j, -0.66486088-0.04050999j], [ 0.49510013-0.1470822j,
-0.01120502-0.17412608j, 0.46249636-0.13189711j, 0.68665677+0.j]
-0.01120502-0.17412608j, 0.46249636-0.13189711j, 0.68665677+0.j]
[ 0.63428374+0.j, -0.30546444-0.4290185j, -0.51809432-0.00949413j,
[ 0.63428374+0.j, -0.30546444-0.4290185j, -0.51809432-0.00949413j,
-0.22397728+0.04050999j]])
-0.22397728+0.04050999j]])
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 22
Interpolacja funkcji
Interpolacja funkcji
rok 1850 1950 1960 1970 1985 2000 2025
ludność (mld) 1402 2486 3014 3683 4842 6127 8177
import scipy
import scipy
from matplotlib import pyplot
from matplotlib import pyplot
from scipy import interpolate
from scipy import interpolate
x = [1850, 1950, 1960, 1970, 1985, 2000, 2025]
x = [1850, 1950, 1960, 1970, 1985, 2000, 2025]
y = [1.402, 2.486, 3.014, 3.683, 4.842, 6.127, 8.177]
y = [1.402, 2.486, 3.014, 3.683, 4.842, 6.127, 8.177]
spline = interpolate.splrep(x, y)
spline = interpolate.splrep(x, y)
xnew = scipy.arange(1850, 2025, 1)
xnew = scipy.arange(1850, 2025, 1)
ynew = interpolate.splev(xnew, spline)
ynew = interpolate.splev(xnew, spline)
pyplot.plot(xnew, ynew, 'k')
pyplot.plot(xnew, ynew, 'k')
pyplot.show()
pyplot.show()
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 23
Biblioteki do tworzenia wykresów
Biblioteki do tworzenia wykresów
PyGoogleChart
PyGoogleChart
http://pygooglechart.slowchop.com/
http://pygooglechart.slowchop.com/
Chart Directory
Chart Directory
http://www.advsofteng.com/cdpython.html
http://www.advsofteng.com/cdpython.html
PyCha
PyCha
http://www.lorenzogil.com/projects/pycha/
http://www.lorenzogil.com/projects/pycha/
Jan Koprowski
Politechnika Gdańska, FTiMS ą Informatyka Stosowana 24
Wyszukiwarka
Podobne podstrony:
hakin9 5 04 szelkod python?mo
04 (131)
2006 04 Karty produktów
04 Prace przy urzadzeniach i instalacjach energetycznych v1 1
04 How The Heart Approaches What It Yearns
str 04 07 maruszewski
[W] Badania Operacyjne Zagadnienia transportowe (2009 04 19)
Plakat WEGLINIEC Odjazdy wazny od 14 04 27 do 14 06 14
MIERNICTWO I SYSTEMY POMIAROWE I0 04 2012 OiO
r07 04 ojqz7ezhsgylnmtmxg4rpafsz7zr6cfrij52jhi
04 kruchosc odpuszczania rodz2
Rozdział 04 System obsługi przerwań sprzętowych
KNR 5 04
więcej podobnych podstron