SciPy2008 examples

From SymPy

Jump to: navigation, search

We couldn't go to SciPy2008, so we'll use these examples in some of our future presentation about sympy.

Besides EuroSciPy2008_examples we can also add the following:


Contents


Numerical Integration

One-liner: <source lang="python"> In [1]: Integral(sin(1/x), (x, 0, 1)).transform(x, 1/x).evalf(quad="osc") Out[1]: 0.504067061906928 </source>

Detailed steps: <source lang="python"> In [1]: e = Integral(sin(1/x), (x, 0, 1))

In [2]: e Out[2]: 1 ⌠ ⎮ ⎛1⎞ ⎮ sin⎜─⎟ dx ⎮ ⎝x⎠ ⌡ 0

In [3]: e.transform(x, 1/x) Out[3]: ∞ ⌠ ⎮ sin(x) ⎮ ────── dx ⎮ 2 ⎮ x ⌡ 1

In [4]: e.transform(x, 1/x).evalf(quad="osc") Out[4]: 0.504067061906928

In [5]: e.transform(x, 1/x).evalf(40, quad="osc") Out[5]: 0.504067061906928371989856117741148229625 </source>

Numerical Summation

It works for quickly convergent series: <source lang="python"> >>> Sum((2*n**3+1)/factorial(2*n+1), (n, 0, oo)).evalf(1000) 1.652941212640472981900739198325231452667553042183503755040875167115365207002854 77118747045228498906167383807929789641305010501152379438610698437723585110992132 48084094702974173459412697848275449887634172363108079619463778928999727406730383 57199917316237084560028761604522443350080698146577601430156851863096927635778314 88062076063878821591479918536110213351662499708829217876455721476648748647659612 72185645529206548668821178422050797739640819097159967650626965341984007864872054 71812636349043868903125201137904072881174848578339123166638219650148561227868156 80738028532199588253087223349198266285072706513063361416254124560602074234127566 32410682925916059738774890040375938723705381947697574581499793671926177145966891 33271029543103694271529306325574205636661264488189585018019114290293809963899283 90070084916840020684307314192359067368407129281676733087681860839859648692202393 41225132757138225024317713163659365040869159437217031345698535519950979370407285 20746689993201707235774309731234398779684 </source> And slowly convergent (polynomial rate) series: <source lang="python"> >>> Sum(n/(n**3+9), (n, 1, oo)).evalf(1000) 0.572085799521274038128017585783700438130384580104388084551740050974925897207818 98311108798290436060631856133690814143188244308005734075188518963064503611766727 51975068157408446403629166383226981406071893503958716023483643384018192761835469 62523276298459470487661766581612076405188965696292563597978253602870433142733727 49456336446570299555622044023184339325169717382623431811996989431779585758743983 22657597287758887471781904704253408614010644740045975234864559308102917760390712 09858646969081826648914656188008932364779703396061488751933093758374187906616981 59935678929938625204474297765447285426340636797285832219467575552277926359443579 66448919469783095915588358346137013995560248274612167594346431054534148807909065 87026974372235853955946903025185089032108053973102877186484901797732760077569507 62103250578219908729410121672429672442237773445952371487389948096056503557145790 85480428757289997024542130099656261002247342979582278399887560907241960471987518 890694794314366435375093779451882224094794 </source>

Numerical Simplification

<source lang="python"> In [4]: float(1/7) Out[4]: 0.142857142857

In [5]: nsimplify(_) Out[5]: 1/7

In [6]: float(1/81) Out[6]: 0.0123456790123

In [7]: nsimplify(_) Out[7]: 1/81

>>> nsimplify(pi, tolerance=0.01) 22/7 >>> nsimplify(pi, tolerance=0.001) 355/113 >>> nsimplify(0.33333, tolerance=1e-4) 1/3 >>> nsimplify(4.71, [pi], tolerance=0.01) 3*pi/2 >>> nsimplify(2.0**(1/3.), tolerance=0.001) 635/504 >>> nsimplify(2.0**(1/3.), tolerance=0.001, full=True) 2**(1/3)

>>> pprint(nsimplify(cos(atan('1/3'))))

   ____

3*\/ 10


  10

>>> pprint(nsimplify(4/(1+sqrt(5)), [GoldenRatio])) -2 + 2*GoldenRatio

>>> pprint(nsimplify(2 + exp(2*atan('1/4')*I))) 49 8*I -- + --- 17 17

>>> pprint(nsimplify((1/(exp(3*pi*I/5)+1))))

            _____________
           /         ___
          /        \/ 5

1/2 - I* / 1/4 + -----

       \/            10

>>> pprint(nsimplify(I**I, [pi]))

-pi
---
 2

e

>>> pprint(nsimplify(Sum(1/n**2, (n, 1, oo)), [pi]))

 2

pi ---

6

