{ "metadata": { "name": "", "signature": "sha256:8faf3cb78e493c48b0101a5c9a73a79d9f9e5a5fcfe6eca84fa1eb0e05db7da2" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Condition number of Vandermonde matrix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider $N+1$ unformly spaced distinct points\n", "$$\n", "-1 = x_0 < x_1 < \\ldots < x_N = 1.0\n", "$$\n", "Their Vandermonde matrix is\n", "$$\n", "\\begin{bmatrix}\n", "1 & x_0 & x_0^2 & \\ldots & x_0^N \\\\\n", "1 & x_1 & x_1^2 & \\ldots & x_1^N \\\\\n", "\\vdots & \\vdots & \\vdots & & \\vdots\\\\\n", "1 & x_N & x_N^2 & \\ldots & x_N^N\n", "\\end{bmatrix}\n", "$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy import linspace,zeros\n", "from numpy.linalg import cond" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "for N in range(2,21):\n", " x = linspace(-1.0,+1.0,N+1)\n", " V = zeros((N+1,N+1))\n", " for j in range(0,N+1):\n", " V[j][:] = x**j\n", " print \"%8d %20.8e\" % (N,cond(V))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " 2 3.22550493e+00\n", " 3 8.01156105e+00\n", " 4 2.35309087e+01\n", " 5 6.38272826e+01\n", " 6 1.89814113e+02\n", " 7 5.35353118e+02\n", " 8 1.60544370e+03\n", " 9 4.62644992e+03\n", " 10 1.39516269e+04\n", " 11 4.07548818e+04\n", " 12 1.23389738e+05\n", " 13 3.63830758e+05\n", " 14 1.10480853e+06\n", " 15 3.28003166e+06\n", " 16 9.98312389e+06\n", " 17 2.97935974e+07\n", " 18 9.08473096e+07\n", " 19 2.72240823e+08\n", " 20 8.31377051e+08\n" ] } ], "prompt_number": 17 } ], "metadata": {} } ] }