├── 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 | [![Binder](https://mybinder.org/badge_logo.svg)](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 | ![Cover](http://minireference.com/miniref/lib/tpl/miniref/dist/images/productshots/noBSguide_math_physics_softcover.png) 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 | "![Cover](http://minireference.com/miniref/lib/tpl/miniref/dist/images/productshots/noBSguide_math_physics_softcover.png)\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 | --------------------------------------------------------------------------------