>>> pprint(nsimplify(gamma('1/4')*gamma('3/4'), [pi]))

    ___

pi*\/ 2 </source>

Curvilinear Coordinates

<source lang="python"> $ python examples/advanced/curvilinear_coordinates.py ________________________________________________________________________________ Transformation: polar ρ = ρ⋅cos(φ) φ = ρ⋅sin(φ) Jacobian: ⎡cos(φ) -ρ⋅sin(φ)⎤ ⎢ ⎥ ⎣sin(φ) ρ⋅cos(φ) ⎦ metric tensor g_{ij}: ⎡1 0 ⎤ ⎢ ⎥ ⎢ 2⎥ ⎣0 ρ ⎦ inverse metric tensor g^{ij}: ⎡1 0 ⎤ ⎢ ⎥ ⎢ 1 ⎥ ⎢0 ──⎥ ⎢ 2⎥ ⎣ ρ ⎦ det g_{ij}:

2

ρ Laplace:

                2                           

d d ──(f(ρ, φ)) ─────(f(ρ, φ)) 2 dρ dφ dφ d ─────────── + ────────────── + ─────(f(ρ, φ))

    ρ               2         dρ dρ         
                   ρ                        

________________________________________________________________________________ Transformation: cylindrical ρ = ρ⋅cos(φ) φ = ρ⋅sin(φ) z = z Jacobian: ⎡cos(φ) -ρ⋅sin(φ) 0⎤ ⎢ ⎥ ⎢sin(φ) ρ⋅cos(φ) 0⎥ ⎢ ⎥ ⎣ 0 0 1⎦ metric tensor g_{ij}: ⎡1 0 0⎤ ⎢ ⎥ ⎢ 2 ⎥ ⎢0 ρ 0⎥ ⎢ ⎥ ⎣0 0 1⎦ inverse metric tensor g^{ij}: ⎡1 0 0⎤ ⎢ ⎥ ⎢ 1 ⎥ ⎢0 ── 0⎥ ⎢ 2 ⎥ ⎢ ρ ⎥ ⎢ ⎥ ⎣0 0 1⎦ det g_{ij}:

2

ρ Laplace:

                   2                                                     

d d ──(f(ρ, φ, z)) ─────(f(ρ, φ, z)) 2 2 dρ dφ dφ d d ────────────── + ───────────────── + ─────(f(ρ, φ, z)) + ─────(f(ρ, φ, z))

     ρ                   2          dρ dρ               dz dz            
                        ρ                                                

________________________________________________________________________________ Transformation: spherical ρ = ρ⋅cos(φ)⋅sin(θ) θ = ρ⋅sin(φ)⋅sin(θ) φ = ρ⋅cos(θ) Jacobian: ⎡cos(φ)⋅sin(θ) ρ⋅cos(φ)⋅cos(θ) -ρ⋅sin(φ)⋅sin(θ)⎤ ⎢ ⎥ ⎢sin(φ)⋅sin(θ) ρ⋅cos(θ)⋅sin(φ) ρ⋅cos(φ)⋅sin(θ) ⎥ ⎢ ⎥ ⎣ cos(θ) -ρ⋅sin(θ) 0 ⎦ metric tensor g_{ij}: ⎡ 2 2 2 2 2 2 2 ⎤ ⎢cos (θ) + cos (φ)⋅cos (θ)⋅tan (θ) + cos (θ)⋅sin (φ)⋅tan (θ) 0 0 ⎥ ⎢ ⎥ ⎢ 2 ⎥ ⎢ 0 ρ 0 ⎥ ⎢ ⎥ ⎢ 2 2 2 2 2 2 2 ⎥ ⎣ 0 0 ρ ⋅cos (φ)⋅sin (θ) + ρ ⋅cos (θ)⋅sin (φ)⋅tan (θ)⎦ metric tensor g_{ij} specified by hand: ⎡1 0 0 ⎤ ⎢ ⎥ ⎢ 2 ⎥ ⎢0 ρ 0 ⎥ ⎢ ⎥ ⎢ 2 2 ⎥ ⎣0 0 ρ ⋅sin (θ)⎦ inverse metric tensor g^{ij}: ⎡1 0 0 ⎤ ⎢ ⎥ ⎢ 1 ⎥ ⎢0 ── 0 ⎥ ⎢ 2 ⎥ ⎢ ρ ⎥ ⎢ ⎥ ⎢ 1 ⎥ ⎢0 0 ──────────⎥ ⎢ 2 2 ⎥ ⎣ ρ ⋅sin (θ)⎦ det g_{ij}:

4    2   

ρ ⋅sin (θ) Laplace:

  2                                      2                                                         
 d                   d                  d                 d                                        

