04 PythonMatematyk

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

1

Matematyka

Matematyka

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

2

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

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

3

Inne wbudowane funkcje matematyczne

Inne wbudowane funkcje matematyczne

Wartość bezwzględna

Wartość bezwzględna

abs(-3)

abs(-3)

# 3

# 3

Wartość maksymalna

Wartość maksymalna

max([4,7,3])

max([4,7,3])

# 3

# 3

Wartość minimalna

Wartość minimalna

max

max

([2,5,77])

([2,5,77])

# 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

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

4

Moduł math

Moduł math

import math

import math

Epsilon

Epsilon

math.e

math.e

# 2.7182818284590451

# 2.7182818284590451

Pi

Pi

math.pi

math.pi

# 3.1415926535897931

# 3.1415926535897931

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

5

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)

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

6

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)

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

7

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

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

8

Liczby zespolone

Liczby zespolone

liczba = 20 + 7j

liczba = 20 + 7j

Część rzeczywista

Część rzeczywista

liczba.real

liczba.real

# 20.0

# 20.0

Część urojona

Część urojona

liczba.imag

liczba.imag

# 7.0

# 7.0

Sprzężenie zespolone

Sprzężenie zespolone

liczba.conjugate()

liczba.conjugate()

# (20-7j)

# (20-7j)

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

9

Liczby zespolone wbudowane działania

Liczby zespolone wbudowane działania

Dodawanie

Dodawanie

(20 + 10j) + (10 + 20j)

(20 + 10j) + (10 + 20j)

# (30 + 30j)

# (30 + 30j)

- Odejmowanie

- Odejmowanie

(20 + 10j) - (10 + 20j)

(20 + 10j) - (10 + 20j)

# (10 - 10j)

# (10 - 10j)

* Mnożenie

* Mnożenie

(2 + 2j) * (3 + 3j)

(2 + 2j) * (3 + 3j)

# 12j

# 12j

/ Dzielenie

/ Dzielenie

(9 + 9j) / (3 + 3j)

(9 + 9j) / (3 + 3j)

# (3 + 0j)

# (3 + 0j)

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

10

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

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

11

Algebra Boole'a

Algebra Boole'a

Koniunkcja (AND)

Koniunkcja (AND)

12 & 11

12 & 11

# 8

# 8

Alternatywa (OR)

Alternatywa (OR)

12 | 11

12 | 11

# 15

# 15

Alternatywa wykluczająca (XOR)

Alternatywa wykluczająca (XOR)

12 ^ 11

12 ^ 11

# 7

# 7

http://docs.python.org/reference/expressions.html#binary-bitwise-operations

http://docs.python.org/reference/expressions.html#binary-bitwise-operations

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

12

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

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

13

Modyfikacja zbioru zmiennego

Modyfikacja zbioru zmiennego

Usuwanie elementów

Usuwanie elementów

z2.remove('Ala')

z2.remove('Ala')

# set(['Ola', 'Ela')]

# set(['Ola', 'Ela')]

z2.pop()

z2.pop()

# set(['Ela'])

# set(['Ela'])

z2.clear()

z2.clear()

# set()

# set()

Rozszerzanie zbioru

Rozszerzanie zbioru

z2.add('Ala')

z2.add('Ala')

# set(['Ala'])

# set(['Ala'])

z2.update('Ela', 'Ola', 'Ula')

z2.update('Ela', 'Ola', 'Ula')

# set(['Ala', 'Ela', 'Ola', 'Ula')]

# set(['Ala', 'Ela', 'Ola', 'Ula')]

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

14

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)

z1 z2; z1.difference(z2)

# frozenset(['kot', 'pies'])

# frozenset(['kot', 'pies'])

Część wspólna &

Część wspólna &

z1 & z2; z1.intersection(z2)

z1 & z2; z1.intersection(z2)

# frozenset(['Ala'])

# frozenset(['Ala'])

Symetryczna różnica ^

Symetryczna różnica ^

z1 ^ z2; z1.symatric_difference(z2)

z1 ^ z2; z1.symatric_difference(z2)

# frozenset(['Ela', 'Ola', 'Ula', 'kot', 'pies'])

# frozenset(['Ela', 'Ola', 'Ula', 'kot', 'pies'])

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

15

Rachunek zbiorów

Rachunek zbiorów

Zawieranie się elementu

Zawieranie się elementu

'Ala' in z1

'Ala' in z1

# True

# True

Nie zawieranie się elementu

Nie zawieranie się elementu

'kot' not in z2

'kot' not in z2

# True

# True

Czy podzbiór <=, <

Czy podzbiór <=, <

z1.issubset(z2)

z1.issubset(z2)

# False

# False

Czy nadzbiór >=, >

Czy nadzbiór >=, >

z2.isuperset(z1)

z2.isuperset(z1)

# False

# False

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

16

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

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

17

Rozwiąż układ równań

Rozwiąż układ równań

1

2 3

4

1

4 9 16

1

8 27 64

1 16 81 256

x=

2

10

44

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]])

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

18

Oblicz wartość całki

Oblicz wartość całki

1

2 

exp {2

1/2

sin 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)

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

19

Ustalanie punktu przecięcia

Ustalanie punktu przecięcia

y=3x

y=e

x

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

pp

# 0.619061286736

# 0.619061286736

, fun(pp)

, fun(pp)

# 0.0

# 0.0

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

20

Wyszukanie pierwiastków wielomianu

Wyszukanie pierwiastków wielomianu

9x

4

18x

3

38x

2

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)

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

21

Wartości i wektory własne

Wartości i wektory własne

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)

A=

1

1−i 1−2i 1−3i

1i

2

2−i 2−2i

12i 2i 3

3−i

13i 22i 3i

4

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

22

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]])

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

23

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()

background image

Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana 

24

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/


Wyszukiwarka

Podobne podstrony:
Wykład 04
04 22 PAROTITE EPIDEMICA
04 Zabezpieczenia silnikówid 5252 ppt
Wyklad 04
Wyklad 04 2014 2015
04 WdK
04) Kod genetyczny i białka (wykład 4)
2009 04 08 POZ 06id 26791 ppt
2Ca 29 04 2015 WYCENA GARAŻU W KOSZTOWEJ
04 LOG M Informatyzacja log
04 Liczby ujemne i ułamki w systemie binarnym
UE i ochrona srodowiska 3 04 2011
04 QueryByExample Access

więcej podobnych podstron