{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# Factoring Polynomials with SymPy" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Here is an example that uses [SymPy](http://sympy.org/en/index.html) to factor polynomials." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "from ipywidgets import interact" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "from sympy import Symbol, Eq, factor" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "x = Symbol('x')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "def factorit(n):\n", " return Eq(x**n-1, factor(x**n-1))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "Eq(x**12 - 1, (x - 1)*(x + 1)*(x**2 + 1)*(x**2 - x + 1)*(x**2 + x + 1)*(x**4 - x**2 + 1))" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factorit(12)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7d7f36fd90524ea480926365b0c6cc14" } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "interact(factorit, n=(2,40));" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "7d7f36fd90524ea480926365b0c6cc14": { "model_module": "jupyter-js-widgets", "model_module_version": "~2.0.30", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "_model_module_version": "~2.0.30", "_view_module_version": "~2.0.30", "children": [ "IPY_MODEL_cc5f99d0d40741cd8c674bb99bd31a15", "IPY_MODEL_f0ec7bee63fc4b8e8ad5605c40747ddb" ], "layout": "IPY_MODEL_a0c4ee48dfde4549b8dcc21fb561c85a" } }, "a0c4ee48dfde4549b8dcc21fb561c85a": { "model_module": "jupyter-js-widgets", "model_module_version": "~2.0.30", "model_name": "LayoutModel", "state": { "_model_module_version": "~2.0.30", "_view_module_version": "~2.0.30" } }, "c10c83996f7447f1bac87698b941f865": { "model_module": "jupyter-js-widgets", "model_module_version": "~2.0.30", "model_name": "SliderStyleModel", "state": { "_model_module_version": "~2.0.30", "_view_module_version": "~2.0.30" } }, "cc5f99d0d40741cd8c674bb99bd31a15": { "model_module": "jupyter-js-widgets", "model_module_version": "~2.0.30", "model_name": "IntSliderModel", "state": { "_model_module_version": "~2.0.30", "_view_module_version": "~2.0.30", "description": "n", "layout": "IPY_MODEL_d423b6dc28564ce0bf3a04cdb82e12e2", "max": 40, "min": 2, "style": "IPY_MODEL_c10c83996f7447f1bac87698b941f865", "value": 23 } }, "d423b6dc28564ce0bf3a04cdb82e12e2": { "model_module": "jupyter-js-widgets", "model_module_version": "~2.0.30", "model_name": "LayoutModel", "state": { "_model_module_version": "~2.0.30", "_view_module_version": "~2.0.30" } }, "dcea3efd81044be3a5f811667bb2e3b5": { "model_module": "jupyter-js-widgets", "model_module_version": "~2.0.30", "model_name": "LayoutModel", "state": { "_model_module_version": "~2.0.30", "_view_module_version": "~2.0.30" } }, "f0ec7bee63fc4b8e8ad5605c40747ddb": { "model_module": "jupyter-js-widgets", "model_module_version": "~2.0.30", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "jupyter-js-widgets", "_model_module_version": "~2.0.30", "_view_module": "jupyter-js-widgets", "_view_module_version": "~2.0.30", "layout": "IPY_MODEL_dcea3efd81044be3a5f811667bb2e3b5", "msg_throttle": 1 } } }, "version_major": 1, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 1 }