─────(f(ρ, θ, φ)) 2⋅──(f(ρ, θ, φ)) ─────(f(ρ, θ, φ)) ──(f(ρ, θ, φ))⋅cos(θ) 2 dθ dθ dρ dφ dφ dθ d ───────────────── + ──────────────── + ───────────────── + ───────────────────── + ─────(f(ρ, θ, φ))

        2                 ρ                2    2                2                dρ dρ            
       ρ                                  ρ ⋅sin (θ)            ρ ⋅sin(θ)                          

________________________________________________________________________________ Transformation: rotating disk t = t x = x⋅cos(t⋅w) - y⋅sin(t⋅w) y = x⋅sin(t⋅w) + y⋅cos(t⋅w) z = z Jacobian: ⎡ 1 0 0 0⎤ ⎢ ⎥ ⎢-w⋅x⋅sin(t⋅w) - w⋅y⋅cos(t⋅w) cos(t⋅w) -sin(t⋅w) 0⎥ ⎢ ⎥ ⎢w⋅x⋅cos(t⋅w) - w⋅y⋅sin(t⋅w) sin(t⋅w) cos(t⋅w) 0⎥ ⎢ ⎥ ⎣ 0 0 0 1⎦ metric tensor g_{ij}: ⎡ 2 2 2 2 ⎤ ⎢1 + w ⋅x + w ⋅y -w⋅y w⋅x 0⎥ ⎢ ⎥ ⎢ -w⋅y 1 0 0⎥ ⎢ ⎥ ⎢ w⋅x 0 1 0⎥ ⎢ ⎥ ⎣ 0 0 0 1⎦ inverse metric tensor g^{ij}: ⎡ 1 w⋅y -w⋅x 0⎤ ⎢ ⎥ ⎢ 2 2 2 ⎥ ⎢w⋅y 1 + w ⋅y -x⋅y⋅w 0⎥ ⎢ ⎥ ⎢ 2 2 2 ⎥ ⎢-w⋅x -x⋅y⋅w 1 + w ⋅x 0⎥ ⎢ ⎥ ⎣ 0 0 0 1⎦ det g_{ij}: 1 Laplace:

              2                                  2                          2                          2                          2                       

⎛ 2 2⎞ d ⎛ 2 2⎞ d d d d ⎝1 + w ⋅x ⎠⋅─────(f(t, x, y, z)) + ⎝1 + w ⋅y ⎠⋅─────(f(t, x, y, z)) + w⋅y⋅─────(f(t, x, y, z)) + w⋅y⋅─────(f(t, x, y, z)) - w⋅x⋅─────(f(t, x, y, z)) - w⋅x⋅

           dy dy                              dx dx                      dx dt                      dt dx                      dy dt                      
  2                             2                             2                      2                      2                
 d                         2   d                         2   d                      d                      d                 

─────(f(t, x, y, z)) - x⋅y⋅w ⋅─────(f(t, x, y, z)) - x⋅y⋅w ⋅─────(f(t, x, y, z)) + ─────(f(t, x, y, z)) + ─────(f(t, x, y, z)) dt dy dy dx dx dy dt dt dz dz ________________________________________________________________________________ Transformation: parabolic σ = σ⋅τ

    2    2
   τ    σ 

τ = ── - ──

   2    2 

Jacobian: ⎡τ σ⎤ ⎢ ⎥ ⎣-σ τ⎦ metric tensor g_{ij}: ⎡ 2 2 ⎤ ⎢σ + τ 0 ⎥ ⎢ ⎥ ⎢ 2 2⎥ ⎣ 0 σ + τ ⎦ inverse metric tensor g^{ij}: ⎡ 1 ⎤ ⎢─────── 0 ⎥ ⎢ 2 2 ⎥ ⎢σ + τ ⎥ ⎢ ⎥ ⎢ 1 ⎥ ⎢ 0 ───────⎥ ⎢ 2 2⎥ ⎣ σ + τ ⎦ det g_{ij}:

  2  2    4    4

2⋅σ ⋅τ + σ + τ Laplace:

  2                2                                                                                  
 d                d                 ⎛     2      3⎞ d                   ⎛     2      3⎞ d             

─────(f(σ, τ)) ─────(f(σ, τ)) ⎝4⋅σ⋅τ + 4⋅σ ⎠⋅──(f(σ, τ)) ⎝4⋅τ⋅σ + 4⋅τ ⎠⋅──(f(σ, τ)) dσ dσ dτ dτ dσ dτ ────────────── + ────────────── + ───────────────────────────────── + ─────────────────────────────────

   2    2           2    2       ⎛ 2    2⎞ ⎛   2  2      4      4⎞   ⎛ 2    2⎞ ⎛   2  2      4      4⎞
  σ  + τ           σ  + τ        ⎝σ  + τ ⎠⋅⎝4⋅σ ⋅τ  + 2⋅σ  + 2⋅τ ⎠   ⎝σ  + τ ⎠⋅⎝4⋅σ ⋅τ  + 2⋅σ  + 2⋅τ ⎠

