{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Using the Relaxation Method to Solve Laplace’s Equation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Numerical solutions to many physical problems can be found using finite difference methods. In this approach, a regular grid is imposed on a region. At each point on the grid, the differential equation governing the system is approximated. The resulting equations are then solved iteratively. The relaxation method is a relatively simple example. The problem is to find the potential V in empty regions (ρ = 0) when V is known on the boundaries. In other words, we want to find solutions to Laplace’s equation (we’ll concentrate on two-dimensional problems),\n", "$$\\frac{\\partial^2 V}{\\partial x^2}+\\frac{\\partial^2 V}{\\partial y^2}=0.$$\n", "The value of V at a point (x,y) is the average of the values of V on a circle centered around that point,\n", "$$ V(x,y) = \\frac{1}{2\\pi R}\\oint_{\\rm{circle}}V d\\ell.$$\n", "This suggests that if V is known for points on a grid, the value of V at each point should be the average of V for its nearest neighbors. A solution can be found by cycling through the points on the grid and assigning to each one the average of it neighbors. On each subsequent pass, the updated values are used. After a few iterations, the values change less on each subsequent pass. Eventually, the changes are negligible and a numerical solution has been reached. \n", " \n", "First, we need to be able to keep track of the potential at points on a grid. In Python, **`V[3,2]`** refers to an element in a matrix. The first index is for the row, which we’ll associate with the y direction, and the second index is for the column, which we’ll associate with the x direction. The example below shows the elements of a 5x6 matrix. Notice that the lowest value of each index is zero, not one. Each cell in the matrix **`V`** will represent the value of the potential a point in space. We will divide up the region so that the distance d between the points is the same in both directions. The shading in the diagram will be explained later." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDiRXhpZgAATU0AKgAAAAgABAE7AAIAAAAIAAAISodpAAQA\nAAABAAAIUpydAAEAAAAQAAAQyuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBoeXNpY3MAAAWQAwAC\nAAAAFAAAEKCQBAACAAAAFAAAELSSkQACAAAAAzMwAACSkgACAAAAAzMwAADqHAAHAAAIDAAACJQA\nAAAAHOoAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAyMDE0OjEyOjI0IDIxOjQwOjI2ADIwMTQ6MTI6MjQgMjE6NDA6MjYAAABQAGgA\neQBzAGkAYwBzAAAA/+ELGmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJl\nZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1s\nbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5v\ncmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9\nInV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0\ncDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91\ndD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0i\naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTQtMTItMjRU\nMjE6NDA6MjYuMjk1PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2Ny\naXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJm\nMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0\nb3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1z\neW50YXgtbnMjIj48cmRmOmxpPlBoeXNpY3M8L3JkZjpsaT48L3JkZjpTZXE+DQoJCQk8L2RjOmNy\nZWF0b3I+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5k\nPSd3Jz8+/9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIu\nIiUoKSssKxogLzMvKjInKisq/9sAQwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioq\n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\nQAUUUUAFFFFABRRRQB//2Q==\n", "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image(filename=\"relaxation.jpg\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use the variables **`NX`** and **`NY`** to for the numbers of cells in the x and y directions. If the distance between the first cell and the last cell in the x direction is **`Nd`**, the matrix must have (N + 1) columns. In the figure above, the distance from the first column to the last column is 5d, so there must be **`NX`**=6 columns. \n", " \n", "Second, we need to be able to calculate (approximate) second derivatives with respect to x and y. The first derivative with respect to x halfway between the locations of **`V[i,j]`** and **`V[i,j+1]`** can be approximated as\n", "$$\\frac{\\partial V}{\\partial x}\\approx\\frac{\\Delta V}{\\Delta x}=\\frac{V[i,j+1]-V[i,j]}{d}.$$\n", "The second derivative with respect to x at the location of V[i,j] can be approximated as\n", "$$\\frac{\\partial^2 V}{\\partial x^2}\\approx\n", "\\frac{1}{d}\\left[\\frac{V[i,j+1]-V[i,j]}{d}-\\frac{V[i,j]-V[i,j-1]}{d}\\right]\n", "=\\frac{V[i,j+1]-2V[i,j]+V[i,j-1]}{d^2} $$\n", "Similarly, the second derivative with respect to y at the location of **`V[i,j]`** is approximately\n", "$$\\frac{\\partial^2 V}{\\partial x^2}\\approx\n", "\\frac{V[i+1,j]-2V[i,j]+V[i-1,j]}{d^2} $$\n", "The two-dimensional version of Laplace’s equation will be approximately satisfied if\n", "$$\\frac{V[i,j+1]-2V[i,j]+V[i,j-1]}{d^2} + \\frac{V[i+1,j]-2V[i,j]+V[i-1,j]}{d^2} \\approx 0$$\n", "so\n", "$$ V[i,j]\\approx \\frac{V[i,j+1]+V[i,j-1]+V[i+1,j]+V[i-1,j]}{4}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In other words, the value of the potential should be approximately equal to the average of the values in the four closest positions. \n", " \n", "Finally, we need to know how to apply the condition above iteratively to find a solution. The potential is set for the boundary cells (the ones shaded gray in the figure above) and all of the other cells are initially set to zero. The values are updated iteratively to reach a solution. One iteration consists of updating the values of each of the non-boundary cells using the condition above. The latest available value of each V on the right-hand side of the equation is used. The “difference” between two iterations (**`diff`**) is defined as the maximum of the absolute value of the difference between values of potential for all cells. More iterations are performed until the difference between the last two iterations reaches a specified value (**`maxdiff`**). \n", " \n", "Note that the darker gray cells in the corners of the figure are not used in the calculation. However, the value entered in those cells may change the appearance of a contour plot of the results. \n", " \n", "The example program shown below uses the relaxation method to solve Laplace’s\n", "equation with the following boundary conditions:\n", "$$ \n", "V=0 \\rm{\\ at\\ }y=-2\\rm{\\ cm}\\\\\n", "V=0 \\rm{\\ at\\ }y=2\\rm{\\ cm}\\\\\n", "V=0 \\rm{\\ at\\ }x=0\\rm{\\ cm}\\\\\n", "V=1\\rm{\\ V} \\rm{\\ at\\ }x=5\\rm{\\ cm}\n", "$$\n", "A spacing of d = 1 cm is used, so the matrix is the same size as the one shown in the\n", "figure above." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 0. 0. 0. 0. 1.]\n", " [ 0. 0. 0. 0. 0. 1.]\n", " [ 0. 0. 0. 0. 0. 1.]\n", " [ 0. 0. 0. 0. 0. 1.]\n", " [ 0. 0. 0. 0. 0. 1.]]\n", "[[ 0. 0. 0. 0. 0. 1. ]\n", " [ 0. 0.03346891 0.08708074 0.19460784 0.43131878 1. ]\n", " [ 0. 0.04679614 0.12024742 0.2600326 0.53066754 1. ]\n", " [ 0. 0.03346922 0.08708112 0.19460813 0.43131892 1. ]\n", " [ 0. 0. 0. 0. 0. 1. ]]\n" ] } ], "source": [ "from numpy import * #includes the zeros function\n", "\n", "NX = 6\n", "NY = 5\n", "maxdiff = 1e-6\n", "diff = 1.0 # must start bigger than 'maxdiff'\n", "V = zeros((NY,NX),float) # fill 'V' with zeros\n", "\n", "# Enter the boundary conditions for 'V' other than 0\n", "for i in arange(0,NY,1): # j from 0 to NY-1\n", " V[i,NX-1] = 1.0\n", "print(V) # print the starting values\n", "\n", "while diff > maxdiff: # repeat until 'diff' is small\n", " diff = 0.0 # reset for each iteration\n", " # Loop over all of the interior points\n", " for i in arange(1,NY-1,1): # i from 1 to NY-2\n", " for j in arange(1,NX-1,1): # j from 1 to NX-2\n", " newVij = (V[i-1,j]+V[i+1,j]\n", " +V[i,j-1]+V[i,j+1])/4.0\n", " lastdiff = abs(newVij-V[i,j])\n", " if lastdiff > diff:\n", " diff = lastdiff\n", " V[i,j] = newVij\n", "print(V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For each iteration, only the interior (non-boundary) cells are updated. The new value of **`V[i,j]`** is temporarily stored in the variable **`newVij`** so that it can be compared with the old value. If the difference between them (**`lastdiff`**) is bigger than any previous differences for the current iteration, it becomes the new value of the difference (**`diff`**). \n", " \n", "You can use the **`contour`** function (or **`contourf`**) from the pylab library to display the results of the calculations." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nNfL/AZNkM19Fw0riAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pylab import *\n", "\n", "xlist = linspace(0.0,5.0,NX)\n", "ylist = linspace(-2.0,2.0,NY)\n", "X,Y = meshgrid(xlist,ylist)\n", "levels = linspace(0.0, 1.0, 6)\n", "\n", "figure()\n", "CP = contourf(X,Y,V,levels)\n", "colorbar(CP)\n", "xlabel('x (cm)')\n", "ylabel('y (cm)')\n", "title('Potential (V)')\n", "show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The rate of convergence to a solution can often be improved by “overrelaxation.” The condition above can be rewritten as\n", "$$V[i,j]\\approx w\\frac{V[i,j+1]+V[i,j-1]+V[i+1,j]+V[i-1,j]}{4} +(1-w)V[i,j],$$\n", "where w is a nonzero constant. Since the two conditions are equivalent, the solutions reached using them are the same. When this condition is used, the current value (on the right-hand side) of the potential for a cell is used in the calculation of the new value (on\n", "the left-hand side). A good choice of w can produce much quicker convergence (less iterations are required). For most problems, the optimum value of w cannot be know in advance, but w = 1.5 works well in many cases. If we set w = 1, there is no overrelaxation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
    \n", "
  1. David J. Griffiths, Introduction to Electrodynamics, 3rd ed. (Prentice-Hall, Upper Saddle River, NJ, 1999), pp. 113-114.\n", "
  2. John R. Reitz, Frederick J. Milford, and Robert W. Christy, Foundations of Electromagnetic Theory, 4th ed. (Addison Wesley, Reading, MA, 1993), pp. 77-84.\n", "
  3. Paul Lorrain, Dale R. Corson, and Francois Lorrain, Fundamentals of\n", "Electromagnetic Phenomena (W. H. Freeman, San Francisco, 2000), pp. 174-179.\n", "
" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2 (SageMath)", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }