├── requirements.txt
├── sympy_tutorial.pdf
├── tex
├── figures
│ └── cover_v40_noline_lite.png
├── 99.quadratic_eqn_subsitution_example.tex
├── 99.hyperbolic_functions_sympy_tutorial.tex
├── 99.simle_ode_example.tex
├── 99.vectors_projectsions_FORLA.tex
├── sympy_tutorial.tex
└── 99.LA_sympy_tutorial.tex
├── latex
└── README.md
├── markdown
├── Calculus_files
│ ├── Calculus_4_0.png
│ ├── Calculus_5_0.png
│ ├── Calculus_6_0.png
│ ├── Calculus_9_0.png
│ ├── Calculus_100_0.png
│ ├── Calculus_101_0.png
│ ├── Calculus_102_0.png
│ ├── Calculus_104_0.png
│ ├── Calculus_106_0.png
│ ├── Calculus_11_0.png
│ ├── Calculus_12_0.png
│ ├── Calculus_13_0.png
│ ├── Calculus_15_0.png
│ ├── Calculus_16_0.png
│ ├── Calculus_17_0.png
│ ├── Calculus_21_0.png
│ ├── Calculus_23_0.png
│ ├── Calculus_24_0.png
│ ├── Calculus_25_0.png
│ ├── Calculus_27_0.png
│ ├── Calculus_29_0.png
│ ├── Calculus_31_0.png
│ ├── Calculus_35_0.png
│ ├── Calculus_36_0.png
│ ├── Calculus_37_0.png
│ ├── Calculus_43_0.png
│ ├── Calculus_44_0.png
│ ├── Calculus_45_0.png
│ ├── Calculus_46_0.png
│ ├── Calculus_50_0.png
│ ├── Calculus_51_0.png
│ ├── Calculus_52_0.png
│ ├── Calculus_54_0.png
│ ├── Calculus_56_0.png
│ ├── Calculus_58_0.png
│ ├── Calculus_59_0.png
│ ├── Calculus_60_0.png
│ ├── Calculus_64_0.png
│ ├── Calculus_65_0.png
│ ├── Calculus_67_0.png
│ ├── Calculus_68_0.png
│ ├── Calculus_74_0.png
│ ├── Calculus_76_0.png
│ ├── Calculus_77_0.png
│ ├── Calculus_79_0.png
│ ├── Calculus_80_0.png
│ ├── Calculus_82_0.png
│ ├── Calculus_85_0.png
│ ├── Calculus_86_0.png
│ ├── Calculus_88_0.png
│ ├── Calculus_89_0.png
│ ├── Calculus_92_0.png
│ ├── Calculus_93_0.png
│ ├── Calculus_95_0.png
│ ├── Calculus_97_0.png
│ └── Calculus_99_0.png
├── Vectors_files
│ ├── Vectors_10_0.png
│ ├── Vectors_12_0.png
│ ├── Vectors_17_0.png
│ ├── Vectors_19_0.png
│ ├── Vectors_21_0.png
│ ├── Vectors_25_0.png
│ ├── Vectors_27_0.png
│ ├── Vectors_29_0.png
│ ├── Vectors_31_0.png
│ ├── Vectors_32_0.png
│ ├── Vectors_3_0.png
│ ├── Vectors_4_0.png
│ ├── Vectors_5_0.png
│ ├── Vectors_6_0.png
│ └── Vectors_7_0.png
├── Mechanics_files
│ ├── Mechanics_4_0.png
│ ├── Mechanics_5_0.png
│ ├── Mechanics_7_0.png
│ ├── Mechanics_8_0.png
│ ├── Mechanics_14_0.png
│ ├── Mechanics_15_0.png
│ ├── Mechanics_17_0.png
│ ├── Mechanics_18_0.png
│ ├── Mechanics_22_0.png
│ ├── Mechanics_23_0.png
│ ├── Mechanics_24_0.png
│ ├── Mechanics_28_0.png
│ ├── Mechanics_31_0.png
│ ├── Mechanics_32_0.png
│ ├── Mechanics_36_0.png
│ ├── Mechanics_37_0.png
│ ├── Mechanics_39_0.png
│ ├── Mechanics_43_0.png
│ ├── Mechanics_44_0.png
│ ├── Mechanics_45_0.png
│ ├── Mechanics_46_0.png
│ └── Mechanics_47_0.png
├── SymPyTut_files
│ ├── SymPyTut_100_0.png
│ ├── SymPyTut_101_0.png
│ ├── SymPyTut_103_0.png
│ ├── SymPyTut_105_0.png
│ ├── SymPyTut_106_0.png
│ ├── SymPyTut_108_0.png
│ ├── SymPyTut_109_0.png
│ ├── SymPyTut_112_0.png
│ ├── SymPyTut_113_0.png
│ ├── SymPyTut_114_0.png
│ ├── SymPyTut_115_0.png
│ ├── SymPyTut_116_0.png
│ ├── SymPyTut_118_0.png
│ ├── SymPyTut_119_0.png
│ ├── SymPyTut_122_0.png
│ ├── SymPyTut_123_0.png
│ ├── SymPyTut_125_0.png
│ ├── SymPyTut_128_0.png
│ ├── SymPyTut_129_0.png
│ ├── SymPyTut_131_0.png
│ ├── SymPyTut_132_0.png
│ ├── SymPyTut_133_0.png
│ ├── SymPyTut_135_0.png
│ ├── SymPyTut_136_0.png
│ ├── SymPyTut_138_0.png
│ ├── SymPyTut_142_0.png
│ ├── SymPyTut_143_0.png
│ ├── SymPyTut_144_0.png
│ ├── SymPyTut_146_0.png
│ ├── SymPyTut_152_0.png
│ ├── SymPyTut_153_0.png
│ ├── SymPyTut_154_0.png
│ ├── SymPyTut_157_0.png
│ ├── SymPyTut_159_0.png
│ ├── SymPyTut_15_0.png
│ ├── SymPyTut_160_0.png
│ ├── SymPyTut_161_0.png
│ ├── SymPyTut_163_0.png
│ ├── SymPyTut_164_0.png
│ ├── SymPyTut_165_0.png
│ ├── SymPyTut_169_0.png
│ ├── SymPyTut_16_0.png
│ ├── SymPyTut_171_0.png
│ ├── SymPyTut_172_0.png
│ ├── SymPyTut_173_0.png
│ ├── SymPyTut_175_0.png
│ ├── SymPyTut_177_0.png
│ ├── SymPyTut_179_0.png
│ ├── SymPyTut_183_0.png
│ ├── SymPyTut_184_0.png
│ ├── SymPyTut_185_0.png
│ ├── SymPyTut_18_0.png
│ ├── SymPyTut_191_0.png
│ ├── SymPyTut_192_0.png
│ ├── SymPyTut_193_0.png
│ ├── SymPyTut_194_0.png
│ ├── SymPyTut_198_0.png
│ ├── SymPyTut_199_0.png
│ ├── SymPyTut_200_0.png
│ ├── SymPyTut_202_0.png
│ ├── SymPyTut_204_0.png
│ ├── SymPyTut_206_0.png
│ ├── SymPyTut_207_0.png
│ ├── SymPyTut_208_0.png
│ ├── SymPyTut_20_0.png
│ ├── SymPyTut_212_0.png
│ ├── SymPyTut_213_0.png
│ ├── SymPyTut_215_0.png
│ ├── SymPyTut_216_0.png
│ ├── SymPyTut_222_0.png
│ ├── SymPyTut_224_0.png
│ ├── SymPyTut_225_0.png
│ ├── SymPyTut_227_0.png
│ ├── SymPyTut_228_0.png
│ ├── SymPyTut_22_0.png
│ ├── SymPyTut_230_0.png
│ ├── SymPyTut_233_0.png
│ ├── SymPyTut_234_0.png
│ ├── SymPyTut_236_0.png
│ ├── SymPyTut_237_0.png
│ ├── SymPyTut_240_0.png
│ ├── SymPyTut_241_0.png
│ ├── SymPyTut_243_0.png
│ ├── SymPyTut_245_0.png
│ ├── SymPyTut_247_0.png
│ ├── SymPyTut_248_0.png
│ ├── SymPyTut_249_0.png
│ ├── SymPyTut_24_0.png
│ ├── SymPyTut_250_0.png
│ ├── SymPyTut_252_0.png
│ ├── SymPyTut_254_0.png
│ ├── SymPyTut_258_0.png
│ ├── SymPyTut_259_0.png
│ ├── SymPyTut_260_0.png
│ ├── SymPyTut_261_0.png
│ ├── SymPyTut_262_0.png
│ ├── SymPyTut_265_0.png
│ ├── SymPyTut_267_0.png
│ ├── SymPyTut_26_0.png
│ ├── SymPyTut_272_0.png
│ ├── SymPyTut_274_0.png
│ ├── SymPyTut_276_0.png
│ ├── SymPyTut_27_0.png
│ ├── SymPyTut_280_0.png
│ ├── SymPyTut_282_0.png
│ ├── SymPyTut_284_0.png
│ ├── SymPyTut_286_0.png
│ ├── SymPyTut_287_0.png
│ ├── SymPyTut_293_0.png
│ ├── SymPyTut_294_0.png
│ ├── SymPyTut_296_0.png
│ ├── SymPyTut_297_0.png
│ ├── SymPyTut_303_0.png
│ ├── SymPyTut_304_0.png
│ ├── SymPyTut_306_0.png
│ ├── SymPyTut_307_0.png
│ ├── SymPyTut_311_0.png
│ ├── SymPyTut_312_0.png
│ ├── SymPyTut_313_0.png
│ ├── SymPyTut_317_0.png
│ ├── SymPyTut_320_0.png
│ ├── SymPyTut_321_0.png
│ ├── SymPyTut_325_0.png
│ ├── SymPyTut_326_0.png
│ ├── SymPyTut_328_0.png
│ ├── SymPyTut_332_0.png
│ ├── SymPyTut_333_0.png
│ ├── SymPyTut_334_0.png
│ ├── SymPyTut_335_0.png
│ ├── SymPyTut_336_0.png
│ ├── SymPyTut_33_0.png
│ ├── SymPyTut_341_0.png
│ ├── SymPyTut_342_0.png
│ ├── SymPyTut_344_0.png
│ ├── SymPyTut_345_0.png
│ ├── SymPyTut_347_0.png
│ ├── SymPyTut_350_0.png
│ ├── SymPyTut_354_0.png
│ ├── SymPyTut_358_0.png
│ ├── SymPyTut_360_0.png
│ ├── SymPyTut_362_0.png
│ ├── SymPyTut_365_0.png
│ ├── SymPyTut_369_0.png
│ ├── SymPyTut_36_0.png
│ ├── SymPyTut_370_0.png
│ ├── SymPyTut_371_0.png
│ ├── SymPyTut_375_0.png
│ ├── SymPyTut_376_0.png
│ ├── SymPyTut_378_0.png
│ ├── SymPyTut_379_0.png
│ ├── SymPyTut_380_0.png
│ ├── SymPyTut_381_0.png
│ ├── SymPyTut_382_0.png
│ ├── SymPyTut_386_0.png
│ ├── SymPyTut_387_0.png
│ ├── SymPyTut_40_0.png
│ ├── SymPyTut_41_0.png
│ ├── SymPyTut_44_0.png
│ ├── SymPyTut_46_0.png
│ ├── SymPyTut_47_0.png
│ ├── SymPyTut_48_0.png
│ ├── SymPyTut_50_0.png
│ ├── SymPyTut_51_0.png
│ ├── SymPyTut_52_0.png
│ ├── SymPyTut_56_0.png
│ ├── SymPyTut_58_0.png
│ ├── SymPyTut_60_0.png
│ ├── SymPyTut_62_0.png
│ ├── SymPyTut_64_0.png
│ ├── SymPyTut_65_0.png
│ ├── SymPyTut_69_0.png
│ ├── SymPyTut_70_0.png
│ ├── SymPyTut_72_0.png
│ ├── SymPyTut_75_0.png
│ ├── SymPyTut_77_0.png
│ ├── SymPyTut_78_0.png
│ ├── SymPyTut_81_0.png
│ ├── SymPyTut_83_0.png
│ ├── SymPyTut_85_0.png
│ ├── SymPyTut_86_0.png
│ ├── SymPyTut_88_0.png
│ └── SymPyTut_89_0.png
├── Linear-algebra_files
│ ├── Linear-algebra_4_0.png
│ ├── Linear-algebra_5_0.png
│ ├── Linear-algebra_7_0.png
│ ├── Linear-algebra_8_0.png
│ ├── Linear-algebra_10_0.png
│ ├── Linear-algebra_13_0.png
│ ├── Linear-algebra_17_0.png
│ ├── Linear-algebra_21_0.png
│ ├── Linear-algebra_23_0.png
│ ├── Linear-algebra_25_0.png
│ ├── Linear-algebra_28_0.png
│ ├── Linear-algebra_32_0.png
│ ├── Linear-algebra_33_0.png
│ ├── Linear-algebra_34_0.png
│ ├── Linear-algebra_38_0.png
│ ├── Linear-algebra_39_0.png
│ ├── Linear-algebra_41_0.png
│ ├── Linear-algebra_42_0.png
│ ├── Linear-algebra_43_0.png
│ ├── Linear-algebra_44_0.png
│ ├── Linear-algebra_45_0.png
│ ├── Linear-algebra_49_0.png
│ └── Linear-algebra_50_0.png
├── Complex-numbers_files
│ ├── Complex-numbers_10_0.png
│ ├── Complex-numbers_12_0.png
│ ├── Complex-numbers_16_0.png
│ ├── Complex-numbers_17_0.png
│ ├── Complex-numbers_18_0.png
│ ├── Complex-numbers_20_0.png
│ ├── Complex-numbers_2_0.png
│ ├── Complex-numbers_3_0.png
│ ├── Complex-numbers_5_0.png
│ ├── Complex-numbers_6_0.png
│ ├── Complex-numbers_7_0.png
│ └── Complex-numbers_9_0.png
├── Fundamentals-of-mathematics_files
│ ├── Fundamentals-of-mathematics_101_0.png
│ ├── Fundamentals-of-mathematics_102_0.png
│ ├── Fundamentals-of-mathematics_103_0.png
│ ├── Fundamentals-of-mathematics_104_0.png
│ ├── Fundamentals-of-mathematics_105_0.png
│ ├── Fundamentals-of-mathematics_107_0.png
│ ├── Fundamentals-of-mathematics_108_0.png
│ ├── Fundamentals-of-mathematics_111_0.png
│ ├── Fundamentals-of-mathematics_112_0.png
│ ├── Fundamentals-of-mathematics_114_0.png
│ ├── Fundamentals-of-mathematics_11_0.png
│ ├── Fundamentals-of-mathematics_13_0.png
│ ├── Fundamentals-of-mathematics_15_0.png
│ ├── Fundamentals-of-mathematics_16_0.png
│ ├── Fundamentals-of-mathematics_22_0.png
│ ├── Fundamentals-of-mathematics_25_0.png
│ ├── Fundamentals-of-mathematics_29_0.png
│ ├── Fundamentals-of-mathematics_30_0.png
│ ├── Fundamentals-of-mathematics_33_0.png
│ ├── Fundamentals-of-mathematics_35_0.png
│ ├── Fundamentals-of-mathematics_36_0.png
│ ├── Fundamentals-of-mathematics_37_0.png
│ ├── Fundamentals-of-mathematics_39_0.png
│ ├── Fundamentals-of-mathematics_40_0.png
│ ├── Fundamentals-of-mathematics_41_0.png
│ ├── Fundamentals-of-mathematics_45_0.png
│ ├── Fundamentals-of-mathematics_47_0.png
│ ├── Fundamentals-of-mathematics_49_0.png
│ ├── Fundamentals-of-mathematics_4_0.png
│ ├── Fundamentals-of-mathematics_51_0.png
│ ├── Fundamentals-of-mathematics_53_0.png
│ ├── Fundamentals-of-mathematics_54_0.png
│ ├── Fundamentals-of-mathematics_58_0.png
│ ├── Fundamentals-of-mathematics_59_0.png
│ ├── Fundamentals-of-mathematics_5_0.png
│ ├── Fundamentals-of-mathematics_61_0.png
│ ├── Fundamentals-of-mathematics_64_0.png
│ ├── Fundamentals-of-mathematics_66_0.png
│ ├── Fundamentals-of-mathematics_67_0.png
│ ├── Fundamentals-of-mathematics_70_0.png
│ ├── Fundamentals-of-mathematics_72_0.png
│ ├── Fundamentals-of-mathematics_74_0.png
│ ├── Fundamentals-of-mathematics_75_0.png
│ ├── Fundamentals-of-mathematics_77_0.png
│ ├── Fundamentals-of-mathematics_78_0.png
│ ├── Fundamentals-of-mathematics_7_0.png
│ ├── Fundamentals-of-mathematics_89_0.png
│ ├── Fundamentals-of-mathematics_90_0.png
│ ├── Fundamentals-of-mathematics_92_0.png
│ ├── Fundamentals-of-mathematics_94_0.png
│ ├── Fundamentals-of-mathematics_95_0.png
│ ├── Fundamentals-of-mathematics_97_0.png
│ ├── Fundamentals-of-mathematics_98_0.png
│ └── Fundamentals-of-mathematics_9_0.png
├── Complex-numbers.md
├── Vectors.md
├── Intro.md
├── Mechanics.md
└── Linear-algebra.md
├── AUTHORS.txt
├── README.md
├── LICENSE.txt
├── .gitignore
└── notebooks
├── Complex-numbers.ipynb
└── Intro.ipynb
/requirements.txt:
--------------------------------------------------------------------------------
1 | sympy==1.8
2 | jupyterlab==3.1.14
3 |
--------------------------------------------------------------------------------
/sympy_tutorial.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/sympy_tutorial.pdf
--------------------------------------------------------------------------------
/tex/figures/cover_v40_noline_lite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/tex/figures/cover_v40_noline_lite.png
--------------------------------------------------------------------------------
/latex/README.md:
--------------------------------------------------------------------------------
1 |
2 | See this github repo for original LaTeX source (MIT license):
3 |
4 | https://github.com/ivanistheone/sympy_tutorial
5 |
6 |
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_4_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_4_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_5_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_5_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_6_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_6_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_9_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_9_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_10_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_10_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_12_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_12_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_17_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_17_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_19_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_19_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_21_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_21_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_25_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_25_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_27_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_27_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_29_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_29_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_31_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_31_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_32_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_32_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_3_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_3_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_4_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_4_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_5_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_5_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_6_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_6_0.png
--------------------------------------------------------------------------------
/markdown/Vectors_files/Vectors_7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Vectors_files/Vectors_7_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_100_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_100_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_101_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_101_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_102_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_102_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_104_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_104_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_106_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_106_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_11_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_11_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_12_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_12_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_13_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_13_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_15_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_15_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_16_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_16_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_17_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_17_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_21_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_21_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_23_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_23_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_24_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_24_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_25_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_25_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_27_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_27_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_29_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_29_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_31_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_31_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_35_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_35_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_36_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_36_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_37_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_37_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_43_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_43_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_44_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_44_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_45_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_45_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_46_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_46_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_50_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_50_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_51_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_51_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_52_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_52_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_54_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_54_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_56_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_56_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_58_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_58_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_59_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_59_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_60_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_60_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_64_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_64_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_65_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_65_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_67_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_67_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_68_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_68_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_74_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_74_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_76_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_76_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_77_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_77_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_79_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_79_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_80_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_80_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_82_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_82_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_85_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_85_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_86_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_86_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_88_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_88_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_89_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_89_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_92_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_92_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_93_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_93_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_95_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_95_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_97_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_97_0.png
--------------------------------------------------------------------------------
/markdown/Calculus_files/Calculus_99_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Calculus_files/Calculus_99_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_4_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_4_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_5_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_5_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_7_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_8_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_8_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_100_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_100_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_101_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_101_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_103_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_103_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_105_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_105_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_106_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_106_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_108_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_108_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_109_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_109_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_112_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_112_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_113_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_113_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_114_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_114_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_115_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_115_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_116_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_116_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_118_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_118_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_119_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_119_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_122_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_122_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_123_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_123_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_125_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_125_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_128_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_128_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_129_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_129_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_131_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_131_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_132_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_132_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_133_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_133_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_135_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_135_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_136_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_136_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_138_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_138_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_142_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_142_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_143_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_143_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_144_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_144_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_146_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_146_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_152_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_152_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_153_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_153_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_154_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_154_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_157_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_157_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_159_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_159_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_15_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_15_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_160_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_160_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_161_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_161_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_163_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_163_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_164_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_164_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_165_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_165_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_169_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_169_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_16_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_16_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_171_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_171_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_172_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_172_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_173_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_173_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_175_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_175_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_177_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_177_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_179_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_179_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_183_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_183_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_184_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_184_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_185_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_185_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_18_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_18_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_191_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_191_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_192_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_192_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_193_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_193_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_194_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_194_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_198_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_198_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_199_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_199_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_200_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_200_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_202_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_202_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_204_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_204_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_206_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_206_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_207_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_207_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_208_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_208_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_20_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_20_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_212_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_212_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_213_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_213_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_215_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_215_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_216_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_216_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_222_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_222_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_224_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_224_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_225_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_225_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_227_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_227_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_228_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_228_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_22_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_22_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_230_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_230_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_233_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_233_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_234_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_234_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_236_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_236_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_237_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_237_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_240_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_240_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_241_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_241_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_243_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_243_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_245_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_245_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_247_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_247_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_248_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_248_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_249_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_249_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_24_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_24_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_250_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_250_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_252_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_252_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_254_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_254_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_258_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_258_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_259_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_259_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_260_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_260_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_261_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_261_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_262_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_262_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_265_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_265_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_267_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_267_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_26_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_26_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_272_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_272_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_274_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_274_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_276_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_276_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_27_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_27_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_280_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_280_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_282_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_282_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_284_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_284_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_286_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_286_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_287_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_287_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_293_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_293_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_294_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_294_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_296_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_296_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_297_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_297_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_303_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_303_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_304_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_304_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_306_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_306_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_307_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_307_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_311_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_311_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_312_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_312_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_313_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_313_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_317_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_317_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_320_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_320_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_321_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_321_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_325_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_325_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_326_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_326_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_328_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_328_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_332_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_332_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_333_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_333_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_334_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_334_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_335_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_335_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_336_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_336_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_33_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_33_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_341_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_341_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_342_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_342_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_344_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_344_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_345_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_345_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_347_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_347_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_350_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_350_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_354_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_354_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_358_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_358_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_360_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_360_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_362_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_362_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_365_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_365_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_369_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_369_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_36_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_36_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_370_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_370_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_371_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_371_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_375_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_375_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_376_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_376_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_378_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_378_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_379_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_379_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_380_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_380_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_381_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_381_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_382_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_382_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_386_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_386_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_387_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_387_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_40_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_40_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_41_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_41_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_44_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_44_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_46_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_46_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_47_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_47_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_48_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_48_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_50_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_50_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_51_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_51_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_52_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_52_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_56_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_56_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_58_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_58_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_60_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_60_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_62_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_62_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_64_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_64_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_65_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_65_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_69_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_69_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_70_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_70_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_72_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_72_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_75_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_75_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_77_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_77_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_78_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_78_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_81_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_81_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_83_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_83_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_85_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_85_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_86_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_86_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_88_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_88_0.png
--------------------------------------------------------------------------------
/markdown/SymPyTut_files/SymPyTut_89_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/SymPyTut_files/SymPyTut_89_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_14_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_14_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_15_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_15_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_17_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_17_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_18_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_18_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_22_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_22_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_23_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_23_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_24_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_24_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_28_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_28_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_31_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_31_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_32_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_32_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_36_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_36_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_37_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_37_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_39_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_39_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_43_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_43_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_44_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_44_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_45_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_45_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_46_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_46_0.png
--------------------------------------------------------------------------------
/markdown/Mechanics_files/Mechanics_47_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Mechanics_files/Mechanics_47_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_4_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_4_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_5_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_5_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_7_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_8_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_8_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_10_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_10_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_12_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_12_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_16_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_16_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_17_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_17_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_18_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_18_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_20_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_20_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_2_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_2_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_3_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_3_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_5_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_5_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_6_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_6_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_7_0.png
--------------------------------------------------------------------------------
/markdown/Complex-numbers_files/Complex-numbers_9_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Complex-numbers_files/Complex-numbers_9_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_10_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_10_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_13_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_13_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_17_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_17_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_21_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_21_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_23_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_23_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_25_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_25_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_28_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_28_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_32_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_32_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_33_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_33_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_34_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_34_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_38_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_38_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_39_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_39_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_41_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_41_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_42_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_42_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_43_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_43_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_44_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_44_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_45_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_45_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_49_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_49_0.png
--------------------------------------------------------------------------------
/markdown/Linear-algebra_files/Linear-algebra_50_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Linear-algebra_files/Linear-algebra_50_0.png
--------------------------------------------------------------------------------
/AUTHORS.txt:
--------------------------------------------------------------------------------
1 | Ivan Savov (initial .tex version from the `No bullshit guide to math and physics` appendix)
2 | Sandra Gordon (editor)
3 | Zdeněk Janák (IPython notebook conversion)
4 |
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_101_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_101_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_102_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_102_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_103_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_103_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_104_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_104_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_105_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_105_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_107_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_107_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_108_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_108_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_111_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_111_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_112_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_112_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_114_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_114_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_11_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_11_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_13_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_13_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_15_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_15_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_16_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_16_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_22_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_22_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_25_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_25_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_29_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_29_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_30_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_30_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_33_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_33_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_35_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_35_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_36_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_36_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_37_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_37_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_39_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_39_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_40_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_40_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_41_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_41_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_45_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_45_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_47_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_47_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_49_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_49_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_4_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_4_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_51_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_51_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_53_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_53_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_54_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_54_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_58_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_58_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_59_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_59_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_5_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_5_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_61_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_61_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_64_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_64_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_66_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_66_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_67_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_67_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_70_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_70_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_72_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_72_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_74_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_74_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_75_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_75_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_77_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_77_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_78_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_78_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_7_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_89_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_89_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_90_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_90_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_92_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_92_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_94_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_94_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_95_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_95_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_97_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_97_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_98_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_98_0.png
--------------------------------------------------------------------------------
/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_9_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minireference/sympytut_notebooks/HEAD/markdown/Fundamentals-of-mathematics_files/Fundamentals-of-mathematics_9_0.png
--------------------------------------------------------------------------------
/tex/99.quadratic_eqn_subsitution_example.tex:
--------------------------------------------------------------------------------
1 | To solve a specific equation like $x^2+2x-8=0$,
2 | we can substitute the coefficients $a=1$, $b=2$, and $c=-8$ into
3 | the general solution to obtain the same result:
4 |
5 | \small
6 | \begin{verbatimtab}
7 | >>> gen_sol = solve( a*x**2 + b*x + c, x)
8 | >>> [ gen_sol[0].subs({'a':1,'b':2,'c':-8}),
9 | gen_sol[1].subs({'a':1,'b':2,'c':-8}) ]
10 | [2, -4]
11 | \end{verbatimtab}
12 | \normalsize
13 |
14 |
--------------------------------------------------------------------------------
/tex/99.hyperbolic_functions_sympy_tutorial.tex:
--------------------------------------------------------------------------------
1 | \subsection{Hyperbolic trigonometric functions}
2 | \label{basics:hyperbolic_trigonometric_functions}
3 |
4 | The hyperbolic sine and cosine in \texttt{SymPy} are denoted \texttt{sinh} and \texttt{cosh} respectively
5 | and \texttt{SymPy} is smart enough to recognize them when simplifying expressions:
6 |
7 | \small
8 | \begin{verbatimtab}
9 | >>> simplify( (exp(x)+exp(-x))/2 )
10 | cosh(x)
11 | >>> simplify( (exp(x)-exp(-x))/2 )
12 | sinh(x)
13 | \end{verbatimtab}
14 | \normalsize
15 | Recall that $x=\cosh(\mu)$ and $y=\sinh(\mu)$ are defined as $x$ and $y$ coordinates of a point on the
16 | the hyperbola with equation $x^2 - y^2 = 1$ and therefore satisfy the identity $\cosh^2 x - \sinh^2 x =1$:
17 |
18 |
19 |
20 | \small
21 | \begin{verbatimtab}
22 | >>> simplify( cosh(x)**2 - sinh(x)**2 )
23 | 1
24 | \end{verbatimtab}
25 | \normalsize
--------------------------------------------------------------------------------
/tex/99.simle_ode_example.tex:
--------------------------------------------------------------------------------
1 | \noindent
2 | The exponential function $f(x)=e^x$ is special because it is equal to its derivative:
3 |
4 | \small
5 | \begin{verbatimtab}
6 | >>> diff( exp(x), x) # same as diff( E**x, x)
7 | exp(x) # same as E**x
8 | \end{verbatimtab}
9 | \normalsize
10 |
11 | \noindent
12 | A differential equation is an equation that relates some unknown function $f(x)$ to its derivative.
13 | An example of a differential equation is $f'(x)=f(x)$.
14 | What is the function $f(x)$ which is equal to its derivative?
15 | You can either try to guess what $f(x)$ is or use the \texttt{dsolve} function:
16 |
17 | \small
18 | \begin{verbatimtab}
19 | >>> x = symbols('x')
20 | >>> f = symbols('f', cls=Function) # can now use f(x)
21 | >>> dsolve( f(x) - diff(f(x),x), f(x) )
22 | f(x) == C1*exp(x)
23 | \end{verbatimtab}
24 | \normalsize
25 |
26 | \noindent
27 | We'll discuss \texttt{dsolve} again in the section on mechanics.
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Sympy Tutorial
2 |
3 | A tutorial that shows the powerful capabilities of the computer algebra system
4 | [SymPy](https://www.sympy.org/en/index.html) for solving problems of high school math,
5 | calculus, mechanics, and linear algebra.
6 |
7 |
8 | ## Play
9 |
10 | Click the Binder button below to launch an ephemeral JupyterLab server where you
11 | can play with the notebooks.
12 |
13 | [](https://mybinder.org/v2/gh/minireference/sympytut_notebooks/HEAD)
14 |
15 | Navigate to the `notebooks/` directory and start with `Intro.ipynb`,
16 | or jumpt directly to the topics you're interested in.
17 |
18 |
19 | ## View
20 |
21 | You can view the notebooks in read-only mode on
22 | [NBViewer](http://nbviewer.ipython.org/github/astrograzl/SymPyTut/blob/master/notebooks/Intro.ipynb).
23 |
24 |
25 | ## About
26 |
27 | This repo contains the notebook version of the [SymPy Tutorial](https://minireference.com/static/tutorials/sympy_tutorial.pdf).
28 | This tutorial appears in appendix of the *No Bullshit Guide to Math and Physics*
29 | by Ivan Savov, published by [Minireference Co.](https://minireference.com/).
30 | See here for the [LaTeX source code](https://github.com/ivanistheone/sympy_tutorial)
31 | of the SymPy tutorial.
32 |
33 |
34 | ## Credits
35 |
36 | - Ivan Savov as original author
37 | - [Zdeněk Janák](https://github.com/astrograzl/) for conversion of .tex to .ipynb
38 |
39 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2006-2014 Ivan Savov
2 |
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | a. Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | b. Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | c. Neither the name of SymPy nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
22 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
28 | DAMAGE.
29 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Core latex/pdflatex auxiliary files:
2 | *.aux
3 | *.lof
4 | *.log
5 | *.lot
6 | *.fls
7 | *.out
8 | *.toc
9 | *.pdf
10 |
11 | ## Intermediate documents:
12 | *.dvi
13 | *-converted-to.*
14 | # these rules might exclude image files for figures etc.
15 | # *.ps
16 | # *.eps
17 | # *.pdf
18 |
19 | ## Bibliography auxiliary files (bibtex/biblatex/biber):
20 | *.bbl
21 | *.bcf
22 | *.blg
23 | *-blx.aux
24 | *-blx.bib
25 | *.brf
26 | *.run.xml
27 |
28 | ## Build tool auxiliary files:
29 | *.fdb_latexmk
30 | *.synctex.gz
31 | *.synctex.gz(busy)
32 | *.pdfsync
33 |
34 | ## Auxiliary and intermediate files from other packages:
35 |
36 | # algorithms
37 | *.alg
38 | *.loa
39 |
40 | # amsthm
41 | *.thm
42 |
43 | # beamer
44 | *.nav
45 | *.snm
46 | *.vrb
47 |
48 | #(e)ledmac/(e)ledpar
49 | *.end
50 | *.[1-9]
51 | *.[1-9][0-9]
52 | *.[1-9][0-9][0-9]
53 | *.[1-9]R
54 | *.[1-9][0-9]R
55 | *.[1-9][0-9][0-9]R
56 | *.eledsec[1-9]
57 | *.eledsec[1-9]R
58 | *.eledsec[1-9][0-9]
59 | *.eledsec[1-9][0-9]R
60 | *.eledsec[1-9][0-9][0-9]
61 | *.eledsec[1-9][0-9][0-9]R
62 |
63 | # glossaries
64 | *.acn
65 | *.acr
66 | *.glg
67 | *.glo
68 | *.gls
69 |
70 | # hyperref
71 | *.brf
72 |
73 | # listings
74 | *.lol
75 |
76 | # makeidx
77 | *.idx
78 | *.ilg
79 | *.ind
80 | *.ist
81 |
82 | # minitoc
83 | *.maf
84 | *.mtc
85 | *.mtc0
86 |
87 | # minted
88 | *.pyg
89 |
90 | # morewrites
91 | *.mw
92 |
93 | # nomencl
94 | *.nlo
95 |
96 | # sagetex
97 | *.sagetex.sage
98 | *.sagetex.py
99 | *.sagetex.scmd
100 |
101 | # sympy
102 | *.sout
103 | *.sympy
104 | sympy-plots-for-*.tex/
105 |
106 | # todonotes
107 | *.tdo
108 |
109 | # xindy
110 | *.xdy
111 |
112 | ## IPython
113 | .ipynb_checkpoints/
114 |
115 | ## Sage cloud
116 | *.sage-chat
117 | *.sage-history
118 | *.syncdoc4
119 |
--------------------------------------------------------------------------------
/tex/99.vectors_projectsions_FORLA.tex:
--------------------------------------------------------------------------------
1 |
2 |
3 | \vspace{-4mm}
4 |
5 |
6 | \subsection{Projections}
7 | \label{vectors:projections}
8 |
9 | \vspace{-2mm}
10 |
11 | Dot products are used for computing projections.
12 | Assume you're given two vectors $\vec{u}$ and $\vec{n}$ and you want to find the component
13 | of $\vec{u}$ that points in the $\vec{n}$ direction.
14 | The following formula based on the dot product will give you the answer:
15 | \[
16 | \Pi_{\vec{n}}( \vec{u} ) \equiv \frac{ \vec{u} \cdot \vec{n} }{ \| \vec{n} \|^2 } \vec{n}.
17 | \]
18 |
19 | \vspace{-2mm}
20 |
21 | \noindent
22 | This is how to implement this formula in \texttt{SymPy}:
23 | \small
24 | \begin{verbatimtab}
25 | >>> u = Matrix([4,5,6])
26 | >>> n = Matrix([1,1,1])
27 | >>> (u.dot(n) / n.norm()**2)*n
28 | [5, 5, 5] # projection of v in the n dir
29 | \end{verbatimtab}
30 | \normalsize
31 |
32 | \noindent
33 | In the case where the direction vector $\hat{n}$ is of unit length $\|\hat{n}\| = 1$,
34 | the projection formula simplifies to $\Pi_{\hat{n}}( \vec{u} ) \equiv (\vec{u}\cdot\hat{n})\hat{n}$.
35 |
36 |
37 | Consider now the plane $P$ defined by $(1,1,1)\cdot[(x,y,z)-(0,0,0)]=0$.
38 | A plane is a two dimensional subspace of $\mathbb{R}^3$.
39 | We can decompose any vector $\vec{u} \in \mathbb{R}^3$ into two parts $\vec{u}=\vec{v} + \vec{w}$
40 | such that $\vec{v}$ lies inside the plane and $\vec{w}$ is perpendicular to the plane (parallel to $\vec{n}=(1,1,1)$).
41 |
42 | To obtain the perpendicular-to-$P$ component of $\vec{u}$,
43 | compute the projection of $\vec{u}$ in the direction $\vec{n}$:
44 | \small
45 | \begin{verbatimtab}
46 | >>> w = (u.dot(n) / n.norm()**2)*n
47 | [5, 5, 5]
48 | \end{verbatimtab}
49 | \normalsize
50 |
51 | \noindent
52 | To obtain the in-the-plane-$P$ component of $\vec{u}$,
53 | start with $\vec{u}$ and subtract the perpendicular-to-$P$ part:
54 | \small
55 | \begin{verbatimtab}
56 | >>> v = u - (u.dot(n)/n.norm()**2)*n # same as u - w
57 | [ -1, 0, 1]
58 | \end{verbatimtab}
59 | \normalsize
60 |
61 | \noindent
62 | You should check on your own that $\vec{v}+\vec{w}=\vec{u}$ as claimed.
63 |
64 | \vspace{-5mm}
65 |
--------------------------------------------------------------------------------
/markdown/Complex-numbers.md:
--------------------------------------------------------------------------------
1 |
2 | ## Complex numbers
3 |
4 | Ever since Newton, the word “number” has been used to refer to one
5 | of the following types of math objects: the naturals $\mathbb{N}$, the integers
6 | $\mathbb{Z}$, the rationals $\mathbb{Q}$, and the real numbers $\mathbb{R}$. Each set of numbers is
7 | associated with a different class of equations. The natural numbers
8 | $\mathbb{N}$ appear as solutions of the equation $m + n = x$, where $m$ and $n$ are
9 | natural numbers (denoted $m, n \in \mathbb{N}$). The integers $\mathbb{Z}$ are the solutions
10 | to equations of the form $x + m = n$, where $m, n \in \mathbb{N}$. The rational
11 | numbers $\mathbb{Q}$ are necessary to solve for $x$ in $mx = n$, with $m, n \in \mathbb{Z}$.
12 | The solutions to $x^2 = 2$ are irrational (so $\not\in \mathbb{Q}$) so we need an even
13 | larger set that contains *all* possible numbers: real set of numbers $\mathbb{R}$.
14 | A pattern emerges where more complicated equations require the
15 | invention of new types of numbers.
16 |
17 | Consider the quadratic equation $x^2 = -1$. There are no real solutions
18 | to this equation, but we can define an imaginary number $i = \sqrt{-1}$
19 | (denoted `I` in `SymPy`) that satisfies this equation:
20 |
21 |
22 | I*I
23 |
24 |
25 |
26 |
27 | $$-1$$
28 |
29 |
30 |
31 |
32 | solve( x**2 + 1 , x)
33 |
34 |
35 |
36 |
37 | $$\left [ - i, \quad i\right ]$$
38 |
39 |
40 |
41 | The solutions are $x = i$ and $x = -i$, and indeed we can verify that
42 | $i^2 + 1 = 0$ and $(-i)^2 + 1 = 0$ since $i^2 = -1$.
43 |
44 | The complex numbers $\mathbb{C}$ are defined as $\{ a+bi \,|\, a,b \in \mathbb{R} \}$. Complex numbers
45 | contain a real part and an imaginary part:
46 |
47 |
48 | z = 4 + 3*I
49 | z
50 |
51 |
52 |
53 |
54 | $$4 + 3 i$$
55 |
56 |
57 |
58 |
59 | re(z)
60 |
61 |
62 |
63 |
64 | $$4$$
65 |
66 |
67 |
68 |
69 | im(z)
70 |
71 |
72 |
73 |
74 | $$3$$
75 |
76 |
77 |
78 | The *polar* representation of a complex number is $z\!\equiv\!|z|\angle\theta\!\equiv \!|z|e^{i\theta}$.
79 | For a complex number $z=a+bi$,
80 | the quantity $|z|=\sqrt{a^2+b^2}$ is known as the absolute value of $z$,
81 | and $\theta$ is its *phase* or its *argument*:
82 |
83 |
84 | Abs(z)
85 |
86 |
87 |
88 |
89 | $$5$$
90 |
91 |
92 |
93 |
94 | arg(z)
95 |
96 |
97 |
98 |
99 | $$\operatorname{atan}{\left (\frac{3}{4} \right )}$$
100 |
101 |
102 |
103 | The complex conjugate of $z = a + bi$ is the number $\bar{z} = a - bi$:
104 |
105 |
106 | conjugate( z )
107 |
108 |
109 |
110 |
111 | $$4 - 3 i$$
112 |
113 |
114 |
115 | Complex conjugation is important for computing the absolute value
116 | of $z$ $\left(|z|\equiv\sqrt{z\bar{z}}\right)$ and for division by $z$ $\left(\frac{1}{z}\equiv\frac{\bar{z}}{|z|^2}\right)$.
117 |
118 | ### Euler's formula
119 |
120 | [Euler's formula](https://en.wikipedia.org/wiki/Euler's_formula) shows an important relation between the exponential
121 | function $e^x$ and the trigonometric functions $sin(x)$ and $cos(x)$:
122 |
123 | $$e^{ix} = \cos x + i \sin x.$$
124 |
125 | To obtain this result in `SymPy`, you must specify that the number $x$ is
126 | real and also tell `expand` that you're interested in complex expansions:
127 |
128 |
129 | x = symbols('x', real=True)
130 | exp(I*x).expand(complex=True)
131 |
132 |
133 |
134 |
135 | $$i \sin{\left (x \right )} + \cos{\left (x \right )}$$
136 |
137 |
138 |
139 |
140 | re( exp(I*x) )
141 |
142 |
143 |
144 |
145 | $$\cos{\left (x \right )}$$
146 |
147 |
148 |
149 |
150 | im( exp(I*x) )
151 |
152 |
153 |
154 |
155 | $$\sin{\left (x \right )}$$
156 |
157 |
158 |
159 | Basically, $\cos(x)$ is the real part of $e^{ix}$, and $\sin(x)$ is the imaginary
160 | part of $e^{ix}$. Whaaat? I know it's weird, but weird things are bound
161 | to happen when you input imaginary numbers to functions.
162 |
163 | Euler's formula is often used to rewrite the functions `sin` and `cos` in
164 | terms of complex exponentials. For example,
165 |
166 |
167 | (cos(x)).rewrite(exp)
168 |
169 |
170 |
171 |
172 | $$\frac{e^{i x}}{2} + \frac{1}{2} e^{- i x}$$
173 |
174 |
175 |
176 | Compare this expression with the definition of hyperbolic cosine.
177 |
--------------------------------------------------------------------------------
/markdown/Vectors.md:
--------------------------------------------------------------------------------
1 |
2 | ## Vectors
3 |
4 | A vector $\vec{v} \in \mathbb{R}^n$ is an $n$-tuple of real numbers.
5 | For example, consider a vector that has three components:
6 |
7 | $$
8 | \vec{v} = (v_1,v_2,v_3) \ \in \ (\mathbb{R},\mathbb{R},\mathbb{R}) \equiv \mathbb{R}^3.
9 | $$
10 |
11 | To specify the vector $\vec{v}$,
12 | we specify the values for its three components $v_1$, $v_2$, and $v_3$.
13 |
14 | A matrix $A \in \mathbb{R}^{m\times n}$ is a rectangular array of real numbers with $m$ rows and $n$ columns.
15 | A vector is a special type of matrix; we can think of a vector $\vec{v}\in \mathbb{R}^n$
16 | either as a row vector ($1\times n$ matrix) or a column vector ($n \times 1$ matrix).
17 | Because of this equivalence between vectors and matrices,
18 | there is no need for a special vector object in `SymPy`,
19 | and `Matrix` objects are used for vectors as well.
20 |
21 | This is how we define vectors
22 | and compute their properties:
23 |
24 |
25 | u = Matrix([[4,5,6]]) # a row vector = 1x3 matrix
26 | v = Matrix([[7],
27 | [8], # a col vector = 3x1 matrix
28 | [9]])
29 |
30 |
31 | v.T # use the transpose operation to convert a col vec to a row vec
32 |
33 |
34 |
35 |
36 | $$\left[\begin{matrix}7 & 8 & 9\end{matrix}\right]$$
37 |
38 |
39 |
40 |
41 | u[0] # 0-based indexing for entries
42 |
43 |
44 |
45 |
46 | $$4$$
47 |
48 |
49 |
50 |
51 | u.norm() # length of u
52 |
53 |
54 |
55 |
56 | $$\sqrt{77}$$
57 |
58 |
59 |
60 |
61 | uhat = u/u.norm() # unit-length vec in same dir as u
62 | uhat
63 |
64 |
65 |
66 |
67 | $$\left[\begin{matrix}\frac{4 \sqrt{77}}{77} & \frac{5 \sqrt{77}}{77} & \frac{6 \sqrt{77}}{77}\end{matrix}\right]$$
68 |
69 |
70 |
71 |
72 | uhat.norm()
73 |
74 |
75 |
76 |
77 | $$1$$
78 |
79 |
80 |
81 | ### Dot product
82 |
83 | The dot product of the 3-vectors $\vec{u}$ and $\vec{v}$ can be defined two ways:
84 |
85 | $$
86 | \vec{u}\cdot\vec{v}
87 | \equiv
88 | \underbrace{u_xv_x+u_yv_y+u_zv_z}_{\textrm{algebraic def.}}
89 | \equiv
90 | \underbrace{\|\vec{u}\|\|\vec{v}\|\cos(\varphi)}_{\textrm{geometric def.}}
91 | \quad \in \mathbb{R},
92 | $$
93 |
94 | where $\varphi$ is the angle between the vectors $\vec{u}$ and $\vec{v}$.
95 | In `SymPy`,
96 |
97 |
98 | u = Matrix([ 4,5,6])
99 | v = Matrix([-1,1,2])
100 | u.dot(v)
101 |
102 |
103 |
104 |
105 | $$13$$
106 |
107 |
108 |
109 | We can combine the algebraic and geometric formulas for the dot product
110 | to obtain the cosine of the angle between the vectors
111 |
112 | $$
113 | \cos(\varphi)
114 | = \frac{ \vec{u}\cdot\vec{v} }{ \|\vec{u}\|\|\vec{v}\| }
115 | = \frac{ u_xv_x+u_yv_y+u_zv_z }{ \|\vec{u}\|\|\vec{v}\| },
116 | $$
117 |
118 | and use the `acos` function to find the angle measure:
119 |
120 |
121 | acos(u.dot(v)/(u.norm()*v.norm())).evalf() # in radians = 52.76 degrees
122 |
123 |
124 |
125 |
126 | $$0.921263115666387$$
127 |
128 |
129 |
130 | Just by looking at the coordinates of the vectors $\vec{u}$ and $\vec{v}$,
131 | it's difficult to determine their relative direction.
132 | Thanks to the dot product, however,
133 | we know the angle between the vectors is $52.76^\circ$,
134 | which means they *kind of* point in the same direction.
135 | Vectors that are at an angle $\varphi=90^\circ$ are called *orthogonal*, meaning at right angles with each other.
136 | The dot product of vectors for which $\varphi > 90^\circ$ is negative because they point *mostly* in opposite directions.
137 |
138 | The notion of the “angle between vectors” applies more generally to vectors with any number of dimensions.
139 | The dot product for $n$-dimensional vectors is $\vec{u}\cdot\vec{v}=\sum_{i=1}^n u_iv_i$.
140 | This means we can talk about “the angle between” 1000-dimensional vectors.
141 | That's pretty crazy if you think about it—there is no way we could possibly “visualize” 1000-dimensional vectors,
142 | yet given two such vectors we can tell if they point mostly in the same direction,
143 | in perpendicular directions, or mostly in opposite directions.
144 |
145 | The dot product is a commutative operation $\vec{u}\cdot\vec{v} = \vec{v}\cdot\vec{u}$:
146 |
147 |
148 | u.dot(v) == v.dot(u)
149 |
150 |
151 |
152 |
153 | True
154 |
155 |
156 |
157 | ### Projections
158 |
159 | Dot products are used for computing projections.
160 | Assume you're given two vectors $\vec{u}$ and $\vec{n}$ and you want to find the component
161 | of $\vec{u}$ that points in the $\vec{n}$ direction.
162 | The following formula based on the dot product will give you the answer:
163 |
164 | $$
165 | \Pi_{\vec{n}}( \vec{u} ) \equiv \frac{ \vec{u} \cdot \vec{n} }{ \| \vec{n} \|^2 } \vec{n}.
166 | $$
167 |
168 | This is how to implement this formula in `SymPy`:
169 |
170 |
171 | u = Matrix([4,5,6])
172 | n = Matrix([1,1,1])
173 | (u.dot(n) / n.norm()**2)*n # projection of v in the n dir
174 |
175 |
176 |
177 |
178 | $$\left[\begin{matrix}5\\5\\5\end{matrix}\right]$$
179 |
180 |
181 |
182 | In the case where the direction vector $\hat{n}$ is of unit length $\|\hat{n}\| = 1$,
183 | the projection formula simplifies to $\Pi_{\hat{n}}( \vec{u} ) \equiv (\vec{u}\cdot\hat{n})\hat{n}$.
184 |
185 | Consider now the plane $P$ defined by $(1,1,1)\cdot[(x,y,z)-(0,0,0)]=0$.
186 | A plane is a two dimensional subspace of $\mathbb{R}^3$.
187 | We can decompose any vector $\vec{u} \in \mathbb{R}^3$ into two parts $\vec{u}=\vec{v} + \vec{w}$
188 | such that $\vec{v}$ lies inside the plane and $\vec{w}$ is perpendicular to the plane (parallel to $\vec{n}=(1,1,1)$).
189 |
190 | To obtain the perpendicular-to-$P$ component of $\vec{u}$,
191 | compute the projection of $\vec{u}$ in the direction $\vec{n}$:
192 |
193 |
194 | w = (u.dot(n) / n.norm()**2)*n
195 | w
196 |
197 |
198 |
199 |
200 | $$\left[\begin{matrix}5\\5\\5\end{matrix}\right]$$
201 |
202 |
203 |
204 | To obtain the in-the-plane-$P$ component of $\vec{u}$,
205 | start with $\vec{u}$ and subtract the perpendicular-to-$P$ part:
206 |
207 |
208 | v = u - (u.dot(n)/n.norm()**2)*n # same as u - w
209 | v
210 |
211 |
212 |
213 |
214 | $$\left[\begin{matrix}-1\\0\\1\end{matrix}\right]$$
215 |
216 |
217 |
218 | You should check on your own that $\vec{v}+\vec{w}=\vec{u}$ as claimed.
219 |
220 | ### Cross product
221 |
222 | The *cross product*, denoted $\times$, takes two vectors as inputs and produces a vector as output.
223 | The cross products of individual basis elements are defined as follows:
224 |
225 | $$
226 | \hat{\imath}\times\hat{\jmath} =\hat{k}, \qquad
227 | \hat{\jmath}\times\hat{k} =\hat{\imath}, \qquad
228 | \hat{k}\times \hat{\imath}= \hat{\jmath}.
229 | $$
230 |
231 | Here is how to compute the cross product of two vectors in `SymPy`:
232 |
233 |
234 | u = Matrix([ 4,5,6])
235 | v = Matrix([-1,1,2])
236 | u.cross(v)
237 |
238 |
239 |
240 |
241 | $$\left[\begin{matrix}4\\-14\\9\end{matrix}\right]$$
242 |
243 |
244 |
245 | The vector $\vec{u}\times \vec{v}$ is orthogonal to both $\vec{u}$ and $\vec{v}$.
246 | The norm of the cross product $\|\vec{u}\times \vec{v}\|$ is proportional to the lengths of the vectors
247 | and the sine of the angle between them:
248 |
249 |
250 | (u.cross(v).norm()/(u.norm()*v.norm())).n()
251 |
252 |
253 |
254 |
255 | $$0.796366206088088$$
256 |
257 |
258 |
259 | The name “cross product” is well-suited for this operation since it is
260 | calculated by “cross-multiplying” the coefficients of the vectors:
261 |
262 | $$
263 | \vec{u}\times\vec{v}=
264 | \left(
265 | u_yv_z-u_zv_y, \ u_zv_x-u_xv_z, \ u_xv_y-u_yv_x
266 | \right).
267 | $$
268 |
269 | By defining individual symbols for the entries of two vectors,
270 | we can make `SymPy` show us the cross-product formula:
271 |
272 |
273 | u1,u2,u3 = symbols('u1:4')
274 | v1,v2,v3 = symbols('v1:4')
275 | Matrix([u1,u2,u3]).cross(Matrix([v1,v2,v3]))
276 |
277 |
278 |
279 |
280 | $$\left[\begin{matrix}u_{2} v_{3} - u_{3} v_{2}\\- u_{1} v_{3} + u_{3} v_{1}\\u_{1} v_{2} - u_{2} v_{1}\end{matrix}\right]$$
281 |
282 |
283 |
284 | The dot product is anti-commutative $\vec{u}\times\vec{v} = -\vec{v}\times\vec{u}$:
285 |
286 |
287 | u.cross(v)
288 |
289 |
290 |
291 |
292 | $$\left[\begin{matrix}4\\-14\\9\end{matrix}\right]$$
293 |
294 |
295 |
296 |
297 | v.cross(u)
298 |
299 |
300 |
301 |
302 | $$\left[\begin{matrix}-4\\14\\-9\end{matrix}\right]$$
303 |
304 |
305 |
306 | The product of two numbers and the dot product of two vectors are commutative operations.
307 | The cross product, however, is not commutative: $\vec{u}\times\vec{v} \neq \vec{v}\times\vec{u}$.
308 |
--------------------------------------------------------------------------------
/markdown/Intro.md:
--------------------------------------------------------------------------------
1 |
2 | # Taming math and physics using `SymPy`
3 |
4 | Tutorial based on the [No bullshit guide](http://minireference.com/) series of textbooks by [Ivan Savov](mailto:ivan.savov+SYMPYTUT@gmail.com)
5 |
6 | ## Abstract
7 |
8 | Most people consider math and physics to be scary
9 | beasts from which it is best to keep one's distance. Computers,
10 | however, can help us tame the complexity and tedious arithmetic
11 | manipulations associated with these subjects. Indeed, math and
12 | physics are much more approachable once you have the power of
13 | computers on your side.
14 |
15 | This tutorial serves a dual purpose. On one hand, it serves
16 | as a review of the fundamental concepts of mathematics for
17 | computer-literate people. On the other hand, this tutorial serves
18 | to demonstrate to students how a computer algebra system can
19 | help them with their classwork. A word of warning is in order.
20 | Please don't use `SymPy` to avoid the suffering associated with your
21 | homework! Teachers assign homework problems to you because
22 | they want you to learn. Do your homework by hand, but if you
23 | want, you can check your answers using `SymPy`. Better yet, use
24 | `SymPy` to invent extra practice problems for yourself.
25 |
26 | ## Contents
27 |
28 | * [Fundamentals of mathematics](Fundamentals-of-mathematics.ipynb)
29 | * [Complex numbers](Complex-numbers.ipynb)
30 | * [Calculus](Calculus.ipynb)
31 | * [Vectors](Vectors.ipynb)
32 | * [Mechanics](Mechanics.ipynb)
33 | * [Linear algebra](Linear-algebra.ipynb)
34 |
35 | ## Introduction
36 |
37 | You can use a computer algebra system (CAS) to compute complicated
38 | math expressions, solve equations, perform calculus procedures,
39 | and simulate physics systems.
40 |
41 | All computer algebra systems offer essentially the same functionality,
42 | so it doesn't matter which system you use: there are free
43 | systems like `SymPy`, `Magma`, or `Octave`, and commercial systems like
44 | `Maple`, `MATLAB`, and `Mathematica`. This tutorial is an introduction to
45 | `SymPy`, which is a *symbolic* computer algebra system written in the
46 | programming language `Python`. In a symbolic CAS, numbers and
47 | operations are represented symbolically, so the answers obtained are
48 | exact. For example, the number √2 is represented in `SymPy` as the
49 | object `Pow(2,1/2)`, whereas in numerical computer algebra systems
50 | like `Octave`, the number √2 is represented as the approximation
51 | 1.41421356237310 (a `float`). For most purposes the approximation
52 | is okay, but sometimes approximations can lead to problems:
53 | `float(sqrt(2))*float(sqrt(2))` = 2.00000000000000044 ≠ 2. Because
54 | `SymPy` uses exact representations, you'll never run into such
55 | problems: `Pow(2,1/2)*Pow(2,1/2)` = 2.
56 |
57 | This tutorial is organized as follows. We'll begin by introducing the
58 | `SymPy` basics and the bread-and-butter functions used for manipulating
59 | expressions and solving equations. Afterward, we'll discuss the
60 | `SymPy` functions that implement calculus operations like differentiation
61 | and integration. We'll also introduce the functions used to deal with
62 | vectors and complex numbers. Later we'll see how to use vectors and
63 | integrals to understand Newtonian mechanics. In the last section,
64 | we'll introduce the linear algebra functions available in `SymPy`.
65 |
66 | This tutorial presents many explanations as blocks of code. Be sure
67 | to try the code examples on your own by typing the commands into
68 | `SymPy`. It's always important to verify for yourself!
69 |
70 | ## Using SymPy
71 |
72 | The easiest way to use `SymPy`, provided you're connected to the
73 | Internet, is to visit http://live.sympy.org. You'll be presented with
74 | an interactive prompt into which you can enter your commands—right
75 | in your browser.
76 |
77 | If you want to use `SymPy` on your own computer, you must install
78 | `Python` and the python package `sympy`. You can then open a command
79 | prompt and start a `SymPy` session using:
80 |
81 | ```
82 | you@host$ python
83 | Python X.Y.Z
84 | [GCC a.b.c (Build Info)] on platform
85 | Type "help", "copyright", or "license" for more information.
86 | >>> from sympy import *
87 | >>>
88 | ```
89 |
90 | The `>>>` prompt indicates you're in the Python shell which accepts
91 | Python commands. The command `from sympy import *` imports all
92 | the `SymPy` functions into the current namespace. All `SymPy` functions
93 | are now available to you. To exit the python shell press `CTRL+D`.
94 |
95 | I highly recommend you also install `ipython`, which is an improved
96 | interactive python shell. If you have `ipython` and `SymPy` installed,
97 | you can start an `ipython` shell with `SymPy` pre-imported using the
98 | command `isympy`. For an even better experience, you can try `ipython notebook`,
99 | which is a web frontend for the `ipython` shell.
100 |
101 | You can start your session the same way as `isympy` do, by running following commands, which will be detaily described latter.
102 |
103 |
104 | from sympy import init_session
105 | init_session()
106 |
107 | IPython console for SymPy 0.7.6 (Python 3.4.2-64-bit) (ground types: gmpy)
108 |
109 | These commands were executed:
110 | >>> from __future__ import division
111 | >>> from sympy import *
112 | >>> x, y, z, t = symbols('x y z t')
113 | >>> k, m, n = symbols('k m n', integer=True)
114 | >>> f, g, h = symbols('f g h', cls=Function)
115 | >>> init_printing()
116 |
117 | Documentation can be found at http://www.sympy.org
118 |
119 |
120 | ## Conclusion
121 |
122 | I would like to conclude with some words of caution about the overuse of computers.
123 | Computer technology is very powerful and is everywhere around us,
124 | but let's not forget that computers are actually very dumb:
125 | computers are mere calculators and they depend on your knowledge to direct them.
126 | It's important that you learn how to do complicated math by hand in order to be
127 | able to instruct computers to do math for you and to check the results of your computer calculations.
128 | I don't want you to use the tricks you learned in this tutorial to avoid math problems from now on
129 | and simply rely blindly on `SymPy` for all your math needs.
130 | I want both you and the computer to become math powerhouses!
131 | The computer will help you with tedious calculations (they're good at that)
132 | and you'll help the computer by guiding it when it gets stuck (humans are good at that).
133 |
134 | ## Links
135 |
136 | * [Installation instructions for `ipython notebook`](http://ipython.org/install.html)
137 | * [The official `SymPy` tutorial](http://docs.sympy.org/latest/tutorial/intro.html)
138 | * [A list of `SymPy` gotchas](http://docs.sympy.org/dev/gotchas.html)
139 | * [`SymPy` video tutorials by Matthew Rocklin](http://pyvideo.org/speaker/583/matthew-rocklin)
140 |
141 | ## Book plug
142 |
143 | 
144 |
145 | The examples and math explanations in this tutorial are sourced from the
146 | *No bullshit guide* series of books published by Minireference Co.
147 | We publish textbooks that make math and physics accessible and affordable for everyone.
148 | If you're interested in learning more about the math, physics, and calculus topics discussed in this tutorial,
149 | check out the **No bullshit guide to math and physics**.
150 | The book contains the distilled information that normally comes in two first-year university books:
151 | the introductory physics book (1000+ pages) and the first-year calculus book (1000+ pages).
152 | Would you believe me if I told you that you can learn the
153 | same material from a single book that is 1/7th the size and 1/10th of the
154 | price of mainstream textbooks?
155 |
156 | This book contains short lessons on math and physics, calculus.
157 | Often calculus and mechanics are taught as separate subjects.
158 | It shouldn't be like that.
159 | If you learn calculus without mechanics, it will be boring.
160 | If you learn mechanics without calculus, you won't truly understand what is going on.
161 | This textbook covers both subjects in an integrated manner.
162 |
163 | Contents:
164 |
165 | * High school math
166 | * Vectors
167 | * Mechanics
168 | * Differential calculus
169 | * Integral calculus
170 | * 250+ practice problems
171 |
172 | For more information, see the book's website at [minireference.com](http://minireference.com/)
173 |
174 | The presented linear algebra examples are
175 | sourced from the [**No bullshit guide to linear algebra**](https://gum.co/noBSLA).
176 | Check out the book if you're taking a linear algebra course of if you're missing the prerequisites
177 | for learning machine learning, computer graphics, or quantum mechanics.
178 |
179 | I'll close on a note for potential readers who suffer from math-phobia.
180 | Both books start with an introductory chapter that reviews all
181 | high school math concepts needed to make math and physics
182 | accessible to everyone.
183 | Don't worry, we'll fix this math-phobia thing right up for you;
184 | **when you've got `SymPy` skills, math fears *you*!**
185 |
186 | To stay informed about upcoming titles,
187 | follow [@minireference](https://twitter.com/minireference) on twitter
188 | and check out the facebook page at [fb.me/noBSguide](http://fb.me/noBSguide).
189 |
--------------------------------------------------------------------------------
/markdown/Mechanics.md:
--------------------------------------------------------------------------------
1 |
2 | ## Mechanics
3 |
4 | The module called [`sympy.physics.mechanics`](http://pyvideo.org/video/2653/dynamics-and-control-with-python)
5 | contains elaborate tools for describing mechanical systems,
6 | manipulating reference frames, forces, and torques.
7 | These specialized functions are not necessary for a first-year mechanics course.
8 | The basic `SymPy` functions like `solve`,
9 | and the vector operations you learned in the previous sections are powerful enough for basic Newtonian mechanics.
10 |
11 | ### Dynamics
12 |
13 | The net force acting on an object is the sum of all the external forces acting on it $\vec{F}_{\textrm{net}} = \sum \vec{F}$.
14 | Since forces are vectors,
15 | we need to use vector addition to compute the net force.
16 |
17 | Compute
18 | $\vec{F}_{\textrm{net}}=\vec{F}_1 + \vec{F}_2$,
19 | where $\vec{F}_1=4\hat{\imath}[\mathrm{N}]$ and $\vec{F}_2 = 5\angle 30^\circ[\mathrm{N}]$:
20 |
21 |
22 | F_1 = Matrix( [4,0] )
23 | F_2 = Matrix( [5*cos(30*pi/180), 5*sin(30*pi/180) ] )
24 | F_net = F_1 + F_2
25 | F_net # in Newtons
26 |
27 |
28 |
29 |
30 | $$\left[\begin{matrix}4 + \frac{5 \sqrt{3}}{2}\\\frac{5}{2}\end{matrix}\right]$$
31 |
32 |
33 |
34 |
35 | F_net.evalf() # in Newtons
36 |
37 |
38 |
39 |
40 | $$\left[\begin{matrix}8.33012701892219\\2.5\end{matrix}\right]$$
41 |
42 |
43 |
44 | To express the answer in length-and-direction notation,
45 | use `norm` to find the length of $\vec{F}_{\textrm{net}}$
46 | and `atan2` (The function `atan2(y,x)` computes the correct direction
47 | for all vectors $(x,y)$, unlike `atan(y/x)` which requires corrections for angles in the range $[\frac{\pi}{2}, \frac{3\pi}{2}]$.) to find its direction:
48 |
49 |
50 | F_net.norm().evalf() # |F_net| in [N]
51 |
52 |
53 |
54 |
55 | $$8.69718438067042$$
56 |
57 |
58 |
59 |
60 | (atan2( F_net[1],F_net[0] )*180/pi).n() # angle in degrees
61 |
62 |
63 |
64 |
65 | $$16.70531380601$$
66 |
67 |
68 |
69 | The net force on the object is $\vec{F}_{\textrm{net}}= 8.697\angle 16.7^\circ$[N].
70 |
71 | ### Kinematics
72 |
73 | Let $x(t)$ denote the position of an object,
74 | $v(t)$ denote its velocity,
75 | and $a(t)$ denote its acceleration.
76 | Together $x(t)$, $v(t)$, and $a(t)$ are known as the *equations of motion* of the object.
77 |
78 | The equations of motion are related by the derivative operation:
79 |
80 | $$
81 | a(t) \overset{\frac{d}{dt} }{\longleftarrow} v(t) \overset{\frac{d}{dt} }{\longleftarrow} x(t).
82 | $$
83 |
84 | Assume we know the initial position $x_i\equiv x(0)$ and the initial velocity $v_i\equiv v(0)$ of the object
85 | and we want to find $x(t)$ for all later times.
86 | We can do this starting from the dynamics of the problem—the forces acting on the object.
87 |
88 | Newton's second law $\vec{F}_{\textrm{net}} = m\vec{a}$ states that a net force $\vec{F}_{\textrm{net}}$
89 | applied on an object of mass $m$ produces acceleration $\vec{a}$.
90 | Thus, we can obtain an objects acceleration if we know the net force acting on it.
91 | Starting from the knowledge of $a(t)$, we can obtain $v(t)$ by integrating
92 | then find $x(t)$ by integrating $v(t)$:
93 |
94 | $$
95 | a(t) \ \ \ \overset{v_i+ \int\!dt }{\longrightarrow} \ \ \ v(t) \ \ \ \overset{x_i+ \int\!dt }{\longrightarrow} \ \ \ x(t).
96 | $$
97 |
98 | The reasoning follows from the fundamental theorem of calculus:
99 | if $a(t)$ represents the change in $v(t)$,
100 | then the total of $a(t)$ accumulated between $t=t_1$ and $t=t_2$
101 | is equal to the total change in $v(t)$ between these times: $\Delta v = v(t_2) - v(t_1)$.
102 | Similarly, the integral of $v(t)$ from $t=0$ until $t=\tau$ is equal to $x(\tau) - x(0)$.
103 |
104 | ### Uniform acceleration motion (UAM)
105 |
106 | Let's analyze the case where the net force on the object is constant.
107 | A constant force causes a constant acceleration $a = \frac{F}{m} = \textrm{constant}$.
108 | If the acceleration function is constant over time $a(t)=a$.
109 | We find $v(t)$ and $x(t)$ as follows:
110 |
111 |
112 | t, a, v_i, x_i = symbols('t a v_i x_i')
113 | v = v_i + integrate(a, (t, 0,t) )
114 | v
115 |
116 |
117 |
118 |
119 | $$a t + v_{i}$$
120 |
121 |
122 |
123 |
124 | x = x_i + integrate(v, (t, 0,t) )
125 | x
126 |
127 |
128 |
129 |
130 | $$\frac{a t^{2}}{2} + t v_{i} + x_{i}$$
131 |
132 |
133 |
134 | You may remember these equations from your high school physics class.
135 | They are the *uniform accelerated motion* (UAM) equations:
136 |
137 | \begin{align*}
138 | a(t) &= a, \\
139 | v(t) &= v_i + at, \\[-2mm]
140 | x(t) &= x_i + v_it + \frac{1}{2}at^2.
141 | \end{align*}
142 |
143 | In high school, you probably had to memorize these equations.
144 | Now you know how to derive them yourself starting from first principles.
145 |
146 | For the sake of completeness, we'll now derive the fourth UAM equation,
147 | which relates the object's final velocity to the initial velocity,
148 | the displacement, and the acceleration, without reference to time:
149 |
150 |
151 | (v*v).expand()
152 |
153 |
154 |
155 |
156 | $$a^{2} t^{2} + 2 a t v_{i} + v_{i}^{2}$$
157 |
158 |
159 |
160 |
161 | ((v*v).expand() - 2*a*x).simplify()
162 |
163 |
164 |
165 |
166 | $$- 2 a x_{i} + v_{i}^{2}$$
167 |
168 |
169 |
170 | The above calculation shows $v_f^2 - 2ax_f = -2ax_i + v_i^2$.
171 | After moving the term $2ax_f$ to the other side of the equation, we obtain
172 |
173 | \begin{align*}
174 | (v(t))^2 \ = \ v_f^2 = v_i^2 + 2a\Delta x \ = \ v_i^2 + 2a(x_f-x_i).
175 | \end{align*}
176 |
177 | The fourth equation is important for practical purposes
178 | because it allows us to solve physics problems in a time-less manner.
179 |
180 | #### Example
181 |
182 | Find the position function of an object at time $t=3[\mathrm{s}]$,
183 | if it starts from $x_i=20[\mathrm{m}]$ with $v_i=10[\mathrm{m/s}]$ and undergoes
184 | a constant acceleration of $a=5[\mathrm{m/s^2}]$.
185 | What is the object's velocity at $t=3[\mathrm{s}]$?
186 |
187 |
188 | x_i = 20 # initial position
189 | v_i = 10 # initial velocity
190 | a = 5 # acceleration (constant during motion)
191 | x = x_i + integrate( v_i+integrate(a,(t,0,t)), (t,0,t) )
192 | x
193 |
194 |
195 |
196 |
197 | $$\frac{5 t^{2}}{2} + 10 t + 20$$
198 |
199 |
200 |
201 |
202 | x.subs({t:3}).n() # x(3) in [m]
203 |
204 |
205 |
206 |
207 | $$72.5$$
208 |
209 |
210 |
211 |
212 | diff(x,t).subs({t:3}).n() # v(3) in [m/s]
213 |
214 |
215 |
216 |
217 | $$25.0$$
218 |
219 |
220 |
221 | If you think about it,
222 | physics knowledge combined with computer skills is like a superpower!
223 |
224 | ### General equations of motion
225 |
226 | The procedure
227 | $a(t) \ \overset{v_i+ \int\!dt }{\longrightarrow} \ v(t) \ \overset{x_i+ \int\!dt }{\longrightarrow} \ x(t)$
228 | can be used to obtain the position function $x(t)$ even when the acceleration is not constant.
229 | Suppose the acceleration of an object is $a(t)=\sqrt{k t}$;
230 | what is its $x(t)$?
231 |
232 |
233 | t, v_i, x_i, k = symbols('t v_i x_i k')
234 | a = sqrt(k*t)
235 | x = x_i + integrate( v_i+integrate(a,(t,0,t)), (t, 0,t) )
236 | x
237 |
238 |
239 |
240 |
241 | $$t v_{i} + x_{i} + \frac{4 \left(k t\right)^{\frac{5}{2}}}{15 k^{2}}$$
242 |
243 |
244 |
245 | ### Potential energy
246 |
247 | Instead of working with the kinematic equations of motion $x(t)$, $v(t)$, and $a(t)$ which depend on time,
248 | we can solve physics problems using *energy* calculations.
249 | A key connection between the world of forces and the world of energy is the concept of *potential energy*.
250 | If you move an object against a conservative force (think raising a ball in the air against the force of gravity),
251 | you can think of the work you do agains the force as being stored in the potential energy of the object.
252 |
253 | For each force $\vec{F}(x)$ there is a corresponding potential energy $U_F(x)$.
254 | The change in potential energy associated with the force $\vec{F}(x)$ and displacement $\vec{d}$
255 | is defined as the negative of the work done by the force during the displacement: $U_F(x) = - W = - \int_{\vec{d}} \vec{F}(x)\cdot d\vec{x}$.
256 |
257 | The potential energies associated with gravity $\vec{F}_g = -mg\hat{\jmath}$
258 | and the force of a spring $\vec{F}_s = -k\vec{x}$ are calculated as follows:
259 |
260 |
261 | x, y = symbols('x y')
262 | m, g, k, h = symbols('m g k h')
263 | F_g = -m*g # Force of gravity on mass m
264 | U_g = - integrate( F_g, (y,0,h) )
265 | U_g # Grav. potential energy
266 |
267 |
268 |
269 |
270 | $$g h m$$
271 |
272 |
273 |
274 |
275 | F_s = -k*x # Spring force for displacement x
276 | U_s = - integrate( F_s, (x,0,x) )
277 | U_s # Spring potential energy
278 |
279 |
280 |
281 |
282 | $$\frac{k x^{2}}{2}$$
283 |
284 |
285 |
286 | Note the negative sign in the formula defining the potential energy.
287 | This negative is canceled by the negative sign of the dot product $\vec{F}\cdot d\vec{x}$:
288 | when the force acts in the direction opposite to the displacement,
289 | the work done by the force is negative.
290 |
291 | ### Simple harmonic motion
292 |
293 | The force exerted by a spring is given by the formula $F=-kx$.
294 | If the only force acting on a mass $m$ is the force of a spring,
295 | we can use Newton's second law to obtain the following equation:
296 |
297 | $$
298 | F=ma
299 | \quad \Rightarrow \quad
300 | -kx = ma
301 | \quad \Rightarrow \quad
302 | -kx(t) = m\frac{d^2}{dt^2}\Big[x(t)\Big].
303 | $$
304 |
305 | The motion of a mass-spring system is described by the *differential equation* $\frac{d^2}{dt^2}x(t) + \omega^2 x(t)=0$,
306 | where the constant $\omega = \sqrt{\frac{k}{m}}$ is called the angular frequency.
307 | We can find the position function $x(t)$ using the `dsolve` method:
308 |
309 |
310 | t = Symbol('t') # time t
311 | x = Function('x') # position function x(t)
312 | w = Symbol('w', positive=True) # angular frequency w
313 | sol = dsolve( diff(x(t),t,t) + w**2*x(t), x(t) )
314 | sol
315 |
316 |
317 |
318 |
319 | $$x{\left (t \right )} = C_{1} \sin{\left (t w \right )} + C_{2} \cos{\left (t w \right )}$$
320 |
321 |
322 |
323 |
324 | x = sol.rhs
325 | x
326 |
327 |
328 |
329 |
330 | $$C_{1} \sin{\left (t w \right )} + C_{2} \cos{\left (t w \right )}$$
331 |
332 |
333 |
334 | Note the solution $x(t)=C_1\sin(\omega t)+C_2 \cos(\omega t)$ is equivalent to $x(t) = A\cos(\omega t + \phi)$,
335 | which is more commonly used to describe simple harmonic motion.
336 | We can use the `expand` function with the argument `trig=True` to convince ourselves of this equivalence:
337 |
338 |
339 | A, phi = symbols("A phi")
340 | (A*cos(w*t - phi)).expand(trig=True)
341 |
342 |
343 |
344 |
345 | $$A \sin{\left (\phi \right )} \sin{\left (t w \right )} + A \cos{\left (\phi \right )} \cos{\left (t w \right )}$$
346 |
347 |
348 |
349 | If we define $C_1=A\sin(\phi)$ and $C_2=A\cos(\phi)$,
350 | we obtain the form $x(t)=C_1\sin(\omega t)+C_2 \cos(\omega t)$ that `SymPy` found.
351 |
352 | ### Conservation of energy
353 |
354 | We can verify that the total energy of the mass-spring system is conserved by showing
355 | $E_T(t) = U_s(t) + K(t) = \textrm{constant}$:
356 |
357 |
358 | x = sol.rhs.subs({"C1":0,"C2":A})
359 | x
360 |
361 |
362 |
363 |
364 | $$A \cos{\left (t w \right )}$$
365 |
366 |
367 |
368 |
369 | v = diff(x, t)
370 | v
371 |
372 |
373 |
374 |
375 | $$- A w \sin{\left (t w \right )}$$
376 |
377 |
378 |
379 |
380 | E_T = (0.5*k*x**2 + 0.5*m*v**2).simplify()
381 | E_T
382 |
383 |
384 |
385 |
386 | $$0.5 A^{2} \left(k \cos^{2}{\left (t w \right )} + m w^{2} \sin^{2}{\left (t w \right )}\right)$$
387 |
388 |
389 |
390 |
391 | E_T.subs({k:m*w**2}).simplify() # = K_max
392 |
393 |
394 |
395 |
396 | $$0.5 A^{2} m w^{2}$$
397 |
398 |
399 |
400 |
401 | E_T.subs({w:sqrt(k/m)}).simplify() # = U_max
402 |
403 |
404 |
405 |
406 | $$0.5 A^{2} k$$
407 |
408 |
409 |
--------------------------------------------------------------------------------
/markdown/Linear-algebra.md:
--------------------------------------------------------------------------------
1 |
2 | ## Linear algebra
3 |
4 | A matrix $A \in \mathbb{R}^{m\times n}$ is a rectangular array of real numbers with $m$ rows and $n$ columns.
5 | To specify a matrix $A$, we specify the values for its $mn$ components $a_{11}, a_{12}, \ldots, a_{mn}$
6 | as a list of lists:
7 |
8 |
9 | A = Matrix( [[ 2,-3,-8, 7],
10 | [-2,-1, 2,-7],
11 | [ 1, 0,-3, 6]] )
12 |
13 | Use the square brackets to access the matrix elements or to obtain a submatrix:
14 |
15 |
16 | A[0,1] # row 0, col 1 of A
17 |
18 |
19 |
20 |
21 | $$-3$$
22 |
23 |
24 |
25 |
26 | A[0:2,0:3] # top-left 2x3 submatrix of A
27 |
28 |
29 |
30 |
31 | $$\left[\begin{matrix}2 & -3 & -8\\-2 & -1 & 2\end{matrix}\right]$$
32 |
33 |
34 |
35 | Some commonly used matrices can be created with shortcut methods:
36 |
37 |
38 | eye(2) # 2x2 identity matrix
39 |
40 |
41 |
42 |
43 | $$\left[\begin{matrix}1 & 0\\0 & 1\end{matrix}\right]$$
44 |
45 |
46 |
47 |
48 | zeros(2, 3)
49 |
50 |
51 |
52 |
53 | $$\left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\end{matrix}\right]$$
54 |
55 |
56 |
57 | Standard algebraic operations like
58 | addition `+`, subtraction `-`, multiplication `*`,
59 | and exponentiation `**` work as expected for `Matrix` objects.
60 | The `transpose` operation flips the matrix through its diagonal:
61 |
62 |
63 | A.transpose() # the same as A.T
64 |
65 |
66 |
67 |
68 | $$\left[\begin{matrix}2 & -2 & 1\\-3 & -1 & 0\\-8 & 2 & -3\\7 & -7 & 6\end{matrix}\right]$$
69 |
70 |
71 |
72 | Recall that the transpose is also used to convert row vectors into column vectors and vice versa.
73 |
74 | ### Row operations
75 |
76 |
77 | M = eye(3)
78 | M.row_op(1, lambda v,j: v+3*M[0,j] )
79 | M
80 |
81 |
82 |
83 |
84 | $$\left[\begin{matrix}1 & 0 & 0\\3 & 1 & 0\\0 & 0 & 1\end{matrix}\right]$$
85 |
86 |
87 |
88 | The method `row_op` takes two arguments as inputs:
89 | the first argument specifies the 0-based index of the row you want to act on,
90 | while the second argument is a function of the form `f(val,j)`
91 | that describes how you want the value `val=M[i,j]` to be transformed.
92 | The above call to `row_op` implements the row operation $R_2 \gets R_2 + 3R_1$.
93 |
94 | ### Reduced row echelon form
95 |
96 | The Gauss—Jordan elimination procedure is a sequence of row operations you can perform
97 | on any matrix to bring it to its *reduced row echelon form* (RREF).
98 | In `SymPy`, matrices have a `rref` method that computes their RREF:
99 |
100 |
101 | A = Matrix( [[2,-3,-8, 7],
102 | [-2,-1,2,-7],
103 | [1, 0,-3, 6]])
104 | A.rref() # RREF of A, location of pivots
105 |
106 |
107 |
108 |
109 | $$\left ( \left[\begin{matrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 3\\0 & 0 & 1 & -2\end{matrix}\right], \quad \left [ 0, \quad 1, \quad 2\right ]\right )$$
110 |
111 |
112 |
113 | Note the `rref` method returns a tuple of values:
114 | the first value is the RREF of $A$,
115 | while the second tells you the indices of the leading ones (also known as pivots) in the RREF of $A$.
116 | To get just the RREF of $A$, select the $0^\mathrm{th}$ entry form the tuple: `A.rref()[0]`.
117 |
118 | ### Matrix fundamental spaces
119 |
120 | Consider the matrix $A \in \mathbb{R}^{m\times n}$.
121 | The fundamental spaces of a matrix are its column space $\mathcal{C}(A)$,
122 | its null space $\mathcal{N}(A)$,
123 | and its row space $\mathcal{R}(A)$.
124 | These vector spaces are important when you consider the matrix product
125 | $A\vec{x}=\vec{y}$ as “applying” the linear transformation $T_A:\mathbb{R}^n \to \mathbb{R}^m$
126 | to an input vector $\vec{x} \in \mathbb{R}^n$ to produce the output vector $\vec{y} \in \mathbb{R}^m$.
127 |
128 | **Linear transformations** $T_A:\mathbb{R}^n \to \mathbb{R}^m$ (vector functions)
129 | **are equivalent to $m\times n$ matrices**.
130 | This is one of the fundamental ideas in linear algebra.
131 | You can think of $T_A$ as the abstract description of the transformation
132 | and $A \in \mathbb{R}^{m\times n}$ as a concrete implementation of $T_A$.
133 | By this equivalence,
134 | the fundamental spaces of a matrix $A$
135 | tell us facts about the domain and image of the linear transformation $T_A$.
136 | The columns space $\mathcal{C}(A)$ is the same as the image space space $\textrm{Im}(T_A)$ (the set of all possible outputs).
137 | The null space $\mathcal{N}(A)$ is the same as the kernel $\textrm{Ker}(T_A)$ (the set of inputs that $T_A$ maps to the zero vector).
138 | The row space $\mathcal{R}(A)$ is the orthogonal complement of the null space.
139 | Input vectors in the row space of $A$ are in one-to-one correspondence with the output vectors in the column space of $A$.
140 |
141 | Okay, enough theory! Let's see how to compute the fundamental spaces of the matrix $A$ defined above.
142 | The non-zero rows in the reduced row echelon form of $A$ are a basis for its row space:
143 |
144 |
145 | [ A.rref()[0][r,:] for r in A.rref()[1] ] # R(A)
146 |
147 |
148 |
149 |
150 | $$\left [ \left[\begin{matrix}1 & 0 & 0 & 0\end{matrix}\right], \quad \left[\begin{matrix}0 & 1 & 0 & 3\end{matrix}\right], \quad \left[\begin{matrix}0 & 0 & 1 & -2\end{matrix}\right]\right ]$$
151 |
152 |
153 |
154 | The column space of $A$ is the span of the columns of $A$ that contain the pivots
155 | in the reduced row echelon form of $A$:
156 |
157 |
158 | [ A[:,c] for c in A.rref()[1] ] # C(A)
159 |
160 |
161 |
162 |
163 | $$\left [ \left[\begin{matrix}2\\-2\\1\end{matrix}\right], \quad \left[\begin{matrix}-3\\-1\\0\end{matrix}\right], \quad \left[\begin{matrix}-8\\2\\-3\end{matrix}\right]\right ]$$
164 |
165 |
166 |
167 | Note we took columns from the original matrix $A$ and not its RREF.
168 |
169 | To find the null space of $A$, call its `nullspace` method:
170 |
171 |
172 | A.nullspace() # N(A)
173 |
174 |
175 |
176 |
177 | $$\left [ \left[\begin{matrix}0\\-3\\2\\1\end{matrix}\right]\right ]$$
178 |
179 |
180 |
181 | ### Determinants
182 |
183 | The determinant of a matrix,
184 | denoted $\det(A)$ or $|A|$,
185 | is a particular way to multiply the entries of the matrix to produce a single number.
186 |
187 |
188 | M = Matrix( [[1, 2, 3],
189 | [2,-2, 4],
190 | [2, 2, 5]] )
191 | M.det()
192 |
193 |
194 |
195 |
196 | $$2$$
197 |
198 |
199 |
200 | Determinants are used for all kinds of tasks:
201 | to compute areas and volumes,
202 | to solve systems of equations,
203 | and to check whether a matrix is invertible or not.
204 |
205 | ### Matrix inverse
206 |
207 | For every invertible matrix $A$,
208 | there exists an inverse matrix $A^{-1}$ which *undoes* the effect of $A$.
209 | The cumulative effect of the product of $A$ and $A^{-1}$ (in any order)
210 | is the identity matrix: $AA^{-1}= A^{-1}A=\mathbb{1}$.
211 |
212 |
213 | A = Matrix( [[1,2],
214 | [3,9]] )
215 | A.inv()
216 |
217 |
218 |
219 |
220 | $$\left[\begin{matrix}3 & - \frac{2}{3}\\-1 & \frac{1}{3}\end{matrix}\right]$$
221 |
222 |
223 |
224 |
225 | A.inv()*A
226 |
227 |
228 |
229 |
230 | $$\left[\begin{matrix}1 & 0\\0 & 1\end{matrix}\right]$$
231 |
232 |
233 |
234 |
235 | A*A.inv()
236 |
237 |
238 |
239 |
240 | $$\left[\begin{matrix}1 & 0\\0 & 1\end{matrix}\right]$$
241 |
242 |
243 |
244 | The matrix inverse $A^{-1}$ plays the role of division by $A$.
245 |
246 | ### Eigenvectors and eigenvalues
247 |
248 | When a matrix is multiplied by one of its eigenvectors the output
249 | is the same eigenvector multiplied by a constant $A\vec{e}_\lambda =\lambda\vec{e}_\lambda$.
250 | The constant $\lambda$ (the Greek letter *lambda*) is called an *eigenvalue* of $A$.
251 |
252 | To find the eigenvalues of a matrix, start from the definition $A\vec{e}_\lambda =\lambda\vec{e}_\lambda$,
253 | insert the identity $\mathbb{1}$,
254 | and rewrite it as a null-space problem:
255 |
256 | $$
257 | A\vec{e}_\lambda =\lambda\mathbb{1}\vec{e}_\lambda
258 | \qquad
259 | \Rightarrow
260 | \qquad
261 | \left(A - \lambda\mathbb{1}\right)\vec{e}_\lambda = \vec{0}.
262 | $$
263 |
264 | This equation will have a solution whenever $|A - \lambda\mathbb{1}|=0$.(The invertible matrix theorem states
265 | that a matrix has a non-empty null space if and only if its determinant is zero.)
266 | The eigenvalues of $A \in \mathbb{R}^{n \times n}$,
267 | denoted $\{ \lambda_1, \lambda_2, \ldots, \lambda_n \}$,\
268 | are the roots of the *characteristic polynomial* $p(\lambda)=|A - \lambda \mathbb{1}|$.
269 |
270 |
271 | A = Matrix( [[ 9, -2],
272 | [-2, 6]] )
273 | A.eigenvals() # same as solve(det(A-eye(2)*x), x)
274 | # return eigenvalues with their multiplicity
275 |
276 |
277 |
278 |
279 | $$\left \{ 5 : 1, \quad 10 : 1\right \}$$
280 |
281 |
282 |
283 |
284 | A.eigenvects()
285 |
286 |
287 |
288 |
289 | $$\left [ \left ( 5, \quad 1, \quad \left [ \left[\begin{matrix}\frac{1}{2}\\1\end{matrix}\right]\right ]\right ), \quad \left ( 10, \quad 1, \quad \left [ \left[\begin{matrix}-2\\1\end{matrix}\right]\right ]\right )\right ]$$
290 |
291 |
292 |
293 | Certain matrices can be written entirely in terms of their eigenvectors and their eigenvalues.
294 | Consider the matrix $\Lambda$ (capital Greek *L*) that has the eigenvalues of the matrix $A$ on the diagonal,
295 | and the matrix $Q$ constructed from the eigenvectors of $A$ as columns:
296 |
297 | $$
298 | \Lambda =
299 | \begin{bmatrix}
300 | \lambda_1 & \cdots & 0 \\
301 | \vdots & \ddots & 0 \\
302 | 0 & 0 & \lambda_n
303 | \end{bmatrix}\!,
304 | \ \
305 | Q \: =
306 | \begin{bmatrix}
307 | | & & | \\
308 | \vec{e}_{\lambda_1} & \! \cdots \! & \large\vec{e}_{\lambda_n} \\
309 | | & & |
310 | \end{bmatrix}\!,
311 | \ \
312 | \textrm{then}
313 | \ \
314 | A = Q \Lambda Q^{-1}.
315 | $$
316 |
317 | Matrices that can be written this way are called *diagonalizable*.
318 | To *diagonalize* a matrix $A$ is to find its $Q$ and $\Lambda$ matrices:
319 |
320 |
321 | Q, L = A.diagonalize()
322 | Q # the matrix of eigenvectors as columns
323 |
324 |
325 |
326 |
327 | $$\left[\begin{matrix}1 & -2\\2 & 1\end{matrix}\right]$$
328 |
329 |
330 |
331 |
332 | Q.inv()
333 |
334 |
335 |
336 |
337 | $$\left[\begin{matrix}\frac{1}{5} & \frac{2}{5}\\- \frac{2}{5} & \frac{1}{5}\end{matrix}\right]$$
338 |
339 |
340 |
341 |
342 | L # the matrix of eigenvalues
343 |
344 |
345 |
346 |
347 | $$\left[\begin{matrix}5 & 0\\0 & 10\end{matrix}\right]$$
348 |
349 |
350 |
351 |
352 | Q*L*Q.inv() # eigendecomposition of A
353 |
354 |
355 |
356 |
357 | $$\left[\begin{matrix}9 & -2\\-2 & 6\end{matrix}\right]$$
358 |
359 |
360 |
361 |
362 | Q.inv()*A*Q # obtain L from A and Q
363 |
364 |
365 |
366 |
367 | $$\left[\begin{matrix}5 & 0\\0 & 10\end{matrix}\right]$$
368 |
369 |
370 |
371 | Not all matrices are diagonalizable.
372 | You can check if a matrix is diagonalizable by calling its `is_diagonalizable` method:
373 |
374 |
375 | A.is_diagonalizable()
376 |
377 |
378 |
379 |
380 | True
381 |
382 |
383 |
384 |
385 | B = Matrix( [[1, 3],
386 | [0, 1]] )
387 | B.is_diagonalizable()
388 |
389 |
390 |
391 |
392 | False
393 |
394 |
395 |
396 |
397 | B.eigenvals() # eigenvalue 1 with multiplicity 2
398 |
399 |
400 |
401 |
402 | $$\left \{ 1 : 2\right \}$$
403 |
404 |
405 |
406 |
407 | B.eigenvects()
408 |
409 |
410 |
411 |
412 | $$\left [ \left ( 1, \quad 2, \quad \left [ \left[\begin{matrix}1\\0\end{matrix}\right]\right ]\right )\right ]$$
413 |
414 |
415 |
416 | The matrix $B$ is not diagonalizable because it doesn't have a full set of eigenvectors.
417 | To diagonalize a $2\times 2$ matrix, we need two orthogonal eigenvectors but $B$ has only a single eigenvector.
418 | Therefore, we can't construct the matrix of eigenvectors $Q$ (we're missing a column!)
419 | and so $B$ is not diagonalizable.
420 |
421 | Non-square matrices don't have eigenvectors and therefore don't have an eigendecomposition.
422 | Instead, we can use the *singular value decomposition* to break up a non-square matrix $A$ into
423 | left singular vectors,
424 | right singular vectors,
425 | and a diagonal matrix of singular values.
426 | Use the `singular_values` method on any matrix to find its singular values.
427 |
--------------------------------------------------------------------------------
/notebooks/Complex-numbers.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "from sympy import *\n",
10 | "x, y, z, t = symbols('x y z t')"
11 | ]
12 | },
13 | {
14 | "cell_type": "markdown",
15 | "metadata": {},
16 | "source": [
17 | "## Complex numbers"
18 | ]
19 | },
20 | {
21 | "cell_type": "markdown",
22 | "metadata": {},
23 | "source": [
24 | "Ever since Newton, the word “number” has been used to refer to one\n",
25 | "of the following types of math objects: the naturals $\\mathbb{N}$, the integers\n",
26 | "$\\mathbb{Z}$, the rationals $\\mathbb{Q}$, and the real numbers $\\mathbb{R}$. Each set of numbers is\n",
27 | "associated with a different class of equations. The natural numbers\n",
28 | "$\\mathbb{N}$ appear as solutions of the equation $m + n = x$, where $m$ and $n$ are\n",
29 | "natural numbers (denoted $m, n \\in \\mathbb{N}$). The integers $\\mathbb{Z}$ are the solutions\n",
30 | "to equations of the form $x + m = n$, where $m, n \\in \\mathbb{N}$. The rational\n",
31 | "numbers $\\mathbb{Q}$ are necessary to solve for $x$ in $mx = n$, with $m, n \\in \\mathbb{Z}$.\n",
32 | "The solutions to $x^2 = 2$ are irrational (so $\\not\\in \\mathbb{Q}$) so we need an even\n",
33 | "larger set that contains *all* possible numbers: real set of numbers $\\mathbb{R}$.\n",
34 | "A pattern emerges where more complicated equations require the\n",
35 | "invention of new types of numbers.\n",
36 | "\n",
37 | "Consider the quadratic equation $x^2 = -1$. There are no real solutions\n",
38 | "to this equation, but we can define an imaginary number $i = \\sqrt{-1}$\n",
39 | "(denoted `I` in `SymPy`) that satisfies this equation:"
40 | ]
41 | },
42 | {
43 | "cell_type": "code",
44 | "execution_count": 2,
45 | "metadata": {
46 | "collapsed": false,
47 | "jupyter": {
48 | "outputs_hidden": false
49 | }
50 | },
51 | "outputs": [
52 | {
53 | "data": {
54 | "text/latex": [
55 | "$\\displaystyle -1$"
56 | ],
57 | "text/plain": [
58 | "-1"
59 | ]
60 | },
61 | "execution_count": 2,
62 | "metadata": {},
63 | "output_type": "execute_result"
64 | }
65 | ],
66 | "source": [
67 | "I*I"
68 | ]
69 | },
70 | {
71 | "cell_type": "code",
72 | "execution_count": 3,
73 | "metadata": {
74 | "collapsed": false,
75 | "jupyter": {
76 | "outputs_hidden": false
77 | }
78 | },
79 | "outputs": [
80 | {
81 | "data": {
82 | "text/plain": [
83 | "[-I, I]"
84 | ]
85 | },
86 | "execution_count": 3,
87 | "metadata": {},
88 | "output_type": "execute_result"
89 | }
90 | ],
91 | "source": [
92 | "solve( x**2 + 1 , x)"
93 | ]
94 | },
95 | {
96 | "cell_type": "markdown",
97 | "metadata": {},
98 | "source": [
99 | "The solutions are $x = i$ and $x = -i$, and indeed we can verify that\n",
100 | "$i^2 + 1 = 0$ and $(-i)^2 + 1 = 0$ since $i^2 = -1$.\n",
101 | "\n",
102 | "The complex numbers $\\mathbb{C}$ are defined as $\\{ a+bi \\,|\\, a,b \\in \\mathbb{R} \\}$. Complex numbers\n",
103 | "contain a real part and an imaginary part:"
104 | ]
105 | },
106 | {
107 | "cell_type": "code",
108 | "execution_count": 4,
109 | "metadata": {
110 | "collapsed": false,
111 | "jupyter": {
112 | "outputs_hidden": false
113 | }
114 | },
115 | "outputs": [
116 | {
117 | "data": {
118 | "text/latex": [
119 | "$\\displaystyle 4 + 3 i$"
120 | ],
121 | "text/plain": [
122 | "4 + 3*I"
123 | ]
124 | },
125 | "execution_count": 4,
126 | "metadata": {},
127 | "output_type": "execute_result"
128 | }
129 | ],
130 | "source": [
131 | "z = 4 + 3*I\n",
132 | "z"
133 | ]
134 | },
135 | {
136 | "cell_type": "code",
137 | "execution_count": 5,
138 | "metadata": {
139 | "collapsed": false,
140 | "jupyter": {
141 | "outputs_hidden": false
142 | }
143 | },
144 | "outputs": [
145 | {
146 | "data": {
147 | "text/latex": [
148 | "$\\displaystyle 4$"
149 | ],
150 | "text/plain": [
151 | "4"
152 | ]
153 | },
154 | "execution_count": 5,
155 | "metadata": {},
156 | "output_type": "execute_result"
157 | }
158 | ],
159 | "source": [
160 | "re(z)"
161 | ]
162 | },
163 | {
164 | "cell_type": "code",
165 | "execution_count": 6,
166 | "metadata": {
167 | "collapsed": false,
168 | "jupyter": {
169 | "outputs_hidden": false
170 | }
171 | },
172 | "outputs": [
173 | {
174 | "data": {
175 | "text/latex": [
176 | "$\\displaystyle 3$"
177 | ],
178 | "text/plain": [
179 | "3"
180 | ]
181 | },
182 | "execution_count": 6,
183 | "metadata": {},
184 | "output_type": "execute_result"
185 | }
186 | ],
187 | "source": [
188 | "im(z)"
189 | ]
190 | },
191 | {
192 | "cell_type": "markdown",
193 | "metadata": {},
194 | "source": [
195 | "The *polar* representation of a complex number is $z\\!\\equiv\\!|z|\\angle\\theta\\!\\equiv \\!|z|e^{i\\theta}$.\n",
196 | "For a complex number $z=a+bi$, \n",
197 | "the quantity $|z|=\\sqrt{a^2+b^2}$ is known as the absolute value of $z$,\n",
198 | "and $\\theta$ is its *phase* or its *argument*:"
199 | ]
200 | },
201 | {
202 | "cell_type": "code",
203 | "execution_count": 7,
204 | "metadata": {
205 | "collapsed": false,
206 | "jupyter": {
207 | "outputs_hidden": false
208 | }
209 | },
210 | "outputs": [
211 | {
212 | "data": {
213 | "text/latex": [
214 | "$\\displaystyle 5$"
215 | ],
216 | "text/plain": [
217 | "5"
218 | ]
219 | },
220 | "execution_count": 7,
221 | "metadata": {},
222 | "output_type": "execute_result"
223 | }
224 | ],
225 | "source": [
226 | "Abs(z)"
227 | ]
228 | },
229 | {
230 | "cell_type": "code",
231 | "execution_count": 8,
232 | "metadata": {
233 | "collapsed": false,
234 | "jupyter": {
235 | "outputs_hidden": false
236 | }
237 | },
238 | "outputs": [
239 | {
240 | "data": {
241 | "text/latex": [
242 | "$\\displaystyle \\operatorname{atan}{\\left(\\frac{3}{4} \\right)}$"
243 | ],
244 | "text/plain": [
245 | "atan(3/4)"
246 | ]
247 | },
248 | "execution_count": 8,
249 | "metadata": {},
250 | "output_type": "execute_result"
251 | }
252 | ],
253 | "source": [
254 | "arg(z)"
255 | ]
256 | },
257 | {
258 | "cell_type": "markdown",
259 | "metadata": {},
260 | "source": [
261 | "The complex conjugate of $z = a + bi$ is the number $\\bar{z} = a - bi$:"
262 | ]
263 | },
264 | {
265 | "cell_type": "code",
266 | "execution_count": 9,
267 | "metadata": {
268 | "collapsed": false,
269 | "jupyter": {
270 | "outputs_hidden": false
271 | }
272 | },
273 | "outputs": [
274 | {
275 | "data": {
276 | "text/latex": [
277 | "$\\displaystyle 4 - 3 i$"
278 | ],
279 | "text/plain": [
280 | "4 - 3*I"
281 | ]
282 | },
283 | "execution_count": 9,
284 | "metadata": {},
285 | "output_type": "execute_result"
286 | }
287 | ],
288 | "source": [
289 | "conjugate( z )"
290 | ]
291 | },
292 | {
293 | "cell_type": "markdown",
294 | "metadata": {},
295 | "source": [
296 | "Complex conjugation is important for computing the absolute value\n",
297 | "of $z$ $\\left(|z|\\equiv\\sqrt{z\\bar{z}}\\right)$ and for division by $z$ $\\left(\\frac{1}{z}\\equiv\\frac{\\bar{z}}{|z|^2}\\right)$."
298 | ]
299 | },
300 | {
301 | "cell_type": "markdown",
302 | "metadata": {},
303 | "source": [
304 | "### Euler's formula"
305 | ]
306 | },
307 | {
308 | "cell_type": "markdown",
309 | "metadata": {},
310 | "source": [
311 | "[Euler's formula](https://en.wikipedia.org/wiki/Euler's_formula) shows an important relation between the exponential\n",
312 | "function $e^x$ and the trigonometric functions $sin(x)$ and $cos(x)$:\n",
313 | "\n",
314 | "$$e^{ix} = \\cos x + i \\sin x.$$\n",
315 | "\n",
316 | "To obtain this result in `SymPy`, you must specify that the number $x$ is\n",
317 | "real and also tell `expand` that you're interested in complex expansions:"
318 | ]
319 | },
320 | {
321 | "cell_type": "code",
322 | "execution_count": 10,
323 | "metadata": {
324 | "collapsed": false,
325 | "jupyter": {
326 | "outputs_hidden": false
327 | }
328 | },
329 | "outputs": [
330 | {
331 | "data": {
332 | "text/latex": [
333 | "$\\displaystyle i \\sin{\\left(x \\right)} + \\cos{\\left(x \\right)}$"
334 | ],
335 | "text/plain": [
336 | "I*sin(x) + cos(x)"
337 | ]
338 | },
339 | "execution_count": 10,
340 | "metadata": {},
341 | "output_type": "execute_result"
342 | }
343 | ],
344 | "source": [
345 | "x = symbols('x', real=True)\n",
346 | "exp(I*x).expand(complex=True)"
347 | ]
348 | },
349 | {
350 | "cell_type": "code",
351 | "execution_count": 11,
352 | "metadata": {
353 | "collapsed": false,
354 | "jupyter": {
355 | "outputs_hidden": false
356 | }
357 | },
358 | "outputs": [
359 | {
360 | "data": {
361 | "text/latex": [
362 | "$\\displaystyle \\cos{\\left(x \\right)}$"
363 | ],
364 | "text/plain": [
365 | "cos(x)"
366 | ]
367 | },
368 | "execution_count": 11,
369 | "metadata": {},
370 | "output_type": "execute_result"
371 | }
372 | ],
373 | "source": [
374 | "re( exp(I*x) )"
375 | ]
376 | },
377 | {
378 | "cell_type": "code",
379 | "execution_count": 12,
380 | "metadata": {
381 | "collapsed": false,
382 | "jupyter": {
383 | "outputs_hidden": false
384 | }
385 | },
386 | "outputs": [
387 | {
388 | "data": {
389 | "text/latex": [
390 | "$\\displaystyle \\sin{\\left(x \\right)}$"
391 | ],
392 | "text/plain": [
393 | "sin(x)"
394 | ]
395 | },
396 | "execution_count": 12,
397 | "metadata": {},
398 | "output_type": "execute_result"
399 | }
400 | ],
401 | "source": [
402 | "im( exp(I*x) )"
403 | ]
404 | },
405 | {
406 | "cell_type": "markdown",
407 | "metadata": {},
408 | "source": [
409 | "Basically, $\\cos(x)$ is the real part of $e^{ix}$, and $\\sin(x)$ is the imaginary\n",
410 | "part of $e^{ix}$. Whaaat? I know it's weird, but weird things are bound\n",
411 | "to happen when you input imaginary numbers to functions.\n",
412 | "\n",
413 | "Euler's formula is often used to rewrite the functions `sin` and `cos` in\n",
414 | "terms of complex exponentials. For example,"
415 | ]
416 | },
417 | {
418 | "cell_type": "code",
419 | "execution_count": 13,
420 | "metadata": {
421 | "collapsed": false,
422 | "jupyter": {
423 | "outputs_hidden": false
424 | }
425 | },
426 | "outputs": [
427 | {
428 | "data": {
429 | "text/latex": [
430 | "$\\displaystyle \\frac{e^{i x}}{2} + \\frac{e^{- i x}}{2}$"
431 | ],
432 | "text/plain": [
433 | "exp(I*x)/2 + exp(-I*x)/2"
434 | ]
435 | },
436 | "execution_count": 13,
437 | "metadata": {},
438 | "output_type": "execute_result"
439 | }
440 | ],
441 | "source": [
442 | "(cos(x)).rewrite(exp)"
443 | ]
444 | },
445 | {
446 | "cell_type": "markdown",
447 | "metadata": {},
448 | "source": [
449 | "Compare this expression with the definition of hyperbolic cosine."
450 | ]
451 | }
452 | ],
453 | "metadata": {
454 | "kernelspec": {
455 | "display_name": "Python 3",
456 | "language": "python",
457 | "name": "python3"
458 | },
459 | "language_info": {
460 | "codemirror_mode": {
461 | "name": "ipython",
462 | "version": 3
463 | },
464 | "file_extension": ".py",
465 | "mimetype": "text/x-python",
466 | "name": "python",
467 | "nbconvert_exporter": "python",
468 | "pygments_lexer": "ipython3",
469 | "version": "3.6.9"
470 | }
471 | },
472 | "nbformat": 4,
473 | "nbformat_minor": 4
474 | }
475 |
--------------------------------------------------------------------------------
/tex/sympy_tutorial.tex:
--------------------------------------------------------------------------------
1 | \documentclass[9pt]{IEEEtran}
2 |
3 | \usepackage[T1]{fontenc}
4 | \usepackage{lmodern}
5 | \usepackage{amssymb,amsmath}
6 | \usepackage{ifxetex,ifluatex}
7 |
8 |
9 |
10 |
11 | \usepackage{fixltx2e} % provides \textsubscript
12 | % use upquote if available, for straight quotes in verbatim environments
13 | \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
14 | \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
15 | \usepackage[utf8]{inputenc}
16 | \else % if luatex or xelatex
17 | \ifxetex
18 | \usepackage{mathspec}
19 | \usepackage{xltxtra,xunicode}
20 | \else
21 | \usepackage{fontspec}
22 | \fi
23 | \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
24 | \newcommand{\euro}{€}
25 | \fi
26 | % use microtype if available
27 | \IfFileExists{microtype.sty}{\usepackage{microtype}}{}
28 | \ifxetex
29 | \usepackage[setpagesize=false, % page size defined by xetex
30 | unicode=false, % unicode breaks when used with xetex
31 | xetex]{hyperref}
32 | \else
33 | \usepackage[unicode=true]{hyperref}
34 | \fi
35 | \hypersetup{breaklinks=true,
36 | bookmarks=true,
37 | pdfauthor={},
38 | pdftitle={Introducing the Shell},
39 | colorlinks=true,
40 | citecolor=blue,
41 | urlcolor=black,
42 | linkcolor=magenta,
43 | pdfborder={0 0 0}}
44 | \urlstyle{same} % don't use monospace font for urls
45 | \setlength{\parindent}{0pt}
46 | \setlength{\parskip}{6pt plus 2pt minus 1pt}
47 | \setlength{\emergencystretch}{3em} % prevent overfull lines
48 | \setcounter{secnumdepth}{0}
49 |
50 | \usepackage{etoolbox}
51 |
52 |
53 | \title{{\Huge Taming math and physics using \texttt{SymPy} }}
54 | % A tale of with equations and code}
55 | %\author{Ivan Savov}
56 | \author{{\normalsize Tutorial based on the \href{http://minireference.com}{{\sc No bullshit guide}} series of textbooks by \href{mailto:ivan.savov+SYMPYTUT@gmail.com}{Ivan Savov}}}
57 | \date{\today}
58 |
59 | %\usepackage{listings}
60 | \usepackage{moreverb}
61 | \usepackage[letterpaper,bmargin=1.1cm,rmargin=0.95cm,lmargin=0.95cm,tmargin=1cm,headsep=0.2cm,footskip=0.5cm]{geometry}
62 |
63 |
64 | \usepackage{bbm}
65 | \usepackage{wrapfig}
66 | \usepackage{graphicx}
67 |
68 | \usepackage{ifthen}
69 |
70 | \newboolean{TUTORIAL} % if TUTORIAL==true:
71 | \setboolean{TUTORIAL}{true} % show extra defs and repeats of explanations
72 |
73 | \newboolean{FORLA} % if FORLA: show extra content for LA book
74 | \setboolean{FORLA}{true} % if not FORLA: show content for MathPhys book
75 |
76 |
77 | \newcommand{\printcp}{}
78 | \newcommand{\printni}{}
79 |
80 | % doest work
81 | %\usepackage[titles]{tocloft}
82 | %\setlength{\cftbeforechapskip}{.1ex}
83 | %\setlength{\cftbeforesecskip}{-.5ex}
84 |
85 | \setcounter{secnumdepth}{1}
86 | \setcounter{tocdepth}{0}
87 | \usepackage{setspace}
88 | %\addtocontents{toc}{\protect\setstretch{-20.1}}
89 |
90 |
91 |
92 | \begin{document}
93 |
94 |
95 | \makeatletter
96 | \preto{\@verbatim}{\topsep=0pt \partopsep=0pt \vspace{-1.2mm}}
97 | \makeatother
98 |
99 |
100 |
101 | \maketitle
102 |
103 | %\vspace{-2mm}
104 |
105 | \begin{abstract}
106 | Most people consider math and physics to be scary beasts from which it is best to keep one's distance.
107 | Computers, however, can help us tame the complexity and tedious arithmetic manipulations associated with these subjects.
108 | Indeed, math and physics are much more approachable once you have the power of computers on your side.
109 | %
110 | %Understand math and physics
111 |
112 | This tutorial serves a dual purpose.
113 | On one hand, it serves as a review of the fundamental concepts of mathematics for computer-literate people.
114 | %who may have forgotten their math or never quite learned it detail.
115 | On the other hand, this tutorial serves to demonstrate to students how a computer algebra system
116 | can help them with their classwork.
117 | A word of warning is in order.
118 | Please don't use \texttt{SymPy} to avoid the suffering associated with your homework!
119 | Teachers assign homework problems to you
120 | %not because they want you to suffer but
121 | because they want you to learn.
122 | Do your homework by hand,
123 | but if you want, you can check your answers using \texttt{SymPy}.
124 | Better yet, use \texttt{SymPy} to invent extra practice problems for yourself.
125 | %
126 | %Let's get started!
127 |
128 | %The whole point of homework is for you to suffer.
129 | %Mathematical skill is developed through mathematical suffering---only
130 | %when trying to solve a problem that you haven't solved before will you
131 | %be forced to think and practice your skills.
132 | %Do not use \texttt{SymPy} to cheat on your homework!
133 | %You can use \texttt{SymPy} to check your answers though.
134 | %In fact, one of the best ways to learn math is to
135 | % solve them by hand, and then check your answers using \texttt{sympy}.
136 |
137 | %Let's kick some mathematical ass!
138 |
139 | \end{abstract}
140 |
141 | \begin{spacing}{-1}
142 | \tableofcontents
143 | \end{spacing}
144 |
145 | \input{99.sympy_tutorial.tex}
146 |
147 |
148 |
149 |
150 | %======================================================================= matrices
151 | \ifthenelse{\boolean{FORLA}}{
152 | \input{99.LA_sympy_tutorial.tex}
153 | }{}
154 |
155 |
156 |
157 | \vspace{-2mm}
158 | %======================================================================= conclusion
159 | \section*{Conclusion}
160 | \label{sec:conclusion}
161 |
162 | I would like to conclude with some words of caution about the overuse of computers.
163 | Computer technology is very powerful and is everywhere around us,
164 | but let's not forget that computers are actually very dumb:
165 | computers are mere calculators and they depend on your knowledge to direct them.
166 | It's important that you learn how to do complicated math by hand in order to be
167 | able to instruct computers to do math for you and to check the results of your computer calculations.
168 | I don't want you to use the tricks you learned in this tutorial to avoid math problems from now on
169 | and simply rely blindly on \texttt{SymPy} for all your math needs.
170 | I want both you and the computer to become math powerhouses!
171 | The computer will help you with tedious calculations (they're good at that)
172 | and you'll help the computer by guiding it when it gets stuck (humans are good at that).
173 |
174 |
175 |
176 |
177 |
178 | %======================================================================= links
179 | \section*{Links}
180 | \label{sec:links}
181 |
182 | [ Installation instructions for \texttt{ipython notebook} ] \\
183 | \href{http://ipython.org/install.html}{\texttt{http://ipython.org/install.html}}
184 |
185 | \noindent
186 | [ The official \texttt{SymPy} tutorial ] \\
187 | \href{http://docs.sympy.org/latest/tutorial/intro.html}{\texttt{http://docs.sympy.org/latest/tutorial/intro.html}}
188 |
189 | \noindent
190 | [ A list of \texttt{SymPy} gotchas ] \\
191 | \href{http://docs.sympy.org/dev/gotchas.html}{\texttt{http://docs.sympy.org/dev/gotchas.html}}
192 |
193 | \noindent
194 | [ SymPy video tutorials by Matthew Rocklin ] \\
195 | \href{http://pyvideo.org/speaker/583/matthew-rocklin}{\texttt{http://pyvideo.org/speaker/583/matthew-rocklin}}
196 |
197 |
198 |
199 |
200 |
201 | %======================================================================= book_plug
202 | \section*{Book plug}
203 | \label{sec:book_plug}
204 |
205 |
206 | The examples and math explanations in this tutorial are sourced from the
207 | {\sc no bullshit guide} series of books published by Minireference~Co.
208 | We publish textbooks that make math and physics accessible and affordable for everyone.
209 | If you're interested in %relearning you high school math and
210 | learning more about the math, physics, and calculus topics discussed in this tutorial,
211 | check out the \textbf{No bullshit guide to math and physics}.
212 | %As the book's author,
213 | %I'm somewhat biased so I can't give you an objective review.
214 | The book contains the distilled information that normally comes in two first-year university books:
215 | the introductory physics book (1000+ pages) and the first-year calculus book (1000+ pages).
216 | Would you believe me if I told you that you can learn the
217 | same material from a single book that is \texttt{1/7}\textsuperscript{th} the size and \texttt{1/10}\textsuperscript{th} of the
218 | price of mainstream textbooks?
219 |
220 | % It's not a scam, it's just the free market doing its thing.
221 | % Until now mainstream publishers pushed their products to the captive audience of students.
222 | % With eBooks and print-on-demand technology, random Ph.D.'s like me can write books
223 | % Which book do you trust more? The one written by committee or the one written by a human?
224 | %
225 |
226 |
227 | %The fundamental tenet of the Minireference Co. publishing company is the utmost respect for the reader,
228 | %so we
229 |
230 | \begin{wrapfigure}[18]{r}{0pt}
231 | \includegraphics[width=135pt,height=207pt]{figures/cover_v40_noline_lite.png}
232 | %\includegraphics[width=125pt]{/Library/WebServer/Documents/miniref/data/media/physics/mass_spring-highres.png}
233 | \end{wrapfigure}
234 |
235 | This book contains short lessons on math and physics,
236 | written in a style that is jargon-free and to the point.
237 | %
238 | % The main focus of the book is to show the intricate connections between the concepts of mechanics and calculus.
239 | %
240 | Often calculus and mechanics are taught as separate subjects.
241 | It shouldn't be like that.
242 | If you learn calculus without mechanics, it will be boring.
243 | If you learn mechanics without calculus, you won't truly understand what is going on.
244 | %
245 | This textbook covers both subjects in an integrated manner.
246 | % highlighting the connections between the subjects.
247 |
248 | Contents:
249 | \begin{itemize}
250 | \item {\sc high school math}%: (40pp) %Review of algebra, functions and trigonometry.
251 | \item {\sc vectors}%: (20pp)
252 | \item {\sc mechanics}
253 | \item {\sc differential calculus}%: (30pp)
254 | \item {\sc integral calculus}%: (20pp)
255 | \item 250+ practice problems %: (20pp)
256 | % \item {\sc linear algebra}%: (60pp)
257 | \end{itemize}
258 |
259 | \noindent
260 | %Available at the \textbf{McGill bookstore.}}{}
261 | \hfill {\small 5\textonehalf[in] $\times$ 8\textonehalf[in] $\times$ 445[pages] }
262 |
263 |
264 | %Save yourself some time: instead of reading three books you can read just one.
265 | %The print version will be available December 1$^{\text{st}}$.
266 | %Get in touch with me by email if you want to buy a copy of the book in print or as a PDF.
267 | %
268 | %I will also appreciate it if you send me feedback and comments.
269 | %where I post other tutorials like this one.
270 | %Don't hesitate to get in touch with me if you have any questions or feedback:
271 | %. I would also like to hear what you feedback
272 | %do you like the style of writing?
273 |
274 | %in which all the material that you normally taught in first year science is explained in a concise manner.
275 |
276 | %
277 | %If you liked this tutorial you can check out the other ones on \url{http://minireference.com}
278 | %and order the printed book which has not only formulas but also compact explanations:
279 | %\url{http://minireference.com/order_book/}.
280 |
281 |
282 | %
283 | %Also of interest,
284 |
285 | %The coverage of the math and physics topics in this tutorial were not sufficient
286 | %to do justice to the subjects. The goal here is to quickly introduce you to the
287 | %useful \texttt{SymPy} commands.
288 | %
289 | %you should consider some of my other tutorials on mechanics
290 | %If you're interested in learning more about calculus and mechanics,
291 | %you should consider the \emph{No bullshit guide to math and physics}---a short textbook like no other.
292 |
293 | \noindent
294 | For more information, see the book's website %and find more information on the following website
295 | at \, \href{http://minireference.com/}{\texttt{minireference.com}}.
296 |
297 | The linear algebra examples presented in Section~\ref{sec:linear_algebra} are
298 | sourced from the \href{https://gum.co/noBSLA}{\textbf{No bullshit guide to linear algebra}}.
299 | Check out the book if you're taking a linear algebra course of if you're missing the prerequisites
300 | for learning machine learning, computer graphics, or quantum mechanics.
301 |
302 | I'll close on a note for potential readers who suffer from math-phobia.
303 | Both books start with an introductory chapter that reviews all
304 | high school math concepts needed to make math and physics
305 | accessible to everyone.
306 | Don't worry, we'll fix this math-phobia thing right up for you;
307 | \textbf{when you've got \texttt{SymPy} skills, math fears \emph{you}!}
308 |
309 | To stay informed about upcoming titles,
310 | follow \href{https://twitter.com/minireference}{\texttt{@minireference}} on twitter
311 | and check out the facebook page at \href{http://fb.me/noBSguide}{\texttt{fb.me/noBSguide}}.
312 | %You're also invited to the \textbf{online office hours} where I'll answer
313 | %your questions and solve problems from past years' finals\ \ \hfill \href{http://on.fb.me/1aPxy5w}{\texttt{on.fb.me/1aPxy5w}}
314 | %For comments, feedback, and questions, you can get in touch with me here \hfill
315 |
316 |
317 |
318 |
319 | \end{document}
320 |
321 |
--------------------------------------------------------------------------------
/notebooks/Intro.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Taming math and physics using `SymPy`"
8 | ]
9 | },
10 | {
11 | "cell_type": "markdown",
12 | "metadata": {},
13 | "source": [
14 | "Tutorial based on the [No bullshit guide](http://minireference.com/) series of textbooks by [Ivan Savov](mailto:ivan.savov+SYMPYTUT@gmail.com)"
15 | ]
16 | },
17 | {
18 | "cell_type": "markdown",
19 | "metadata": {},
20 | "source": [
21 | "## Abstract"
22 | ]
23 | },
24 | {
25 | "cell_type": "markdown",
26 | "metadata": {},
27 | "source": [
28 | "Most people consider math and physics to be scary\n",
29 | "beasts from which it is best to keep one's distance. Computers,\n",
30 | "however, can help us tame the complexity and tedious arithmetic\n",
31 | "manipulations associated with these subjects. Indeed, math and\n",
32 | "physics are much more approachable once you have the power of\n",
33 | "computers on your side.\n",
34 | "\n",
35 | "This tutorial serves a dual purpose. On one hand, it serves\n",
36 | "as a review of the fundamental concepts of mathematics for\n",
37 | "computer-literate people. On the other hand, this tutorial serves\n",
38 | "to demonstrate to students how a computer algebra system can\n",
39 | "help them with their classwork. A word of warning is in order.\n",
40 | "Please don't use `SymPy` to avoid the suffering associated with your\n",
41 | "homework! Teachers assign homework problems to you because\n",
42 | "they want you to learn. Do your homework by hand, but if you\n",
43 | "want, you can check your answers using `SymPy`. Better yet, use\n",
44 | "`SymPy` to invent extra practice problems for yourself."
45 | ]
46 | },
47 | {
48 | "cell_type": "markdown",
49 | "metadata": {},
50 | "source": [
51 | "## Contents"
52 | ]
53 | },
54 | {
55 | "cell_type": "markdown",
56 | "metadata": {},
57 | "source": [
58 | "* [Fundamentals of mathematics](Fundamentals-of-mathematics.ipynb)\n",
59 | "* [Complex numbers](Complex-numbers.ipynb)\n",
60 | "* [Calculus](Calculus.ipynb)\n",
61 | "* [Vectors](Vectors.ipynb)\n",
62 | "* [Mechanics](Mechanics.ipynb)\n",
63 | "* [Linear algebra](Linear-algebra.ipynb)"
64 | ]
65 | },
66 | {
67 | "cell_type": "markdown",
68 | "metadata": {},
69 | "source": [
70 | "## Introduction"
71 | ]
72 | },
73 | {
74 | "cell_type": "markdown",
75 | "metadata": {},
76 | "source": [
77 | "You can use a computer algebra system (CAS) to compute complicated\n",
78 | "math expressions, solve equations, perform calculus procedures,\n",
79 | "and simulate physics systems.\n",
80 | "\n",
81 | "All computer algebra systems offer essentially the same functionality,\n",
82 | "so it doesn't matter which system you use: there are free\n",
83 | "systems like `SymPy`, `Magma`, or `Octave`, and commercial systems like\n",
84 | "`Maple`, `MATLAB`, and `Mathematica`. This tutorial is an introduction to\n",
85 | "`SymPy`, which is a *symbolic* computer algebra system written in the\n",
86 | "programming language `Python`. In a symbolic CAS, numbers and\n",
87 | "operations are represented symbolically, so the answers obtained are\n",
88 | "exact. For example, the number √2 is represented in `SymPy` as the\n",
89 | "object `Pow(2,1/2)`, whereas in numerical computer algebra systems\n",
90 | "like `Octave`, the number √2 is represented as the approximation\n",
91 | "1.41421356237310 (a `float`). For most purposes the approximation\n",
92 | "is okay, but sometimes approximations can lead to problems:\n",
93 | "`float(sqrt(2))*float(sqrt(2))` = 2.00000000000000044 ≠ 2. Because\n",
94 | "`SymPy` uses exact representations, you'll never run into such\n",
95 | "problems: `Pow(2,1/2)*Pow(2,1/2)` = 2.\n",
96 | "\n",
97 | "This tutorial is organized as follows. We'll begin by introducing the\n",
98 | "`SymPy` basics and the bread-and-butter functions used for manipulating\n",
99 | "expressions and solving equations. Afterward, we'll discuss the\n",
100 | "`SymPy` functions that implement calculus operations like differentiation\n",
101 | "and integration. We'll also introduce the functions used to deal with\n",
102 | "vectors and complex numbers. Later we'll see how to use vectors and\n",
103 | "integrals to understand Newtonian mechanics. In the last section,\n",
104 | "we'll introduce the linear algebra functions available in `SymPy`.\n",
105 | "\n",
106 | "This tutorial presents many explanations as blocks of code. Be sure\n",
107 | "to try the code examples on your own by typing the commands into\n",
108 | "`SymPy`. It's always important to verify for yourself!"
109 | ]
110 | },
111 | {
112 | "cell_type": "markdown",
113 | "metadata": {},
114 | "source": [
115 | "## Using SymPy"
116 | ]
117 | },
118 | {
119 | "cell_type": "markdown",
120 | "metadata": {},
121 | "source": [
122 | "The easiest way to use `SymPy`, provided you're connected to the\n",
123 | "Internet, is to visit http://live.sympy.org. You'll be presented with\n",
124 | "an interactive prompt into which you can enter your commands—right\n",
125 | "in your browser.\n",
126 | "\n",
127 | "If you want to use `SymPy` on your own computer, you must install\n",
128 | "`Python` and the python package `sympy`. You can then open a command\n",
129 | "prompt and start a `SymPy` session using:\n",
130 | "\n",
131 | "```\n",
132 | "you@host$ python\n",
133 | "Python X.Y.Z\n",
134 | "[GCC a.b.c (Build Info)] on platform\n",
135 | "Type \"help\", \"copyright\", or \"license\" for more information.\n",
136 | ">>> from sympy import *\n",
137 | ">>>\n",
138 | "```\n",
139 | "\n",
140 | "The `>>>` prompt indicates you're in the Python shell which accepts\n",
141 | "Python commands. The command `from sympy import *` imports all\n",
142 | "the `SymPy` functions into the current namespace. All `SymPy` functions\n",
143 | "are now available to you. To exit the python shell press `CTRL+D`.\n",
144 | "\n",
145 | "I highly recommend you also install `ipython`, which is an improved\n",
146 | "interactive python shell. If you have `ipython` and `SymPy` installed,\n",
147 | "you can start an `ipython` shell with `SymPy` pre-imported using the\n",
148 | "command `isympy`. For an even better experience, you can try `ipython notebook`,\n",
149 | "which is a web frontend for the `ipython` shell.\n",
150 | "\n",
151 | "You can start your session the same way as `isympy` do, by running following commands, which will be detaily described latter."
152 | ]
153 | },
154 | {
155 | "cell_type": "code",
156 | "execution_count": 1,
157 | "metadata": {
158 | "collapsed": false,
159 | "jupyter": {
160 | "outputs_hidden": false
161 | }
162 | },
163 | "outputs": [
164 | {
165 | "name": "stdout",
166 | "output_type": "stream",
167 | "text": [
168 | "IPython console for SymPy 0.7.6 (Python 3.4.2-64-bit) (ground types: gmpy)\n",
169 | "\n",
170 | "These commands were executed:\n",
171 | ">>> from __future__ import division\n",
172 | ">>> from sympy import *\n",
173 | ">>> x, y, z, t = symbols('x y z t')\n",
174 | ">>> k, m, n = symbols('k m n', integer=True)\n",
175 | ">>> f, g, h = symbols('f g h', cls=Function)\n",
176 | ">>> init_printing()\n",
177 | "\n",
178 | "Documentation can be found at http://www.sympy.org\n"
179 | ]
180 | }
181 | ],
182 | "source": [
183 | "from sympy import init_session\n",
184 | "init_session()"
185 | ]
186 | },
187 | {
188 | "cell_type": "markdown",
189 | "metadata": {},
190 | "source": [
191 | "## Conclusion"
192 | ]
193 | },
194 | {
195 | "cell_type": "markdown",
196 | "metadata": {},
197 | "source": [
198 | "I would like to conclude with some words of caution about the overuse of computers.\n",
199 | "Computer technology is very powerful and is everywhere around us,\n",
200 | "but let's not forget that computers are actually very dumb:\n",
201 | "computers are mere calculators and they depend on your knowledge to direct them.\n",
202 | "It's important that you learn how to do complicated math by hand in order to be \n",
203 | "able to instruct computers to do math for you and to check the results of your computer calculations.\n",
204 | "I don't want you to use the tricks you learned in this tutorial to avoid math problems from now on\n",
205 | "and simply rely blindly on `SymPy` for all your math needs.\n",
206 | "I want both you and the computer to become math powerhouses!\n",
207 | "The computer will help you with tedious calculations (they're good at that)\n",
208 | "and you'll help the computer by guiding it when it gets stuck (humans are good at that)."
209 | ]
210 | },
211 | {
212 | "cell_type": "markdown",
213 | "metadata": {},
214 | "source": [
215 | "## Links"
216 | ]
217 | },
218 | {
219 | "cell_type": "markdown",
220 | "metadata": {},
221 | "source": [
222 | "* [Installation instructions for `ipython notebook`](http://ipython.org/install.html)\n",
223 | "* [The official `SymPy` tutorial](http://docs.sympy.org/latest/tutorial/intro.html)\n",
224 | "* [A list of `SymPy` gotchas](http://docs.sympy.org/dev/gotchas.html)\n",
225 | "* [`SymPy` video tutorials by Matthew Rocklin](http://pyvideo.org/speaker/583/matthew-rocklin)"
226 | ]
227 | },
228 | {
229 | "cell_type": "markdown",
230 | "metadata": {},
231 | "source": [
232 | "## Book plug"
233 | ]
234 | },
235 | {
236 | "cell_type": "markdown",
237 | "metadata": {},
238 | "source": [
239 | "\n",
240 | "\n",
241 | "The examples and math explanations in this tutorial are sourced from the \n",
242 | "*No bullshit guide* series of books published by Minireference Co.\n",
243 | "We publish textbooks that make math and physics accessible and affordable for everyone.\n",
244 | "If you're interested in learning more about the math, physics, and calculus topics discussed in this tutorial,\n",
245 | "check out the **No bullshit guide to math and physics**.\n",
246 | "The book contains the distilled information that normally comes in two first-year university books:\n",
247 | "the introductory physics book (1000+ pages) and the first-year calculus book (1000+ pages).\n",
248 | "Would you believe me if I told you that you can learn the \n",
249 | "same material from a single book that is 1/7th the size and 1/10th of the \n",
250 | "price of mainstream textbooks?\n",
251 | "\n",
252 | "This book contains short lessons on math and physics, calculus.\n",
253 | "Often calculus and mechanics are taught as separate subjects.\n",
254 | "It shouldn't be like that.\n",
255 | "If you learn calculus without mechanics, it will be boring.\n",
256 | "If you learn mechanics without calculus, you won't truly understand what is going on.\n",
257 | "This textbook covers both subjects in an integrated manner.\n",
258 | " \n",
259 | "Contents:\n",
260 | "\n",
261 | "* High school math\n",
262 | "* Vectors\n",
263 | "* Mechanics\n",
264 | "* Differential calculus\n",
265 | "* Integral calculus\n",
266 | "* 250+ practice problems\n",
267 | "\n",
268 | "For more information, see the book's website at [minireference.com](http://minireference.com/)\n",
269 | "\n",
270 | "The presented linear algebra examples are \n",
271 | "sourced from the [**No bullshit guide to linear algebra**](https://gum.co/noBSLA).\n",
272 | "Check out the book if you're taking a linear algebra course of if you're missing the prerequisites \n",
273 | "for learning machine learning, computer graphics, or quantum mechanics.\n",
274 | "\n",
275 | "I'll close on a note for potential readers who suffer from math-phobia.\n",
276 | "Both books start with an introductory chapter that reviews all \n",
277 | "high school math concepts needed to make math and physics \n",
278 | "accessible to everyone.\n",
279 | "Don't worry, we'll fix this math-phobia thing right up for you;\n",
280 | "**when you've got `SymPy` skills, math fears *you*!**\n",
281 | "\n",
282 | "To stay informed about upcoming titles,\n",
283 | "follow [@minireference](https://twitter.com/minireference) on twitter \n",
284 | "and check out the facebook page at [fb.me/noBSguide](http://fb.me/noBSguide)."
285 | ]
286 | }
287 | ],
288 | "metadata": {
289 | "kernelspec": {
290 | "display_name": "Python 3",
291 | "language": "python",
292 | "name": "python3"
293 | },
294 | "language_info": {
295 | "codemirror_mode": {
296 | "name": "ipython",
297 | "version": 3
298 | },
299 | "file_extension": ".py",
300 | "mimetype": "text/x-python",
301 | "name": "python",
302 | "nbconvert_exporter": "python",
303 | "pygments_lexer": "ipython3",
304 | "version": "3.6.9"
305 | }
306 | },
307 | "nbformat": 4,
308 | "nbformat_minor": 4
309 | }
310 |
--------------------------------------------------------------------------------
/tex/99.LA_sympy_tutorial.tex:
--------------------------------------------------------------------------------
1 |
2 | %!TEX root = sympy_tutorial.tex
3 |
4 |
5 |
6 |
7 | %======================================================================= matrices
8 | \section{Linear algebra}
9 | \label{sec:linear_algebra}
10 |
11 | %\ifthenelse{\boolean{FORLA}}{
12 |
13 |
14 | \small
15 | \begin{verbatimtab}
16 | from sympy import Matrix
17 | \end{verbatimtab}
18 | \normalsize
19 |
20 | \noindent
21 | A matrix $A \in \mathbb{R}^{m\times n}$ is a rectangular array of real numbers with $m$ rows and $n$ columns.
22 | To specify a matrix $A$, we specify the values for its $mn$ components $a_{11}, a_{12}, \ldots, a_{mn}$
23 | as a list of lists:
24 |
25 | \small
26 | \begin{verbatimtab}
27 | >>> A = Matrix( [[ 2,-3,-8, 7],
28 | [-2,-1, 2,-7],
29 | [ 1, 0,-3, 6]] )
30 | \end{verbatimtab}
31 | \normalsize
32 |
33 | \noindent
34 | Use the square brackets to access the matrix elements or to obtain a submatrix:
35 |
36 |
37 |
38 | \small
39 | \begin{verbatimtab}
40 | >>> A[0,1] # row 0, col 1of A
41 | -3
42 | >>> A[0:2,0:3] # top-left 2x3 submatrix of A
43 | [ 2, -3, -8]
44 | [-2, -1, 2]
45 | \end{verbatimtab}
46 | \normalsize
47 |
48 | \noindent
49 | Some commonly used matrices can be created with shortcut methods:
50 |
51 |
52 |
53 | \small
54 | \begin{verbatimtab}
55 | >>> eye(2) # 2x2 identity matrix
56 | [1, 0]
57 | [0, 1]
58 | >>> zeros((2, 3))
59 | [0, 0, 0]
60 | [0, 0, 0]
61 | \end{verbatimtab}
62 | \normalsize
63 |
64 | %TODO explain matrix concatenation operations:
65 | %>>> M1.row_join(M2)
66 | %[1 0 0 0 0 0 0]
67 | %[ ]
68 | %[0 1 0 0 0 0 0]
69 | %[ ]
70 | %[0 0 1 0 0 0 0]
71 | %>>> M3 = zeros((4, 3))
72 | %>>> M1.col_join(M3)
73 |
74 |
75 | \noindent
76 | Standard algebraic operations like
77 | addition \texttt{+}, subtraction \texttt{-}, multiplication \texttt{*},
78 | and exponentiation \texttt{**} work as expected for \texttt{Matrix} objects.
79 | %
80 | The \texttt{transpose} operation flips the matrix through its diagonal:
81 |
82 | \small
83 | \begin{verbatimtab}
84 | >>> A.transpose() # the same as A.T
85 | [ 2, -2, 1]
86 | [-3, -1, 0]
87 | [-8, 2, -3]
88 | [ 7, -7, 6]
89 | \end{verbatimtab}
90 | \normalsize
91 |
92 | \noindent
93 | Recall that the transpose is also used to convert row vectors into column vectors and vice versa.
94 |
95 |
96 | \subsection{Row operations}
97 | \label{matrices:row_operations}
98 |
99 | \small
100 | \begin{verbatimtab}
101 | >>> M = eye(3)
102 | >>> M.row_op(1, lambda v,j: v+3*M[0,j] )
103 | >>> M
104 | [1, 0, 0]
105 | [3, 1, 0]
106 | [0, 0, 1]
107 | \end{verbatimtab}
108 | \normalsize
109 |
110 | The method \texttt{row\_op} takes two arguments as inputs:
111 | the first argument specifies the $0$-based index of the row you want to act on,
112 | while the second argument is a function of the form \texttt{f(val,j)}
113 | that describes how you want the value \texttt{val=M[i,j]} to be transformed.
114 | The above call to \texttt{row\_op} implements the row operation $R_2 \gets R_2 + 3R_1$.
115 | %The expression \texttt{lambda a,b: a+b} is the \texttt{Python} syntax for creating an anonymous function with arguments
116 | %\texttt{a} and \texttt{b}, which computes their sum \texttt{a+b}.
117 |
118 |
119 | \subsection{Reduced row echelon form}
120 | \label{matrices:reduced_row_echelon_form}
121 |
122 | The Gauss--Jordan elimination procedure is a sequence of row operations you can perform
123 | on any matrix to bring it to its \emph{reduced row echelon form} (RREF).
124 | In \texttt{SymPy}, matrices have a \texttt{rref} method that computes their RREF:
125 |
126 | \small
127 | \begin{verbatimtab}
128 | >>> A = Matrix( [[2,-3,-8, 7],
129 | [-2,-1,2,-7],
130 | [1 ,0,-3, 6]])
131 | >>> A.rref()
132 | ([1, 0, 0, 0] # RREF of A
133 | [0, 1, 0, 3] # locations of pivots
134 | [0, 0, 1, -2], [0, 1, 2] )
135 | \end{verbatimtab}
136 | \normalsize
137 |
138 | \noindent
139 | Note the \texttt{rref} method returns a tuple of values:
140 | the first value is the RREF of $A$,
141 | while the second tells you the indices of the leading ones (also known as pivots) in the RREF of $A$.
142 | To get just the RREF of $A$, select the $0$\textsuperscript{th} entry form the tuple: \texttt{A.rref()[0]}.
143 |
144 | %
145 | %\small
146 | %\begin{verbatimtab}
147 | %>>> Arref = A.rref()[0]
148 | %>>> Arref
149 | %[1, 0, 0, 0]
150 | %[0, 1, 0, 3]
151 | %[0, 0, 1, -2]
152 | %\end{verbatimtab}
153 | %\normalsize
154 |
155 |
156 |
157 | \subsection{Matrix fundamental spaces}
158 | \label{matrices:matrix_fundamental_spaces}
159 |
160 | Consider the matrix $A \in \mathbb{R}^{m\times n}$.
161 | The fundamental spaces of a matrix are its column space $\mathcal{C}(A)$,
162 | its null space $\mathcal{N}(A)$,
163 | and its row space $\mathcal{R}(A)$.
164 | These vector spaces are important when you consider the matrix product
165 | $A\vec{x}=\vec{y}$ as ``applying'' the linear transformation $T_A:\mathbb{R}^n \to \mathbb{R}^m$
166 | to an input vector $\vec{x} \in \mathbb{R}^n$ to produce the output vector $\vec{y} \in \mathbb{R}^m$.
167 |
168 | \textbf{Linear transformations} $T_A:\mathbb{R}^n \to \mathbb{R}^m$ (vector functions)
169 | \textbf{are equivalent to $m\times n$ matrices}.
170 | This is one of the fundamental ideas in linear algebra.
171 | You can think of $T_A$ as the abstract description of the transformation
172 | and $A \in \mathbb{R}^{m\times n}$ as a concrete implementation of $T_A$.
173 | By this equivalence,
174 | the fundamental spaces of a matrix $A$
175 | tell us facts about the domain and image of the linear transformation $T_A$.
176 | The columns space $\mathcal{C}(A)$ is the same as the image space space $\textrm{Im}(T_A)$ (the set of all possible outputs).
177 | The null space $\mathcal{N}(A)$ is the same as the kernel $\textrm{Ker}(T_A)$ (the set of inputs that $T_A$ maps to the zero vector).
178 | The row space $\mathcal{R}(A)$ is the orthogonal complement of the null space.
179 | Input vectors in the row space of $A$ are in one-to-one correspondence with the output vectors in the column space of $A$.
180 |
181 | Okay, enough theory! Let's see how to compute the fundamental spaces of the matrix $A$ defined above.
182 | The non-zero rows in the reduced row echelon form of $A$ are a basis for its row space:
183 |
184 | \small
185 | \begin{verbatimtab}
186 | >>> [ A.rref()[0][r,:] for r in A.rref()[1] ] # R(A)
187 | [ [1, 0, 0, 0], [0, 1, 0, 3], [0, 0, 1, -2] ]
188 | \end{verbatimtab}
189 | \normalsize
190 |
191 | \noindent
192 | The column space of $A$ is the span of the columns of $A$ that contain the pivots
193 | in the reduced row echelon form of $A$:
194 |
195 |
196 |
197 | \small
198 | \begin{verbatimtab}
199 | >>> [ A[:,c] for c in A.rref()[1] ] # C(A)
200 | [ [ 2] [-3] [-8]
201 | [-2], [-1], [ 2]
202 | [ 1] [ 0] [-3] ]
203 | \end{verbatimtab}
204 | \normalsize
205 |
206 | \noindent
207 | Note we took columns from the original matrix $A$ and not its RREF.
208 |
209 |
210 | To find the null space of $A$, call its \texttt{nullspace} method:
211 |
212 | \small
213 | \begin{verbatimtab}
214 | >>> A.nullspace() # N(A)
215 | [ [0, -3, 2, 1] ]
216 | \end{verbatimtab}
217 | \normalsize
218 | \subsection{Determinants}
219 | \label{matrices:determinants}
220 |
221 | The determinant of a matrix,
222 | denoted $\det(A)$ or $|A|$,
223 | is a particular way to multiply the entries of the matrix to produce a single number.
224 |
225 |
226 |
227 | \small
228 | \begin{verbatimtab}
229 | >>> M = Matrix( [[1, 2, 3],
230 | [2,-2, 4],
231 | [2, 2, 5]] )
232 | >>> M.det()
233 | 2
234 | \end{verbatimtab}
235 | \normalsize
236 |
237 | \noindent
238 | Determinants are used for all kinds of tasks:
239 | to compute areas and volumes,
240 | to solve systems of equations,
241 | and to check whether a matrix is invertible or not.
242 |
243 | \subsection{Matrix inverse}
244 | \label{matrices:matrix_inverse}
245 |
246 | For every invertible matrix $A$,
247 | there exists an inverse matrix $A^{-1}$ which \emph{undoes} the effect of $A$.
248 | The cumulative effect of the product of $A$ and $A^{-1}$ (in any order)
249 | is the identity matrix: $AA^{-1}= A^{-1}A=\mathbbm{1}$.
250 |
251 |
252 |
253 | \small
254 | \begin{verbatimtab}
255 | >>> A = Matrix( [[1,2],
256 | [3,9]] )
257 | >>> A.inv()
258 | [ 3, -2/3]
259 | [-1, 1/3]
260 | >>> A.inv()*A
261 | [1, 0]
262 | [0, 1]
263 | >>> A*A.inv()
264 | [1, 0]
265 | [0, 1]
266 | \end{verbatimtab}
267 | \normalsize
268 |
269 | \noindent
270 | The matrix inverse $A^{-1}$ plays the role of division by $A$.
271 |
272 |
273 | \vspace{-3mm}
274 |
275 | \subsection{Eigenvectors and eigenvalues}
276 | \label{matrices:eigenvectors_and_eigenvalues}
277 |
278 | \vspace{-1mm}
279 |
280 | When a matrix is multiplied by one of its eigenvectors the output
281 | is the same eigenvector multiplied by a constant $A\vec{e}_\lambda =\lambda\vec{e}_\lambda$.
282 | The constant $\lambda$ (the Greek letter \emph{lambda}) is called an \emph{eigenvalue} of $A$.
283 | % and the vector is called an \emph{eigenvector}.
284 | % \[
285 | % \Rightarrow
286 | % \quad
287 | % \left( A-\lambda \mathbbm{1}\right) \vec{e}_\lambda = \vec{0}.
288 | % \]
289 | %Thinking of matrices in term of their eigenvalues and eigenvectors is
290 | %a very powerful technique for describing their properties.
291 | %In particular
292 |
293 | To find the eigenvalues of a matrix, start from the definition $A\vec{e}_\lambda =\lambda\vec{e}_\lambda$,
294 | insert the identity $\mathbbm{1}$,
295 | and rewrite it as a null-space problem:
296 | \[
297 | A\vec{e}_\lambda =\lambda\mathbbm{1}\vec{e}_\lambda
298 | \qquad
299 | \Rightarrow
300 | \qquad
301 | \left(A - \lambda\mathbbm{1}\right)\vec{e}_\lambda = \vec{0}.
302 | \]
303 | This equation will have a solution whenever $|A - \lambda\mathbbm{1}|=0$.\footnote{The invertible matrix theorem states
304 | that a matrix has a non-empty null space if and only if its determinant is zero.}
305 | %
306 | The eigenvalues of $A \in \mathbb{R}^{n \times n}$,
307 | denoted $\{ \lambda_1, \lambda_2, \ldots, \lambda_n \}$,
308 | are the roots of the \emph{characteristic polynomial} $p(\lambda)=|A - \lambda \mathbbm{1}|$.
309 |
310 |
311 |
312 | \small
313 | \begin{verbatimtab}
314 | >>> A = Matrix( [[ 9, -2],
315 | [-2, 6]] )
316 | >>> A.eigenvals() # same as solve( det(A-eye(2)*x), x)
317 | {5: 1, 10: 1} # eigenvalues 5 and 10 with multiplicity 1
318 | >>> A.eigenvects()
319 | [(5, 1, [ 1]
320 | [ 2] ), (10, 1, [-2]
321 | [ 1] )]
322 | \end{verbatimtab}
323 | \normalsize
324 |
325 | \noindent
326 |
327 |
328 | Certain matrices can be written entirely in terms of their eigenvectors and their eigenvalues.
329 | Consider the matrix $\Lambda$ (capital Greek \emph{L}) that has the eigenvalues of the matrix $A$ on the diagonal,
330 | and the matrix $Q$ constructed from the eigenvectors of~$A$ as columns:
331 | \[
332 | \Lambda =
333 | \scriptscriptstyle
334 | \begin{bmatrix}
335 | \lambda_1 & \cdots & 0 \\
336 | \vdots & \ddots & 0 \\
337 | 0 & 0 & \lambda_n
338 | \end{bmatrix}\!,
339 | \ \
340 | {\textstyle Q} \:
341 | =
342 | \begin{bmatrix}
343 | \big| & &\Huge| \\[1.2mm]
344 | \vec{e}_{\lambda_1} & \! \cdots \! & \large\vec{e}_{\lambda_n} \\[1.2mm]
345 | \big| & & \Huge|
346 | \end{bmatrix}\!,
347 | \ \
348 | {\textstyle
349 | \textrm{then}
350 | \ \
351 | A = Q\Lambda Q^{-1}.
352 | }
353 | \]
354 |
355 | Matrices that can be written this way are called \emph{diagonalizable}.
356 | %The matrix $A$ can be written as the product of three matrices
357 | %$A=Q\Lambda Q^{-1}$.
358 | %This is called the \emph{eigendecomposition} of $A$.
359 | %The matrix $Q$ contains the eigenvectors of $A$ as columns.
360 | %The matrix $\Lambda$ contains the eigenvalues of $A$ on its diagonal.
361 | To \emph{diagonalize} a matrix $A$ is to find its $Q$ and $\Lambda$ matrices:
362 |
363 | \small
364 | \begin{verbatimtab}
365 | >>> Q, L = A.diagonalize()
366 | >>> Q # the matrix of eigenvectors
367 | [1, -2] # as columns
368 | [2, 1]
369 | >>> Q.inv()
370 | [ 1/5, 2/5]
371 | [-2/5, 1/5]
372 | >>> L # the matrix of eigenvalues
373 | [5, 0]
374 | [0, 10]
375 | >>> Q*L*Q.inv() # eigendecomposition of A
376 | [ 9, -2]
377 | [-2, 6]
378 | >>> Q.inv()*A*Q # obtain L from A and Q
379 | [5, 0]
380 | [0, 10]
381 | \end{verbatimtab}
382 | \normalsize
383 |
384 |
385 | Not all matrices are diagonalizable.
386 | You can check if a matrix is diagonalizable by calling its \texttt{is\_diagonalizable} method:
387 |
388 | \small
389 | \begin{verbatimtab}
390 | >>> A.is_diagonalizable()
391 | True
392 | >>> B = Matrix( [[1, 3],
393 | [0, 1]] )
394 | >>> B.is_diagonalizable()
395 | False
396 | >>> B.eigenvals()
397 | {1: 2} # eigenvalue 1 with multiplicity 2
398 | >>> B.eigenvects()
399 | [(1, 2, [1]
400 | [0] )]
401 | \end{verbatimtab}
402 | \normalsize
403 |
404 | \noindent
405 | The matrix $B$ is not diagonalizable because it doesn't have a full set of eigenvectors.
406 | To diagonalize a $2\times 2$ matrix, we need two orthogonal eigenvectors but $B$ has only a single eigenvector.
407 | Therefore, we can't construct the matrix of eigenvectors $Q$ (we're missing a column!)
408 | and so $B$ is not diagonalizable.
409 |
410 | Non-square matrices don't have eigenvectors and therefore don't have an eigendecomposition.
411 | Instead, we can use the \emph{singular value decomposition} to break up a non-square matrix $A$ into
412 | left singular vectors,
413 | right singular vectors,
414 | and a diagonal matrix of singular values.
415 | Use the \texttt{singular\_values} method on any matrix to find its singular values.
416 |
417 | %\subsection{QR decomposition}
418 | %\label{matrices:qr_decomposition}
419 |
420 | %It is possible to write a matrix $A$ as the product of an orthogonal matrix $Q$
421 | %and an upper triangular matrix $R$.
422 | %This is known as the QR-decomposition.
423 |
424 | %\small
425 | %\begin{verbatimtab}
426 | %>>> A=Matrix( [[12,-51,4],
427 | % [6,167,-68],
428 | % [-4,24,-41]] )
429 | %>>> Q,R = A.QRdecomposition()
430 | %>>> Q
431 | %[ 6/7, -69/175, -58/175]
432 | %[ 3/7, 158/175, 6/175]
433 | %[-2/7, 6/35, -33/35]
434 | %>>> Q*Q.T # verify Q is orthogonal
435 | %[1, 0, 0]
436 | %[0, 1, 0]
437 | %[0, 0, 1]
438 | %>>> R # and R is upper triangular
439 | %[14, 21, -14]
440 | %[ 0, 175, -70]
441 | %[ 0, 0, 35]
442 | %>>> Q*R # verify QR = A
443 | %[12, -51, 4]
444 | %[ 6, 167, -68]
445 | %[-4, 24, -41]
446 | %\end{verbatimtab}
447 | %\normalsize
448 | %
449 | %\noindent
450 | %Each \texttt{sympy} matrix is also equipped with
451 | %\href{https://en.wikipedia.org/wiki/LU_decomposition}{\texttt{LUdecomposition}}
452 | %and \href{https://en.wikipedia.org/wiki/Cholesky_decomposition}{\texttt{cholesky}} decomposition methods.
453 |
454 |
455 |
--------------------------------------------------------------------------------