{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Numpy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Biblioteka szeroko wykorzystywana do wykonywania obliczeń numerycznych." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Przykłady użycia" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rozróżnienie między standardową listą a listą oferowaną przez bibliotekę numpy:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3, 4, 5, 6])" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "x = [1, 2, 3, 4, 5, 6]\n", "v = np.array(x)\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przykład listy 2d, czyli macierzy:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 2],\n", " [3, 4]])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = np.array([[1,2], [3,4]])\n", "M" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(numpy.ndarray, numpy.ndarray)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(v), type(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sprawdzenie wymiarów listy/macierzy:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(6,)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.shape" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 2)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Typ danych w macierzy:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('int32')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.dtype" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generowanie liczb losowych (w formie macierzy):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.36166558, 0.5065146 , 0.8709358 ],\n", " [0.6892864 , 0.68585991, 0.78089246],\n", " [0.06865658, 0.91214024, 0.74774348],\n", " [0.91356967, 0.73962801, 0.51183955],\n", " [0.7314828 , 0.17924709, 0.50836662]])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.random.rand(5,3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Macierz zer:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0., 0., 0.],\n", " [0., 0., 0.],\n", " [0., 0., 0.],\n", " [0., 0., 0.],\n", " [0., 0., 0.]])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.zeros([5,3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Operacje na macierzach:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 1 1]\n", " [2 2 2]]\n", "[[1 2 3]\n", " [4 5 6]]\n" ] } ], "source": [ "M = np.array([[1,2,3], [4,5,6]])\n", "N = np.array([[1,1,1], [2,2,2]])\n", "print(N)\n", "print(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dodawanie:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2, 3, 4],\n", " [6, 7, 8]])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M + N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mnożenie przez skalar:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 5, 10, 15],\n", " [20, 25, 30]])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "5*M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mnozenie odpowiadającyh sobie kolejnych komórek macierzy:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 2, 3],\n", " [ 8, 10, 12]])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M*N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Iloczyn macierzowy:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "shapes (2,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# dlaczego nie działa?\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mM\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mN\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mValueError\u001b[0m: shapes (2,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)" ] } ], "source": [ "# dlaczego nie działa?\n", "M.dot(N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Transpozycja + iloczyn macierzowy:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 6, 12],\n", " [15, 30]])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.dot(N.T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generowanie liczb z zakresu z krokiem (przydatne do wykresów):" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5 5. 5.5 6. 6.5\n", " 7. 7.5 8. 8.5 9. 9.5 10. ]\n" ] } ], "source": [ "v = np.arange(0, 10.01, 0.5)\n", "print(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generowanie (100) liczb z zakresu (przydatne do wykresów):" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0.1010101 , 0.2020202 , 0.3030303 , 0.4040404 ,\n", " 0.50505051, 0.60606061, 0.70707071, 0.80808081, 0.90909091,\n", " 1.01010101, 1.11111111, 1.21212121, 1.31313131, 1.41414141,\n", " 1.51515152, 1.61616162, 1.71717172, 1.81818182, 1.91919192,\n", " 2.02020202, 2.12121212, 2.22222222, 2.32323232, 2.42424242,\n", " 2.52525253, 2.62626263, 2.72727273, 2.82828283, 2.92929293,\n", " 3.03030303, 3.13131313, 3.23232323, 3.33333333, 3.43434343,\n", " 3.53535354, 3.63636364, 3.73737374, 3.83838384, 3.93939394,\n", " 4.04040404, 4.14141414, 4.24242424, 4.34343434, 4.44444444,\n", " 4.54545455, 4.64646465, 4.74747475, 4.84848485, 4.94949495,\n", " 5.05050505, 5.15151515, 5.25252525, 5.35353535, 5.45454545,\n", " 5.55555556, 5.65656566, 5.75757576, 5.85858586, 5.95959596,\n", " 6.06060606, 6.16161616, 6.26262626, 6.36363636, 6.46464646,\n", " 6.56565657, 6.66666667, 6.76767677, 6.86868687, 6.96969697,\n", " 7.07070707, 7.17171717, 7.27272727, 7.37373737, 7.47474747,\n", " 7.57575758, 7.67676768, 7.77777778, 7.87878788, 7.97979798,\n", " 8.08080808, 8.18181818, 8.28282828, 8.38383838, 8.48484848,\n", " 8.58585859, 8.68686869, 8.78787879, 8.88888889, 8.98989899,\n", " 9.09090909, 9.19191919, 9.29292929, 9.39393939, 9.49494949,\n", " 9.5959596 , 9.6969697 , 9.7979798 , 9.8989899 , 10. ])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Generowanie rownych odstepow\n", "v = np.linspace(0,10,100)\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wbudowane funkcje przyjmują macierze jako argumenty:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0.10083842, 0.20064886, 0.2984138 , 0.39313661,\n", " 0.48385164, 0.56963411, 0.64960951, 0.72296256, 0.78894546,\n", " 0.84688556, 0.8961922 , 0.93636273, 0.96698762, 0.98775469,\n", " 0.99845223, 0.99897117, 0.98930624, 0.96955595, 0.93992165,\n", " 0.90070545, 0.85230712, 0.79522006, 0.73002623, 0.65739025,\n", " 0.57805259, 0.49282204, 0.40256749, 0.30820902, 0.21070855,\n", " 0.11106004, 0.01027934, -0.09060615, -0.19056796, -0.28858706,\n", " -0.38366419, -0.47483011, -0.56115544, -0.64176014, -0.7158225 ,\n", " -0.7825875 , -0.84137452, -0.89158426, -0.93270486, -0.96431712,\n", " -0.98609877, -0.99782778, -0.99938456, -0.99075324, -0.97202182,\n", " -0.94338126, -0.90512352, -0.85763861, -0.80141062, -0.73701276,\n", " -0.66510151, -0.58640998, -0.50174037, -0.41195583, -0.31797166,\n", " -0.22074597, -0.12126992, -0.0205576 , 0.0803643 , 0.18046693,\n", " 0.27872982, 0.37415123, 0.46575841, 0.55261747, 0.63384295,\n", " 0.7086068 , 0.77614685, 0.83577457, 0.8868821 , 0.92894843,\n", " 0.96154471, 0.98433866, 0.99709789, 0.99969234, 0.99209556,\n", " 0.97438499, 0.94674118, 0.90944594, 0.86287948, 0.8075165 ,\n", " 0.74392141, 0.6727425 , 0.59470541, 0.51060568, 0.42130064,\n", " 0.32770071, 0.23076008, 0.13146699, 0.03083368, -0.07011396,\n", " -0.17034683, -0.26884313, -0.36459873, -0.45663749, -0.54402111])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sin(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przykład zwięzłego wygenerowania sinusa:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "from matplotlib import pyplot as plt\n", "plt.plot(v, np.sin(v))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Czytanie (krojenie) macierzy:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 2, 3, 4],\n", " [ 5, 6, 7, 8],\n", " [ 9, 10, 11, 12],\n", " [13, 14, 15, 16]])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]])\n", "M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wszystkie wiersze razy druga (trzecia) kolumna:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 3, 7, 11, 15])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[:,2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Drugi (trzeci) wiersz razy kolumny z przedziału 1:3 :" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10, 11])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[2,1:3]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 7, 8],\n", " [11, 12]])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[1:3,2:4]" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 2, 3, 4],\n", " [ 9, 10, 11, 12]])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[::2,:]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 2, 3, 4],\n", " [ 5, 6, 7, 8],\n", " [ 9, 10, 11, 12],\n", " [13, 14, 15, 16]])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Można nadpisywać podczas czytania:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 2, 0, 4],\n", " [ 5, 6, 7, 8],\n", " [ 0, 10, 0, 12],\n", " [13, 14, 15, 16]])" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[::2,::2]=0\n", "M" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Sympy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Biblioteka do obliczeń symbolicznych - operujemy na wzorach, nie na liczbach." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "from sympy.interactive import printing\n", "printing.init_printing(use_latex=True)\n", "\n", "#from __future__ import division\n", "import sympy as sym\n", "from sympy import *\n", "\n", "# Definicje zmiennych\n", "x, y, z = symbols(\"x y z\")\n", "k = Symbol(\"k\", integer=True)\n", "f = Function('f')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ważne jest przypomnienie sobie różnicy między wyrażeniem a równaniem. Poniżej znajduje się przykład wyrażenia: " ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIoAAAAaCAYAAABo4cQnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEhElEQVRoBe2a7VEbMRCGD4YCICWYDkyoIKQDQioAdwDDL/iXMR0AJZAOTCrgowPTQYg7IO9zSELW3fl0BHtOl9uZRbrV575arVbCay8vL1lPPQIgcH5+vqnk1KAxMOmh5LMN89EnPQIgMJZRjCwUyl8q/yDeXrfCPu0REAJHMo49D4mx8gPJhr2heKj02Qxvcl+Gw1ofo5TB0stAQJ4Ej7KvtHj0SGiDmKTR+gg9PqKPtoDYVBfVH2Ik4h10mDt6VHgsGRW6QJyt6PMu6hgWYBCNh3THWeBNdpSf0dgdPRJgPbtKTyhIgTRXjPpG7BTy561yDOVJ6U9fXpdX/eSwqNOJ8hg8VCc3EqXfTBswnuWGIiH3519KczdDhbaSmeu15vcs/ixGkS3Jc8tXfo4k53r3pap8rrI+VC8ZLMK5x3wvwkNlGAlXYt9ZEOCe2HcU3AwVVkaaFNcw3OFVk0FVH4Ow1h5zVKIX+rn3gZrxksGiRo+q4kV4sKnYKKSOhPnIGsoBH65kNRkmBC+VMETxH/GJGCOro85igeLCoBIPlW1VgbOuQnb2U1WFjsjR76BOl/8EC2CIwsPHC4+CG7/1hX5e4LHrj4xsV+mhmLPsu5HdqU6jYNG0W2WCfl/Fdcdcclh467Mt/ab6vrDAmrJrpflRbeVKY/FwTdaVIyCcOkkxw/v/hZnAnYoJJPf0TcCDEXGmt53QD+OuoxSxODVrM5Fyp4GCeFFucCHF4uHaYSgsNjeIAmkCeJLQEBjYepBPJeWFflogQD/0rKOksND6YPxsXgiPGYYQyMpOi1g86Dcnjh4We/b6Wfh7r8n4gzPwo5UpDV1aoQPVIcomDgqJcTOVlwXRjFHbd9jhgm90iPEoqWHxLJzspsV7/AgwAPdQRpVYPFx3GEolaRKPQSED+3fsoLj4WWEImeR4Jq7H7kwttv4wySIDiBpE82wdFppTvsGVsi54QxeDSTY0sjKP0hgPjh6si0EWkpkMdawFZ5JtwgsbtqOQOeJu6yhVLPC+eOGZpyDGM5MsNHCqxOLhusOjAGDBLRsD4HmcYBarzI8I5QHTEoFUIw9jG644ZQf5864aPlUsWL9Qv6r4BN1j8XA44VGwuF0nectgkTDnoLVAZ7GSUWYDqbdW7czxrwluBXWUKhZzRmLWhvWp0jkWD4fXhumMgDMkvAhnHgNmGnwknoipyxOvH0hRZWWkOeDpMF6us9CDZCwybzplMQ86hLc32oUEsElhYRTAq/Nego6/xbypQGXxCfJYPKj7Svxw6ezsbCoekl8Va7x98fGyx9MYA/E0dhzqipPGQvMfix/KdJa8ER62D44eCEssu6bmhUv6wzHmjrIljUG37LYYb2KnkBQW8iKXYvdPPOXxtLx/lV2L0bEpHrTJnAeRpU2wNmtBXUjN7pk01SUlLDRXPKDzzMrfiMdlOkuON2mMB30Ro1jiisXZT7TcFSLeeM/DXUpY4CHsr9eITfAwVbHJe/F4+4UblqEBuGbtKXUPN8hTJOmA+71VOncjiNWlS1ig87/i8RefAOmc9K9loAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left(x + 1\\right) \\left(x + y\\right)^{2}$" ], "text/plain": [ " 2\n", "(x + 1)⋅(x + y) " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exp = ((x+y)**2 * (x+1))\n", "exp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rozwinięcie:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle x^{3} + 2 x^{2} y + x^{2} + x y^{2} + 2 x y + y^{2}$" ], "text/plain": [ " 3 2 2 2 2\n", "x + 2⋅x ⋅y + x + x⋅y + 2⋅x⋅y + y " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand(exp)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIoAAAArCAYAAACnxxAvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD+klEQVR4Ae2b63ETMRSFY8YFZCgh6YCEDkwHBCoIdACTf/7HhA6SVMBAB0AFIekgdEDGHZjzbSRHXhZHa1u78ureGUXSlVaPo+OrVzSaz+d7JmkRmE6nL1TDV7kjhWdpa1u/9FXtHK9frH25CgGBvq/0K7l7uWO5A7nsJLadRpREQ+csxwnFK/xBHlYlO4lt57PsWm4NyhIBI0qWw5Jfo7KeemQWmeffOdheyj+VY65/63TXyvONcJD3UNE7xT+7PD7tSrpqKvB68+MRyN2inDPgbtCv1S0WhxPFP8qHROdyXs5cvu9SnHml89/If13TWbQFAtkSRYOOJQmJQLcY7MqCyH8uV6UrL1YGIiGv5H5Xocc/6H48Ri3UFoGcp55fIkA44Az2rdfJD6eRe8U9gbAen2pATBp0S1n0PRbqpxx+rJzou9vYzLucL1uiNAwAg82U848o7wylfPIw0JfEEenYlqJbaVGUjzKO5EwaEMh26gnb6giAylsNCLCPC/MpjJXB6jDoXiDPTLoifvm+09v2s7QojgAcebOYxRK8p+MKh1MRi9e6hWGtEubhM1ufgMKGkqtFwQrgWHtgNTgGX1gJ6Ujzi1cFF7JEEpePvOyETDZAYJTjpaAjBzuaO/qmOFtkdjxYhxu5cPGq6IO479hCQ5g/cpypsHs6VNoSiaRLLqoTqwjRuevBpw1MgZz/LM55FO9VYtq5RBR9sBO3nLGoqj+QbSLfFqmxoP0n31ggwnR+hZh3mM88v3Oiflyo0ceeFK5fWJPTnetMhg2GKMz91ZmEwlu55VQ5rAsO5C+2qR30nTohixfIf6k2LHZKPmEIftcYjxOBhpXCdSnsgCAnZGdtcqHwyrOTLhuXoK5OMU5FlAS4rC5yqJZjda+7S811e9wdAlZTFAJGlCiYLJMRxTgQhcBGaxStC9hlsNuoC/8CsKf06ui9lshdTHjzW0u2aIhALhhvSpQmIkAQTlHZgax1+qjvinlDor6OQmLUw0rPAuONiFLv1LbiT4G3rXpKLqctxrZGKZktLfpuRGkBVslZq6lHZii85QSPG+myu+UseaD67rsniu1C+h6JzOtPNfVw0YgzSYdApxgv/T9Kuj5ZybuOQCqLsuu4WPtrCBhRaoBYtBkBI0ozLqatIZDlyWytjcmiOgLgn3+iHsEna0TPBcdiULpFafMIvuchTVZ9FAbFEkW/pOhH8MmGqOeC22BQ8tTT5hF8z0OarPpoDEq2KFxRhDJR5EuoGHpYFiUag2KJEpJAgEESZPG0Q7qmR/APuQb49ykMipx6IIHGep1H8IOhSFsMSrUoWBBc20fwgyGK6380BkXe9bhfU+tH8ENiSVsM/gIqLJDP/EgXYwAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1 + \\frac{x y - 1}{x} + \\frac{1}{x}$" ], "text/plain": [ " x⋅y - 1 1\n", "1 + ─────── + ─\n", " x x" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = 1/x + (x*y - 1)/x + 1\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uproszczenie wyrażenia:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAASCAYAAADPNlfiAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABoUlEQVRIDc2X0VECMRCGgaEAxxKwA7UE7UAtQTvQ4Y03RzsASsAOtAMGOtAOZOgAv+9MMlxmuBG9k9uZvU02m+TP3p/l6G42m06bZTQanYJvhp7RXou176NtArgjME3RFXqODtAkjYJm8wt2GmAnaccfNEJGrw2lfY8x20l6qdVMw4yptUrToGsFGxcr6MErMBu36An6Tv85BoSxKbZ4XdF/SBszPQxAXwEzzADd0L/KfAft9gDrzZwHFJfYjwyRvrfMd9Cu9FgB/CWgMKuPGSIrQO4rhTB/jMO4XI51MH6XD9Bf4v8V5fpMXIeF3VRup/LEmKVGX2Wmd4Dq4JdWlrx0R+j/WSKnXchTe/riEGFlD7LGtwz9Vpht0HK79Xw2a9ugS4DJrllWrSitkv4Wmgfa1uMn7CdqzVYq+fwdUv8THH4keZ/89lAWgabzBBqHXE63OYCX46U3UEz/hwf7Jiz5dgU9CBijizhI2xP6C1lZ6mJ8hTURaq0SMy13rbVR/CycAD7W7+jfyzK/EWp1/RPA4kU9DYjk8qypDfc69Y7gLzH1eJjjzLZ3AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle y + 1$" ], "text/plain": [ "y + 1" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przykład równiania (Eq): x - 3 = 0:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAOCAYAAABevFBuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACnklEQVRYCc2Y7VEbMRCGzxkXYEgHoQOSdGA6CEkFgQ7C+Jf9L0M6IOkg0EGcCvjoAHdghg6c55GlG3Ec9hG4s3dmvavVSvtqtTpp3FssFsW20mQyeQe244hvgLR9in0abRsTYDiNwefIPVhcM229bU0qAE2iQFNSC/QjbGfwIfoFciNE7GsCf08YkGLVdoA+e7MRVM2CmsAjQH7K3H9HfZTZOlXBI64BstxU9Htstt3wYpuTegM+wcqBIvjU3JQ8JLDYqnSJYQjGQb/asy1twPnd3MnxYEtVGyoi7+tQHxLrZ028tPnDMqlmGEdLW/oIf4W9GL7A0iU+ZckvTd39EtvFeDkco9ctqnUwMUfr4uyWSRUwg8KlgPxG+xdsIk9gK8MFdZ5UYu8T14S60R67K3gtRcyOew7dMM7j/RTtxo5UlbnfXWwsjz8TWaHpiZAcPWonseFk1f7k16oEm4kM3zB0MV27cHjlBtNfvhpaBfh48repUq8AEd5Y0ecA6a4FG3LV7hX0++n4CyubkokJyWo6AP8L2Co5R+5Evenw1/BL1Vg3V6rieUgq4KqL89ikKq2b4IEtLu79A+MLG8zpsS9qsHn8xSevrFb6X5VcJ+ycdcWTbLN+NSqDBCuVgLGFAU667Gr3N8bzMV2g/1dFMs57IK2lKeB131Tn8VXiBV6lVKnTflzAOR5eVA5Il1X+ORjR17hyq9Ge2yaWFeEGTqPMp/gQG2J9khjX1jc15KomsCfVTbn38e9uyncYrEi/G2VFYrPPh23X5Cb+yYOCxYtKjD6rSoy5T9s6cX3OmSuxBEIX02fYZ2jRG4/HGrzZbzXg8CMO8LLyCDpB+SnQpysirhuaX5Ieu3SiuoLxKA64zNkInsdOn3v+FxDupn/wUPI3DXdH2wAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle x - 3 = 0$" ], "text/plain": [ "x - 3 = 0" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq = Eq(x - 3, 0)\n", "eq" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dzięki solve, możemy rozwiązać rówananie. Dlaczego wynik jest w formie listy?" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABIAAAAVCAYAAABLy77vAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABRUlEQVQ4Ec2U0XHCMAyGDccALSMwAtduQDdoV4ANyPUpeWUEGAHYgI7QMEtH6PcndrFjmbY8oTthydL/W5IdRnVdr51zK1Ty1jTNuTev/5KX4EYQbYCcCHxch9pRcB1+YoedI2FGLFT6gC1/UzrQJCJZwIo1EDnsJXuqXO0fsRMZJ97FEWgJ4PWy5fbefo/2fswSkQb+5bVLhlR+UUqtafCPMSqqbhvvB7tUUYh3KyQLDN3OCnuXBL1jVhQSAc2xRfKMqt1P1JTfiATuHqhvrWX9161lp0KgK9fAD9h6HomYMyJxLk0yeye0pnYTyYj8aS1ZaiM7OUFHjkWk8qVHiLTG8uSd7LssDbuK0bIh1StXhXoCwwOcSUTiDl2g8eObQfLCXlYN+zaRAh5gghQfSjajYcJf/fsjCsPeMhN1cct/9hTc6RtOC23CTgpSNAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[ 3\\right]$" ], "text/plain": [ "[3]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(eq, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trochę trudniejsze równanie:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle x^{3} + 3 x^{2} - 13 x - 15 = 0$" ], "text/plain": [ " 3 2 \n", "x + 3⋅x - 13⋅x - 15 = 0" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq = Eq(x**3 + 3*x**2 - 13*x - 15)\n", "eq" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solve znalazł wszystkie rozwiązania. Czy sympy jest w stanie rozwiązać wielomian dowolnego stopnia? Jeżeli nie, to jaki jest górny limit na stopień wielomianu, by Sympy sobie mógł poradzić?" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGcAAAAVCAYAAABbq/AzAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC9UlEQVRoBe2a7VHbQBCGBUMBwXRgOkhCB6SDkBKggzD5Zf/LQAeQDoAOgAoS6AA6CEkJeR5Zp/FZ0liOfZbH9s6s7kOn2/d291ars3cGg8HXLMvOYOlkOBw+j6rb67I1gO4jW+wC4AA+48bhIg3DXO8nF0ffO7g/2b9tjzSAbi7hQ1p3cG8voWIeNQbzh51oXfowKlbrClad6VZ81P+mQMe8OmaIUurD9gX9D3XyUhrnDYGyi36F9YbvqRbO3DMTWFTQD1icH+Fku7qQdU4ZjJNRP0XmPaWvE/UTUUrjPCs0krZiDfC5Q3KM1I33lVC8QMga4hQ5GiMY4oa+K/gbHPqojmg3VLZlcg0Y3nUGOafCOUKzUqbcORVhm9yBIXyv7I/rgL7PRdvdU6GkxkG4W9m4LpmFXNGnB208oYdjlHABmylf1ykkpXE0yg2C821M6cv2hfITXJud1AFctz7W7ntNwxzBOuovuJaSGUcjjEuk/VoYxS3sLtpIQgcaJI8e1A1rT5TtszUG6/WPcAhJVKdSm9MFU+pj5u/D1ueihDjnwtX2YfDfwUaWW8r9ol4+XrtzikH//bHI8/dI6FE2zTGL0Uuwk5V5cU7Ol7IN1jxNp5x85xrWDHNylE6nSqX9oKszQI/+rAag3WtLrFddPMlFvdVaUxnnGhB17xW9I0oGZgHbakWJBs2Dk2cNXXIIY+ModWQp0osdqYxjyhzl7rT9ApfKU4NiwX8o9aqVpQXhPGeBhvuSmNeEwF1lOq3xItrhJwNzbY8UKpaLRs7YYL4+jwhIMpy9wZ4tRSBovzgASnbgOJq+/op8DztVUAjFJiq+F35y75Iyp0XgZA4jR+mc1NVR5eCTcblN9nLJCS4IcJHlIV+TCMb5U4Ue1Akhe1xZjRgWgZM53ACtN0GqsNa4yIYbRwCPdlTDuK67l4qzc+NgFEPK7661Pk1+Fzg7Nw5K+cLCy9g+TUkd3l86zpAQhJjf5iu/Q/2st2icNPyHwATq5B9CkhMotbH6UAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[ -5, \\ -1, \\ 3\\right]$" ], "text/plain": [ "[-5, -1, 3]" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(eq, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trochę inny przykład. Jak należy zinterpretować wynik?" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ -1 - \\frac{16}{\\left(- \\frac{1}{2} - \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{3 \\sqrt{5937} + 405}} - \\frac{\\left(- \\frac{1}{2} - \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{3 \\sqrt{5937} + 405}}{3}, \\ -1 - \\frac{\\left(- \\frac{1}{2} + \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{3 \\sqrt{5937} + 405}}{3} - \\frac{16}{\\left(- \\frac{1}{2} + \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{3 \\sqrt{5937} + 405}}, \\ - \\frac{\\sqrt[3]{3 \\sqrt{5937} + 405}}{3} - \\frac{16}{\\sqrt[3]{3 \\sqrt{5937} + 405}} - 1\\right]$" ], "text/plain": [ "⎡ ⎛ 1 √3⋅ⅈ⎞ 3 _______________ ⎛ \n", "⎢ ⎜- ─ - ────⎟⋅╲╱ 3⋅√5937 + 405 ⎜-\n", "⎢ 16 ⎝ 2 2 ⎠ ⎝ \n", "⎢-1 - ────────────────────────────── - ──────────────────────────────, -1 - ──\n", "⎢ ⎛ 1 √3⋅ⅈ⎞ 3 _______________ 3 \n", "⎢ ⎜- ─ - ────⎟⋅╲╱ 3⋅√5937 + 405 \n", "⎣ ⎝ 2 2 ⎠ \n", "\n", " 1 √3⋅ⅈ⎞ 3 _______________ \n", " ─ + ────⎟⋅╲╱ 3⋅√5937 + 405 3 ___________\n", " 2 2 ⎠ 16 ╲╱ 3⋅√5937 + \n", "──────────────────────────── - ──────────────────────────────, - ─────────────\n", " 3 ⎛ 1 √3⋅ⅈ⎞ 3 _______________ 3 \n", " ⎜- ─ + ────⎟⋅╲╱ 3⋅√5937 + 405 \n", " ⎝ 2 2 ⎠ \n", "\n", " ⎤\n", "____ ⎥\n", "405 16 ⎥\n", "──── - ───────────────── - 1⎥\n", " 3 _______________ ⎥\n", " ╲╱ 3⋅√5937 + 405 ⎥\n", " ⎦" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq = Eq( x**3 + 3*x**2 - 13*x + 15)\n", "#eq\n", "r = solve(eq, x)\n", "r" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Można uwikłać w równanie dodatkową zmienną. Czy widać ją w wyniku?" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ - \\frac{\\left(- \\frac{1}{2} - \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{\\frac{27 z}{2} + \\frac{\\sqrt{\\left(27 z + 405\\right)^{2} - 442368}}{2} + \\frac{405}{2}}}{3} - 1 - \\frac{16}{\\left(- \\frac{1}{2} - \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{\\frac{27 z}{2} + \\frac{\\sqrt{\\left(27 z + 405\\right)^{2} - 442368}}{2} + \\frac{405}{2}}}, \\ - \\frac{\\left(- \\frac{1}{2} + \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{\\frac{27 z}{2} + \\frac{\\sqrt{\\left(27 z + 405\\right)^{2} - 442368}}{2} + \\frac{405}{2}}}{3} - 1 - \\frac{16}{\\left(- \\frac{1}{2} + \\frac{\\sqrt{3} i}{2}\\right) \\sqrt[3]{\\frac{27 z}{2} + \\frac{\\sqrt{\\left(27 z + 405\\right)^{2} - 442368}}{2} + \\frac{405}{2}}}, \\ - \\frac{\\sqrt[3]{\\frac{27 z}{2} + \\frac{\\sqrt{\\left(27 z + 405\\right)^{2} - 442368}}{2} + \\frac{405}{2}}}{3} - 1 - \\frac{16}{\\sqrt[3]{\\frac{27 z}{2} + \\frac{\\sqrt{\\left(27 z + 405\\right)^{2} - 442368}}{2} + \\frac{405}{2}}}\\right]$" ], "text/plain": [ "⎡ __________________________________________ \n", "⎢ ╱ ________________________ \n", "⎢ ╱ ╱ 2 \n", "⎢ ⎛ 1 √3⋅ⅈ⎞ ╱ 27⋅z ╲╱ (27⋅z + 405) - 442368 405 \n", "⎢ ⎜- ─ - ────⎟⋅3 ╱ ──── + ─────────────────────────── + ─── \n", "⎢ ⎝ 2 2 ⎠ ╲╱ 2 2 2 \n", "⎢- ───────────────────────────────────────────────────────────── - 1 - ───────\n", "⎢ 3 \n", "⎢ \n", "⎢ \n", "⎢ ⎛ 1 \n", "⎢ ⎜- ─ - \n", "⎣ ⎝ 2 \n", "\n", " _\n", " ╱ \n", " ╱ \n", " ⎛ 1 √3⋅ⅈ⎞ ╱ \n", " ⎜- ─ + ────⎟⋅3 ╱ \n", " 16 ⎝ 2 2 ⎠ ╲╱ \n", "──────────────────────────────────────────────────────, - ────────────────────\n", " __________________________________________ \n", " ╱ ________________________ \n", " ╱ ╱ 2 \n", "√3⋅ⅈ⎞ ╱ 27⋅z ╲╱ (27⋅z + 405) - 442368 405 \n", "────⎟⋅3 ╱ ──── + ─────────────────────────── + ─── \n", " 2 ⎠ ╲╱ 2 2 2 \n", "\n", "_________________________________________ \n", " ________________________ \n", " ╱ 2 \n", "27⋅z ╲╱ (27⋅z + 405) - 442368 405 \n", "──── + ─────────────────────────── + ─── \n", " 2 2 2 \n", "───────────────────────────────────────── - 1 - ──────────────────────────────\n", " 3 ___________\n", " ╱ \n", " ╱ ╱\n", " ⎛ 1 √3⋅ⅈ⎞ ╱ 27⋅z ╲╱ \n", " ⎜- ─ + ────⎟⋅3 ╱ ──── + ───\n", " ⎝ 2 2 ⎠ ╲╱ 2 \n", "\n", " _____________________________________\n", " ╱ ________________________ \n", " ╱ ╱ 2 \n", " ╱ 27⋅z ╲╱ (27⋅z + 405) - 442368 \n", " 3 ╱ ──── + ─────────────────────────── +\n", "16 ╲╱ 2 2 \n", "───────────────────────────────, - ───────────────────────────────────────────\n", "_______________________________ 3 \n", "________________________ \n", " 2 \n", " (27⋅z + 405) - 442368 405 \n", "──────────────────────── + ─── \n", " 2 2 \n", "\n", "_____ ⎤\n", " ⎥\n", " ⎥\n", " 405 ⎥\n", " ─── ⎥\n", " 2 16 ⎥\n", "───── - 1 - ────────────────────────────────────────────────⎥\n", " __________________________________________⎥\n", " ╱ ________________________ ⎥\n", " ╱ ╱ 2 ⎥\n", " ╱ 27⋅z ╲╱ (27⋅z + 405) - 442368 405 ⎥\n", " 3 ╱ ──── + ─────────────────────────── + ─── ⎥\n", " ╲╱ 2 2 2 ⎦" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq = Eq(x**3 + 3*x**2 - 13*x + z)\n", "solve(eq, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przykład sumy:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\sum_{k=1}^{10} \\left(6 k^{2} - 1\\right)$" ], "text/plain": [ " 10 \n", " ___ \n", " ╲ \n", " ╲ ⎛ 2 ⎞\n", " ╱ ⎝6⋅k - 1⎠\n", " ╱ \n", " ‾‾‾ \n", "k = 1 " ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = Sum(6*k**2 - 1, (k, 1, 10))\n", "s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Doit = wykonuje, tj. liczy sumę:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACcAAAAOCAYAAACsAAXLAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACW0lEQVRIDY2VPVYUQRDHG90D8HEDuQFCvgGGZJBq5HIDeUa7GQ9vIN5AyEwJNjFSCA03xMjFG6y/X7+pfj2zKzP1Xk1V/6uqq7r6Y7ZWq1WazWavUkoXsHQIL+EL8AeBoMbvvBlvI427Ar8Ln5BgV43+B7kP67cIe8jn/Lam02kkOOsEfGD8JhIjLcYEUVxCn4B9hs/Qb5GZ0O9RLgNDGivmfKXAPr8XBLjC93AhguziX/imgClZyATbaYV9bfSPgWHXbxtZF+tcjl1IpiF+FncMP+Hs6mpyq0xiZyW32CRyJmxFDwzpDrSOQ2P7gTyu8vT6jQiwiIP/JHLeXDR2/XYEgsCii6Uj2FzsdfhUMhai3S72+o1IUM5aNZHqgR/sm7og7uQeiXP0XAwyL8S4Z2h3qN9o0yQEW5jbGTe4uDU2CzuCLfxnMaa02+jRpcqUXwDHLmCQ38biCPYiXFPIJ2SLwCwodxPdbb1Htm5rK2B9sLcObUT2vBAtIpHn5w5ZnoyWQzXAx7Njl27Q7ciyMnfV6Jbv3iC/VnEk8BlIyLXCwLw0bneXYlu9ibGdFtqlwBZD/cq2EuAW7SNLYeieO8mV+ogmsB04ihDqkrc64mpbdE671OuXO0cyO3KE7F4AC142xVjQ7YbCDsGlSOp5DSwbms9r5EMV3+v3kgBX+Q1+nM/nJxW/AzthsnwpwJ8YL8bjce4gesJm8W9hn5PvYtrxncCP6L/EsLmlX+BTsN9iQ/z8t5ps01lyDlfqijOh+4TU76ILW/vxN8X4S/PwSz47/mvzLc8Inz6/f3erJFVAEYsPAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 2300$" ], "text/plain": [ "2300" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.doit()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dzięki Sympy możemy policzyć granicę:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sympy rozpozaje pewne stałe matematyczne:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAsCAYAAADVX77/AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD9UlEQVRoBe2a61HcMBCADUMBEDqADiBUEOgAhgoIHYTJL/iXIR1AKkigA+iARwehAy7XAfk+xfLobBN8nM9wj51ZVlqtV9rVrl7HwtPTUzbtcHJysoGNF+Am5X5q71JamaYyhi5jzw+wB34E18AKTLMDnOk9LcYZXyBGQQUWK5wZY8wdMGMTXjF3HgEVl8wYYx4BMzbhFXPnEVBxyYwxZj4CFqb5MsQR2AuQdwLvAtIH8B68oe07NGvkAIQ9R3uxWAOvqYczNuWMsrw78IjyubxJgkYpgGH34CaGebMqgw7Qu7ZPHDRyQGKVITQAOOYaxgr0cKBhQirDOqDWLIz36jmR0IoDJtLyfNAjPYgw8+a/K620WBzhxyeoD/B/gafgLihsgVfInIPblONDxQ7lU3imVGcwqgNcE3xn+52OmLpbzTr0D1Qn7FIO2w5Ug++gkOwh4ZtGOnPFhq6grRSoLI65AbfQ7WikPMo6R9ijnM62ssvwjKbOoC0H/G/AGlYH0RHlNrfUzmCkFBhxlI8jfl/7ORE01Dv/Wzqg1oBRmThgYRgdXaTAMOPpXLZNB9TlrjvAu4ZhLkPu5dug25ULm0dfjZbvbUuQ70XJlbwsfwRPOdujnnB2IGyjrFuki6N85ccOjRww9lG8YQdtpsAbmvH6rucOeL3vpuPLdx0B+eI4Vk93fhBKjPIkuPrCal+3tbbqkE4dkBv/CI03Qy9KXo29CrcK6NR5n3OlXsEPQLfn/Zznw+hl6ymAUvf458ABFTdAZC3rBAfWNvi28F1E8Q3oo659eb6I55esiAAa/C8KYR30YFIcdGh77rqrfBk2kM/AwlAFqGukHfetJ2DdA5BvA/arTAQHfBYr0AvqA3qTtqKIjI5WVwo+yMTDlSfU0B4cwAcafwl1ED5KnEF3QJ+7w+CgTcGncXWUBxoN65UUWXdAGf3FAQYR6o7jNY+tt3yXTpop5st24EE9jQZYzGk/NlJ3oFc5/wD+ZV5uRJB3Rv2NwNlqEtoaH53TqI+XhOi3/NZgWv6s+y5GQPqDhsJhJlJFlA0Zo6EpqMd0MJL0vI4RNDiWrWt8OlvyWgP6dhxCMZHwgsOh/eCAf+0hBIOBNAQPQtfAGDYD4Rm/qaN8Y0oZcsU36gE1PHRe+q48Y7FZ+aGAPtRvCsYH1pBC9p8o+ko9jG2Rgkb6eCnsg+lghs4/9aFjK3ag0gSMtDgjGTKWi9xM5ELxGR1lsXJdnWKP73VGDywcmffprhBgib8KeP105Qy5T9kZXAW/gcOCni1mPv0Yva4Nzozp5EHIHedTKtNC2cW3cDR9HYKeNdxNXNR1TJEOmb8Ot4nHx8fLbeobt66/kVQfr2kEQq8AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\lim_{x \\to 0^+} \\frac{1}{x}$" ], "text/plain": [ " 1\n", " lim ─\n", "x─→0⁺x" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lim = Limit(1/x, x, 0, '+')\n", "lim" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAKCAYAAABWiWWfAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABKklEQVQoFX2S0U3DMBRFHSaIygZhg3aFskEKG8AGVP1K/qqyQdiAlg3aEUhHKBNUYoNwjpNIFKs86eb6Xb9c+9nOuq4LRl3XU2gO7kBL/gYngZ4jPoAZaMEW7RsOmWYkT4wXYA9ugbmxYO7QD+OCJeMVWIJPUIBH8E7dMVRVVYBG0xHkOWhBB+bqcAl2Y81vRt+YZw5wdaWLQLOdLyC76xWarSWB7hFNbvick1kECjwHTYwdSBaMM3yoPUKFZleDIs/rdSh4vlrYT+T/mg0/e8OalpiPFzNM9YTuRZw0O5HYcxLotreG72FbaRhr/jfc9WF8Gg3JksL4XmAPXaM949jmoPmu3IU/b8EEeJbxXUYzkkDxBrJQI03dkbu5CLQXBN+W3Thv3QccfgDHpJb9GsghWgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "∞" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lim.doit()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2 \\lim_{x \\to \\infty} \\left(1 + \\frac{1}{x}\\right)^{x}$" ], "text/plain": [ " x\n", " ⎛ 1⎞ \n", "2⋅lim ⎜1 + ─⎟ \n", " x─→∞⎝ x⎠ " ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lim = 2*Limit((1+1/x)**x, x, oo)\n", "lim" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAYAAAAi2ky3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABWElEQVQoFY2TMVLDQAxF15ADZOAGSUsVoHfBEUJLl+QGeFLZbbgBKWmhpLMLN5TkBuQGCdzAvC92GTtsSDSjkfbr61sr20nTNK4oioFzLsNlV/gWz8BXAo6xU0gSWdB0l6bpK76s6/oC7In4xnl9jNCJRPBJm4yopvvCn9v4f7mEbvBPmvs7xIpzH1wTHzQJqWFNgyaI2e4DYhyXaNkxQ/gDfEBM2nXOEp7jG48PiVnPHzoB8ghAVwpv0urgWsMjfktub9Rz51EhiFryEtID0YxcwiU+CyI/Fdtx+edqkPRER5x5ogXOEtFEYcpzXy+pVZ2JAKYqEjsivkEiL9R+p/S4Bb01MwhjkmFbhFzL1pWC7f04TQiylntNDGOHRonrd5HtFaFv3PNP1HIrctuPtTl3RhyBhavoD+hcmZo+BeGLJM/zdzXgMVtBvgwF8ntyLTl8Qw7MHvQNpAB56kCfgQUAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 2 e$" ], "text/plain": [ "2⋅ℯ" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lim.doit()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sympy policzy pochodną i więcej:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAATCAYAAACHrr18AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB8ElEQVRIDb2V7U0CQRCGD2MBaAnYAWoH2oHECoAOJPyCfwY7UCvQ0AF0gNgBloDXwfk+6+zehBA4LzknGebjZufdnZldWkVRZE3RdDptK/fY8ndM9uXPT5sCtbwzgQwjhvRn6WvxxUl0NiQHArtxuWfSO/J1mwbmtB8OuFTp8X/xZDKZiTfgpR7r+DQ/9oOhwKZHy3Kb9TXKq9V34kuytECXE6DdQRjIxzD09H0uWZu0nkPEXDmJ4okBYRAWDuTdgrkOtYENlEPdKk8mycnzOFyfGMYSISDsLBg1fwyUkz4CaKC0cxtOLAd9PPP55aMfEAvrEneWNiITKfcw9Dh5TNEH7h6AlOjFf5dNIloDXYv7Ynp4L4ZWijnamtjjsEILqD+gJKT8++5gGkLFPyjmVQzYSBw2K/vPwIDBmZJQ6rVkmmrpnJTXxxNxI3OcS+5+97Glfujx0GX/FhfiNnGSXR8veyFee19VPUy1ThInrtzRrxZLTfkzxYVquCD8b86urJ4oWZw6yopeiRQbNqPg1E/WV80BcK7F8Nx0D3xlxtKS8sBEwPC8yv5yC8Z7crjPpRofEIZjUbrTcFGBoSUDEN7Kxr8Vs+FA8vFtZeZRke6xLey5FdxNrk74kzAwJnZDjOwnMRPNU8gDwYZS2WUfpB+0tmqAQhvLkgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 3 x^{2}$" ], "text/plain": [ " 2\n", "3⋅x " ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = ((3*x**2))\n", "q" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAOCAYAAADABlfOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABi0lEQVQ4Ea2TMVICQRBFFzQwVG+g3gA1J9AbiJ5A8QZKhpG1ZqZ4AsTQTAISI4TQDFMjKW6A703tUFNbFrWBXfW3u/9098x0z9aWy2WWSrfbzVMfuw83LXFr3c24SuI+9htoYw/l0QOUONCvKvUk0ORhLFjw2+ivJKaSWfP6FDoj2qI72ItKmWuC4kk7xCz+o6B7xZ42sKcUVV+AH2AfB3Chv9hB8G3JVeEeoy+B8zBPGW/wMegWfAuS8maz+Q5eR6PRBMywP1kLgv9ITMcY7D3Ia7AFd4ffwm7H65vQYKGnkcgz9hO8G2doT1h+cs7jxXVkF+R1AuNg/pryhCALHgHlg/g07hTOtgUO3QK9eFLJWNzkstizjITyT3AC3S8Hx0FZNCSWAwo/PV2g2MCCSry6m4Y2xaL2yb+pLIcQPjV/ChN8y7k+ug0y7HTDDv5NuH4RZOJqCNgWOQc+GcWTiXmxNsdetQzOtTHIwh+lobBg0XAFtJO8hwt9RMu7PgPGPgAn77AcqJuFVvwCfN+cOndwBtoAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 6 x$" ], "text/plain": [ "6⋅x" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q.diff(x)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 9 f{\\left(x \\right)} + \\frac{d^{2}}{d x^{2}} f{\\left(x \\right)} = 1$" ], "text/plain": [ " 2 \n", " d \n", "9⋅f(x) + ───(f(x)) = 1\n", " 2 \n", " dx " ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqn = Eq(Derivative(f(x),x,x) + 9*f(x), 1)\n", "eqn" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle f{\\left(x \\right)} = C_{1} \\sin{\\left(3 x \\right)} + C_{2} \\cos{\\left(3 x \\right)} + \\frac{1}{9}$" ], "text/plain": [ "f(x) = C₁⋅sin(3⋅x) + C₂⋅cos(3⋅x) + 1/9" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(eqn, f(x))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 1 }