Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
0Activity
0 of .
Results for:
No results containing your search query
P. 1
Python

Python

Ratings: (0)|Views: 0 |Likes:
Published by filipe_freire_2

More info:

Published by: filipe_freire_2 on Jun 23, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/21/2012

pdf

text

original

 
Notes and Examples for Python
For Linux the packages numpy, scipy, Gnuplot, and matplotlib should be in usr/lib/Python2.x/site-packages.1-d Arrays,Matrices,Numerical Integration,Numerical Solution of ODEs,Curve Fitting ,Reading and Writing Array files,Finding zeros of functions,Graphing with Gnuplot,Fast Fourier Transform, Waveforms: Square, Sawtooth,Time Delay,Noise,Create Postscript Graph,Simple Plots with matplotlib,Plot Functions and Data,Interactive Plots with matplotlib,Plotting with log or linear axes, SubplotsInstructions for installing a python-based system for scientific/mathematic use,hereGood references:http://www.scipy.org/Cookbook , for example, to learn plotting:http://www.scipy.org/Cookbook/Matplotlib, for gnuplot, see demo.py and test.py in the gnuplot-pydirectoryTo learn about packages, subpackages, and routines, run python from a terminal, then follow theseexample commands to learn about the scipy package:import scipy {loads package}help(scipy)import scipy.integrate {loads subpackage}help(scipy.integrate)help(scipy.integrate.quad)import scipy.optimize {loads subpackage}help(scipy.optimize)
forLinux 1st line of program is:#! /usr/bin/env python {and change permissions to include execute}May be useful to run as:
from scipy import *from numpy import * # This not necessary since scipy loads numpyfrom numpy.random import * # If need random number generatorimport Gnuplot # If use gnuplot for graphsfrom matplotlib import * # If use matplotlib for graphsfrom pylab import *
Note, if using Gnuplot.py, then gnuplot must also be installed.http://www.gnuplot.info
To enter values interactively
use raw_input(text). (Doesn't work on emacs!! Use Eric)
x = float(raw_input('Enter x value: ')) #converts text input into real.
1-d Arrays
 
x = arange(0,10) # To make integer array vector of x values.x = linspace(0,10,101) # To make more general array.y = x**2x=zeros(100,float) # creates x array filled with 0
Example: Matrices
from scipy import *from scipy.linalg import *from numpy.random import randn#Example of using 2-dim arrays as matrices#Nr=6;Nc=4 # Number of rows and columnsNr=4;Nc=Nr # Square matrix A=zeros([Nr,Nc]) # Makes a Nr by Nc matrix of zeros#A=ones([Nr,Nc])print A for i in arange(0,Nr):for j in arange(0,Nc):A[i,j]=i+jprint A print ' Now make array of random numbers and do some linear algebra functions' A = randn(Nr,Nc)B = trace(A) #Really only for square matrixC = det(A) #determinantD = inv(A) #inverseprint A print 'Trace = ',B,' determinant = ', Cprint Dprint 'Now should get identity matrix from A x Inv(A)'print dot(A,D) #This does matrix multiplication as opposed to element
Example: To include Time Delay
import timetime.sleep(2.0) #Causes 2.0 second delay.
Example: Numerical integration
from scipy import *from scipy.integrate import quad"""Example of integration of a function using quadDo the exponential function."""result = quad(lambda x: exp(-x),0,5) #Uses anonymous function, lambdadisp(['Numerical result: ',result])analytic = 1-exp(-5)disp(['Analytic result: ',analytic])
Example: Numerical solution of ODEs
from scipy import *from scipy.integrate import odeintfrom pylab import *"""Example of solving system of differential equations using odeint.
 
Do the damped oscillator, b is damping coefficient"""def damped_osc(u,t,b): #defines the system of odesx=u[0]; v=u[1]return(v,-x-b*v) #the derivatives of ut = linspace(0,30,400)u0 = [1,0]b = 0.3u=odeint(damped_osc,u0,t,args=(b,)) #b is in tuple, needs commafigure(1)plot(t,u) #plots both columns of uxlabel('Time'); title('Damped Oscillator')figure(2)plot(u[:,0],u[:,1])title('Phase-space'); xlabel('Position'); ylabel('Velocity')show()
OR try
from scipy import *from scipy.integrate import odefrom pylab import *"""Example using ode integrator, Lorenz equations"""def foo(t,y,p): #system of 1st order odesigma=p[0]; beta=p[1]; rho=p[2]dy = zeros([3])dy[0] = sigma*(y[1]-y[0])dy[1] = y[0]*(rho - y[2])-y[1]dy[2] = y[0]*y[1]-beta*y[2]return dyt0 = 0; tEnd = 100.0; dt = 0.01y0 = [5,-5,10] #Initial conditionsY=[]; T=[] #create empty listsp = [10.0,8.0/3.0,28.0] #parameters for odes#Set up integrator 'vode'. Non-stiff use Adams, stiff use bdfr = ode(foo).set_integrator('vode',method='adams')#r = ode(foo).set_integrator('vode',method='bdf')#Maybe future version of scipy will have Runge-Kutta methods dopri5 and dop853#r = ode(foo).set_integrator('dopri5')r.set_f_params(p).set_initial_value(y0,t0) while r.successful() and r.t+dt < tEnd:r.integrate(r.t+dt)Y.append(r.y) #makes a list of 1d arraysT.append(r.t)Y = array(Y) #convert from list to 2d arraysubplot(2,1,1)plot(T,Y)subplot(2,1,2)plot(Y[:,0],Y[:,2])show()
Example: Curve-fitting 

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->