________________________________________________________________________________ Transformation: elliptic μ = a⋅cos(ν)⋅cosh(μ) ν = a⋅sin(ν)⋅sinh(μ) Jacobian: ⎡a⋅cos(ν)⋅sinh(μ) -a⋅cosh(μ)⋅sin(ν)⎤ ⎢ ⎥ ⎣a⋅cosh(μ)⋅sin(ν) a⋅cos(ν)⋅sinh(μ) ⎦ metric tensor g_{ij}: ⎡ 2 2 2 2 2 2 ⎤ ⎢a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν) 0 ⎥ ⎢ ⎥ ⎢ 2 2 2 2 2 2 ⎥ ⎣ 0 a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν)⎦ inverse metric tensor g^{ij}: ⎡ 2 2 2 2 2 2 ⎢ a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν) ⎢────────────────────────────────────────────────────────────────────────────────── 0 ⎢ 4 2 2 2 2 4 4 4 4 4 4 ⎢2⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν) ⎢ ⎢ 2 2 2 2 2 2 ⎢ a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν) ⎢ 0 ────────────────────────────────────────────────────────────────────── ⎢ 4 2 2 2 2 4 4 4 4 ⎣ 2⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh

           ⎤
           ⎥
           ⎥
           ⎥
           ⎥
           ⎥
           ⎥
           ⎥

────────────⎥ 4 4 ⎥

(μ)⋅sin (ν)⎦

det g_{ij}:

  4    2        2       2        2       4    4        4       4     4       4   

2⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν) Laplace:

                                                          2                                                                                    2          
           ⎛ 2    2        2       2     2       2   ⎞   d                                      ⎛ 2    2        2       2     2       2   ⎞   d           
           ⎝a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν)⎠⋅─────(f(μ, ν))                           ⎝a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν)⎠⋅─────(f(μ, ν))
                                                       dμ dμ                                                                                dν dν         

────────────────────────────────────────────────────────────────────────────────── + ──────────────────────────────────────────────────────────────────────

  4    2        2       2        2       4    4        4       4     4       4         4    2        2       2        2       4    4        4       4     

2⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν) 2⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh


              ⎛ 2    2        2       2     2       2   ⎞ ⎛   4    4        3                 4     3       4                 4    2        3       2     
              ⎝a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν)⎠⋅⎝4⋅a ⋅cos (ν)⋅sinh (μ)⋅cosh(μ) + 4⋅a ⋅cosh (μ)⋅sin (ν)⋅sinh(μ) + 4⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅s
                                                                                                                                                          

──────────── + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 4 4 ⎛ 4 2 2 2 2 4 4 4 4 4 4 ⎞ ⎛ 4 2 2 2 2

(μ)⋅sin (ν)                ⎝2⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν)⎠⋅⎝4⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + 


           4    2       2        3           ⎞ d             ⎛ 2    2        2       2     2       2   ⎞ ⎛     4    3        4                4     4     

inh(μ) + 4⋅a ⋅cos (ν)⋅sin (ν)⋅sinh (μ)⋅cosh(μ)⎠⋅──(f(μ, ν)) ⎝a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin (ν)⎠⋅⎝- 4⋅a ⋅cos (ν)⋅sinh (μ)⋅sin(ν) + 4⋅a ⋅cosh (μ)⋅s

                                               dμ                                                                                                         

─────────────────────────────────────────────────────────── + ─────────────────────────────────────────────────────────────────────────────────────────────

  4    4        4         4     4       4   ⎞                             ⎛   4    2        2       2        2       4    4        4       4     4       4

2⋅a ⋅cos (ν)⋅sinh (μ) + 2⋅a ⋅cosh (μ)⋅sin (ν)⎠ ⎝2⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + a ⋅cos (ν)⋅sinh (μ) + a ⋅cosh (μ)⋅sin


 3                4     2       3        2                4    3        2        2          ⎞ d          

in (ν)⋅cos(ν) - 4⋅a ⋅cosh (μ)⋅sin (ν)⋅sinh (μ)⋅cos(ν) + 4⋅a ⋅cos (ν)⋅cosh (μ)⋅sinh (μ)⋅sin(ν)⎠⋅──(f(μ, ν))

                                                                                              dν         

──────────────────────────────────────────────────────────────────────────────────────────────────────────

  ⎞ ⎛   4    2        2       2        2         4    4        4         4     4       4   ⎞             

(ν)⎠⋅⎝4⋅a ⋅cos (ν)⋅cosh (μ)⋅sin (ν)⋅sinh (μ) + 2⋅a ⋅cos (ν)⋅sinh (μ) + 2⋅a ⋅cosh (μ)⋅sin (ν)⎠ </source>

Personal tools