{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "\n", "import numpy\n", "from math import sin, cos" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "f = sin\n", "df = cos" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "x = 2.3\n", "\n", "for k in range(3, 10):\n", " h = 2**(-k)\n", "\n", " fd1 = (f(x+2*h) - f(x))/(2*h)\n", " fd2 = (f(x+h) - f(x))/h\n", " \n", " richardson = (-1)*fd1 + 2*fd2\n", " \n", " true = df(x)\n", " \n", " print \"Err FD1: %g\\tErr FD2: %g\\tErr Rich: %g\" % (\n", " abs(true-fd1),\n", " abs(true-fd2), \n", " abs(true-richardson))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Err FD1: 0.08581\tErr FD2: 0.0448122\tErr Rich: 0.00381441\n", "Err FD1: 0.0448122\tErr FD2: 0.022862\tErr Rich: 0.000911846\n", "Err FD1: 0.022862\tErr FD2: 0.0115423\tErr Rich: 0.000222501\n", "Err FD1: 0.0115423\tErr FD2: 0.00579859\tErr Rich: 5.49282e-05\n", "Err FD1: 0.00579859\tErr FD2: 0.00290612\tErr Rich: 1.3644e-05\n", "Err FD1: 0.00290612\tErr FD2: 0.00145476\tErr Rich: 3.39995e-06\n", "Err FD1: 0.00145476\tErr FD2: 0.000727804\tErr Rich: 8.48602e-07\n" ] } ], "prompt_number": 19 } ], "metadata": {} } ] }