Skip to content

Instantly share code, notes, and snippets.

@certik
Created March 4, 2014 23:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save certik/9358111 to your computer and use it in GitHub Desktop.
Save certik/9358111 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "Paper"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": "from sympy import *",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": "init_printing(use_latex=True)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": "var(\"x1 x2 x3 C11 C22 C33\")",
"language": "python",
"metadata": {},
"outputs": [
{
"latex": "$$\\begin{pmatrix}x_{1}, & x_{2}, & x_{3}, & C_{11}, & C_{22}, & C_{33}\\end{pmatrix}$$",
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": "(x\u2081, x\u2082, x\u2083, C\u2081\u2081, C\u2082\u2082, C\u2083\u2083)"
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": "A = -C22 + x2*C22 - x2*C33",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": "B = -C11*C22 + x2*C11*C22 - x2*C11*C33 + x1*C11*C22 - x1 * C22*C33",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": "C = (x1+x3)*(C22-C33)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": "D = -C11*C22 + x2*C11*C22-x2*C11*C33+x1*C11*C22 - x1*C22*C33",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": "The original formula doesn't simplify well:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "simplify(B*D/(A*D-C*B))",
"language": "python",
"metadata": {},
"outputs": [
{
"latex": "$$\\frac{- C_{11} C_{22} x_{1} - C_{11} C_{22} x_{2} + C_{11} C_{22} + C_{11} C_{33} x_{2} + C_{22} C_{33} x_{1}}{C_{22} x_{1} - C_{22} x_{2} + C_{22} x_{3} + C_{22} - C_{33} x_{1} + C_{33} x_{2} - C_{33} x_{3}}$$",
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 8,
"text": "-C\u2081\u2081\u22c5C\u2082\u2082\u22c5x\u2081 - C\u2081\u2081\u22c5C\u2082\u2082\u22c5x\u2082 + C\u2081\u2081\u22c5C\u2082\u2082 + C\u2081\u2081\u22c5C\u2083\u2083\u22c5x\u2082 + C\u2082\u2082\u22c5C\u2083\u2083\u22c5x\u2081\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n C\u2082\u2082\u22c5x\u2081 - C\u2082\u2082\u22c5x\u2082 + C\u2082\u2082\u22c5x\u2083 + C\u2082\u2082 - C\u2083\u2083\u22c5x\u2081 + C\u2083\u2083\u22c5x\u2082 - C\u2083\u2083\u22c5x\u2083 "
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": "But a modified formula simplifies well:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "simplify(B*D/(A*D+C*B))",
"language": "python",
"metadata": {},
"outputs": [
{
"latex": "$$\\frac{C_{11} C_{22} x_{1} + C_{11} C_{22} x_{2} - C_{11} C_{22} - C_{11} C_{33} x_{2} - C_{22} C_{33} x_{1}}{C_{22} x_{1} + C_{22} x_{2} + C_{22} x_{3} - C_{22} - C_{33} x_{1} - C_{33} x_{2} - C_{33} x_{3}}$$",
"metadata": {},
"output_type": "pyout",
"png": "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\nzIsAAAAASUVORK5CYII=\n",
"prompt_number": 9,
"text": "C\u2081\u2081\u22c5C\u2082\u2082\u22c5x\u2081 + C\u2081\u2081\u22c5C\u2082\u2082\u22c5x\u2082 - C\u2081\u2081\u22c5C\u2082\u2082 - C\u2081\u2081\u22c5C\u2083\u2083\u22c5x\u2082 - C\u2082\u2082\u22c5C\u2083\u2083\u22c5x\u2081\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n C\u2082\u2082\u22c5x\u2081 + C\u2082\u2082\u22c5x\u2082 + C\u2082\u2082\u22c5x\u2083 - C\u2082\u2082 - C\u2083\u2083\u22c5x\u2081 - C\u2083\u2083\u22c5x\u2082 - C\u2083\u2083\u22c5x\u2083 "
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Especially if we use the fact that $x_1+x_2+x_3=1$, so we substitute for $x_3$:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "simplify(_.subs(x3, 1-x1-x2))",
"language": "python",
"metadata": {},
"outputs": [
{
"latex": "$$\\frac{- C_{11} C_{22} x_{1} - C_{11} C_{22} x_{2} + C_{11} C_{22} + C_{11} C_{33} x_{2} + C_{22} C_{33} x_{1}}{C_{33}}$$",
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAT0AAAAlCAYAAAAwaT7fAAAABHNCSVQICAgIfAhkiAAABLJJREFU\neJzt3UuIHEUcx/Gvm2x0BY0HJRJRontQIQdRPPiOIIqHIHgQlIBZBINGQb2ICNoeRBIWvQc8iKKC\nTxAPQg4NegkYc1ZUvBiNT9YQ0GjQQ/WwvW1Vd1V39Wv697lsz79nquv/r+7Znu5hCkREJuSsBq/d\nAjwE7AROAKeAM0AK3A281HN7bZt6/jPzWod5zasO1QK4EjgG7C3EtwFrwJ09t9e2qeT/WMX6sdZh\nXvMKVVUHmE4tSl0CfM//Oz3zEeadvK/22jal/JOSdWOuQ9JhP8Y6vjCtWpR6B/i0ZP1tPbd3E6ao\nrwB7gH3A+8AVge24DDn/2LknJeuGXIcqSYf9GPL+nVSsn1ItnC4E/sH9Tt13e+djrhUA3AMcyZZf\nAy6O0P6Q828j98QRH3IdfCQd9WPo+3dSsm5ua7E5t/w4sFzy3CPAt8Am4HPHc3YAPwJ/AgvAKvBU\nbn0xtuzZ3mlgP7CUxQ9mbRVjp4HXs8c3AB9kyw+W9AH8cn8roL9t579KeO62euVtA55g482tm4Fz\nco9PAi8G9Luv/WBseS0C9wF/AbcCj2b5FGNNxjikDiF99x2TrmsB9jEKth1zl+Uax/ons79bsw19\nkVtni/m2txu4NFt+D7jOEcs7Clyf27arDyGGkv/zhOdeVS+bxBEfSh189gObxBHvM6/VbPlo9nxb\nLC/GGCcl62KPSde1cB7rC44OuBwHXsWcGeUtYt7ZP8werwEvA3/knmOL+ba3DNyfLX+DKagtthtT\nvB2Y2+HHMP/Z9pb0IcRQ8l8jPHdbveoaSh1c+0FdfeX1MfAC6xfxv3LEhjjGvmPSdS2cx3qd7+lt\nzjZ2VZbQKeBv4G3gt8JzU2BXRcynvbMxCZ8EPgFWgF8tsbsw/1W+xJwSn8F8FHkX832gsn75GkL+\nD2frQnK31fB4Ra4J7rOBIdTBtR+MLS8wZ0IrmEsphx2xFeKOcUL52V7sMemyFjMp9Y/1WlLPmK9b\ngGc8YlWa9KHpdppsu5hrndxDXvN0YNsuqWfMV9P9YKh5gTmgL/KIlfGtRaw6uLZZZ//Mi1GLtBgI\n/Xjbp63A7Wz8trYtNq+KudbJPfQ1BwLa7kqM/WBoeeU/cf2EebOwxXyE1CJWHWIemzFr0YvUM+Zj\nP+bz/yJwR0msbr/aYNtO3W0Xc62Te916NZV6xnzE3A+aSj1jVQ4Cj2TLnwHXOmI++qhFzDGJWQvo\n7lhnCXN7/ATmDsqSI+brAcwFyV+A3zEXLm2xOv1qQ9v5P0d47nXq1dRQ94OmYuc1y2Mf63cxbbEq\nfdQi9pjEqkVXx7qIiIiIiIiIiIi0bHYr+N9eeyEiIiIiIiLSSJM5MkSqjHIuBBGROkY5F4KISB2j\nnQtBRKSOLue7EBHplc9cCOdhrvXtAQ5hfmfNFhOJbkw/LSXj4DMXwi7gauANzA9B7nTEREQGz2cu\nhAXMmd0WzPwG5zpiIiKjcAgzH0LebC6Ey7PH24Fn2fhba7aYSFT6np60IWSeicOYSWR+roiJiIxW\n/p/tm8C9jphIdLqRIX04wPrPf18GfOeIiUS3qe8OyCT9AFwA3Ah8jZmd3hYTERERERERERERkYn7\nD4hzkL6ADTe6AAAAAElFTkSuQmCC\n",
"prompt_number": 10,
"text": "-C\u2081\u2081\u22c5C\u2082\u2082\u22c5x\u2081 - C\u2081\u2081\u22c5C\u2082\u2082\u22c5x\u2082 + C\u2081\u2081\u22c5C\u2082\u2082 + C\u2081\u2081\u22c5C\u2083\u2083\u22c5x\u2082 + C\u2082\u2082\u22c5C\u2083\u2083\u22c5x\u2081\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n C\u2083\u2083 "
}
],
"prompt_number": 10
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment