Differences between revisions 49 and 55 (spanning 6 versions)
Revision 49 as of 2012-03-16 09:05:38
Size: 59644
Editor: jason
Comment:
Revision 55 as of 2012-04-26 17:01:56
Size: 58516
Editor: jason
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
[[http://aleph.sagemath.org/?z=eJytU02P2yAQvedXjCxFC4njJP06bOOqrdqe9hBVbS-rNMIY1ki2sQDvev99B5zYzq62l5aDPcDw5jHvkQsJmbKCu2MlXKFzImNgMWQxiMbS6xngcOaxD_yQkIJMjpJZd5SlZu5IZHLPjGJZKSyht5sDDcmi46Jx8Mk5o7LWia_GaDPiNMzaMFG1E-aelRaBbwmLM3roqz5oX8qXIK_oe89nmHtuIemhUKWAH6YVIzLHNMKWGV0jxMib-dOEIZLMQpj5kIeQ0yFPSWCZJZJT2Pma12CEa00NPB6pTrMlWyDKDjYjAz98ExEbf3xYF6XP5wsk8FI-Vskm-VZcZhmGYsEvVrZ9P2OIJFStdVCwewEMrLpDqgWr7wTSBVeIgTWQuY3nlkbz0OXxDudbJaxpRJ2TsE1nhatKEu2K7YcvukVxYW8EV1bpGr5r7eCbqnNV38FP67-fg4twc7fGExGdfQy4jLtZjiZDl_jbaUs6Civo0GWDmhva372fbWnwXkpWr2Oy2r5LktWW0pMVUauOprKPe0dsN78x6Fcag0Uh6jfmNpo_scullcGpSlzoiqf-8hpOVXtfjxpMAE_1p5LoptFWOdErw1yQBLvcaEy1oOWFRtGIZQv9QJpSu5EE16U26ZUR-RU2qatUnTL_Z1161vOJZU6EjNcrjaZeHLii-X2zDDZr-g7O-8qL6HW1AaAUNRnaNcneI8bLZMe8wj_OffKInIk3gg9VTShdA9kmbxeX-JODN3jQthUpVS3ILeFxsVDYBJKH4EBBagMKF3icU299UbeVpy4meHABuHyOuCrWb2gAwcnST_4Dcj5Fzv8FOXhiD0u4eSb_HxOSmYw%3D|Interact]]
{{{
{{{#!sagecell
Line 58: Line 57:
[[http://aleph.sagemath.org/?z=eJx1U01v2zAMvedXEAGKUKvsxCm2QxsPG7Dt1A3BgJ2yNnAcOVZrS4akJG5-_WjZzhdWATYkPvKRfJTWIgMl9k6rZSlcrteYcUg5iMpyKJNaOmHiaDJh9wOgVUMMWbhLjExWhbDIFpMnD2SVkaXw6FoYuUuc3AmsmQedeWvDm7XxTssssW6ZFTpxy97No0cev_mvn6hTUTn46pyRq60T343R5irBwzWTh5tuEicsWRdpV7g2IEEqqE2iNgK7ntmRL0vJe4PpsUaZQbKymKUMZo1O92CE2xrVyNYn6H2b2BQCIhm39ZzzdL5hUlVCrXvkHbIBiY6jesT8IXdlgcNZHn3-prc0CZgbkUortYLfWjv4IdVaqg38sc3_lx_wyMJPP-LZmOKGbPBFqiZD6gZrugVLzKjY-nlK5U65r9zLjpPwI_MXIsbgjmMQfQrDIGJk8_G7pIhPjr1u5E4E0eQZade1TAIoB8MWurHDmzbs5OCagR34-ZjeuZuXjKZpOR5yOFyYM5K0yWQoE9bxoQtSZCuEwj7LJVdrJSGtZ1Qt6PW-CpgTT1Vo11SFNT8EvRxUx22_J5XMZpXqQpt4tCq2YtRF5xQ9D9_ouiF7gJfuJBV2-CNZ7LbEShMV4p6jCqKgVUwyNlYf8nNu7JGx4pNwSt8dwT7YyoOgJ8zgFv4eH4lfhVQCF8RNVPR_YU_8vNgkfR1xl8v0VQlrY6Jl7XPh--bBCLUtvSAnYbraba73OKd8jxxq6ik-16amluMzgf4Bb3xSAg%3D%3D|Interact]]
Line 62: Line 59:
{{{ {{{#!sagecell
Line 102: Line 99:
[[http://aleph.sagemath.org/?z=eJx1UsFu4yAQvfcrkHpgSLBrO4pUVUJaqb-wN29qUYITujbYgJN4v34BO-3uoVzm8QYeb2b4obSXlgv_cJQtamAsGWQlhWxHd4RQNFZhX33uH1BaoucDqzGf_NRrTBF-N1rGKIzpljgM0kZ0snyO8Wx8Cu6C7ypp4Q-ZEoPSv1O0yvURuID0KaGp7xexa3KLD8HXxDvlZwZ7Wpd5_nwg5CXJ3uiMGLpwCzhATBLZBkq-QQZO6VDi5kbIW5WBMA7GajPHHXkcyyc3Wg9w25aBQFs0BzqEsbonspjYwrwt8n28k8SF0d5M1rG6oGVePFUFzXNaHpakYMJ0xoaGuTq2baV7J7tgqhYCGlK_7A6oNRY1SOlPveXkazi1Ms3QGQ8tRXCjYSZVGA_MdxRzzWBCgxwri83aH_rl7g7oMr3kgCZv79yyn3aSSznubK7wSlGrTk79kWxPEXeDFL6x3CvDyn-OxUd3x28s8SMfvLrIpB2NhKfWZ5Ge-iYRjnVSQ2LDXaWVV7xrjnLwZ7bWQP7zclHyKi3DnovzbPQ64PhXPMK_NM4_Qg8gVAjOW7oIk78OvNxY|Interact]]
Line 106: Line 101:
{{{ {{{#!sagecell
Line 122: Line 117:
{{{ {{{#!sagecell
Line 142: Line 137:
{{{ {{{#!sagecell
Line 170: Line 165:
{{{ {{{#!sagecell
Line 243: Line 238:
{{{ {{{#!sagecell
Line 256: Line 251:
{{{ {{{#!sagecell
Line 354: Line 349:
{{{ {{{#!sagecell
Line 460: Line 455:
{{{ {{{#!sagecell
Line 462: Line 457:
# polar coordinates
#(x,y)=(u*cos(v),u*sin(v)); (u_range,v_range)=([0..6],[0..2*pi,step=pi/12])

# weird example
(x,y)=(u^2-v^2,u*v+cos(u*v)); (u_range,v_range)=([-5..5],[-5..5])

thickness=4
square_length=.05
Line 465: Line 469:
def trans(x=input_box(u^2-v^2, label="x=",type=SR), \
         y=input_box(u*v+cos(u*v), label="y=",type=SR), \
         t_val=slider(0,10,0.2,6, label="Length of curves"), \
def trans(x=input_box(x, label="x",type=SR),
         y=input_box(y, label="y",type=SR),
Line 470: Line 473:
         u_range=input_box(range(-5,5,1), label="u lines"),
         v_range=input_box(range(-5,5,1), label="v lines")):
     thickness=4
     u_val = min(u_range)+(max(u_range)-min(u_range))*u_percent
     v_val = min(v_range)+(max(v_range)-min(v_range))*v_percent
     t_min = -t_val
     t_max = t_val
     g1=sum([parametric_plot((i,v), (v,t_min,t_max), rgbcolor=(1,0,0)) for i in u_range])
     g2=sum([parametric_plot((u,i), (u,t_min,t_max), rgbcolor=(0,0,1)) for i in v_range])
     vline_straight=parametric_plot((u,v_val), (u,t_min,t_max), rgbcolor=(0,0,1), linestyle='-',thickness=thickness)
     uline_straight=parametric_plot((u_val, v), (v,t_min,t_max),rgbcolor=(1,0,0), linestyle='-',thickness=thickness)
 
     (g1+g2+vline_straight+uline_straight).save("uv_coord.png",aspect_ratio=1, figsize=[5,5], axes_labels=['$u$','$v$'])
     xuv = fast_float(x,'u','v')
     yuv = fast_float(y,'u','v')
     xvu = fast_float(x,'v','u')
     yvu = fast_float(y,'v','u')
     g3=sum([parametric_plot((partial(xuv,i),partial(yuv,i)), (v,t_min,t_max), rgbcolor=(1,0,0)) for i in u_range])
     g4=sum([parametric_plot((partial(xvu,i),partial(yvu,i)), (u,t_min,t_max), rgbcolor=(0,0,1)) for i in v_range])
     uline=parametric_plot((partial(xuv,u_val),partial(yuv,u_val)),(v,t_min,t_max),rgbcolor=(1,0,0), linestyle='-',thickness=thickness)
     vline=parametric_plot((partial(xvu,v_val),partial(yvu,v_val)), (u,t_min,t_max), rgbcolor=(0,0,1), linestyle='-',thickness=thickness)
     (g3+g4+vline+uline).save("xy_coord.png", aspect_ratio=1, figsize=[5,5], axes_labels=['$x$','$y$'])
     print jsmath("x=%s, \: y=%s"%(latex(x), latex(y)))
     print "<html><table><tr><td><img src='cell://uv_coord.png'/></td><td><img src='cell://xy_coord.png'/></td></tr></table></html>"
}}}
         t_val=slider(0,10,0.2,6, label="Length"),
         u_range=input_box(u_range, label="u lines"),
         v_range=input_box(v_range, label="v lines")):

    x(u,v)=x
    y(u,v)=y
    u_val = min(u_range)+(max(u_range)-min(u_range))*u_percent
    v_val = min(v_range)+(max(v_range)-min(v_range))*v_percent
    t_min = -t_val
    t_max = t_val
    uvplot=sum([parametric_plot((i,v), (v,t_min,t_max), color='red',axes_labels=['u','v'],figsize=[5,5]) for i in u_range])
    uvplot+=sum([parametric_plot((u,i), (u,t_min,t_max), color='blue',axes_labels=['u','v']) for i in v_range])
    uvplot+=parametric_plot((u,v_val), (u,t_min,t_max), rgbcolor=(0,0,1), linestyle='-',thickness=thickness)
    uvplot+=parametric_plot((u_val, v), (v,t_min,t_max),rgbcolor=(1,0,0), linestyle='-',thickness=thickness)
    pt=vector([u_val,v_val])
    du=vector([(t_max-t_min)*square_length,0])
    dv=vector([0,(t_max-t_min)*square_length])
    uvplot+=polygon([pt,pt+dv,pt+du+dv,pt+du],color='purple',alpha=0.7)
    uvplot+=line([pt,pt+dv,pt+du+dv,pt+du],color='green')

    T(u,v)=(x,y)
    xuv = fast_float(x,'u','v')
    yuv = fast_float(y,'u','v')
    xvu = fast_float(x,'v','u')
    yvu = fast_float(y,'v','u')
    xyplot=sum([parametric_plot((partial(xuv,i),partial(yuv,i)), (v,t_min,t_max), color='red', axes_labels=['x','y'],figsize=[5,5]) for i in u_range])
    xyplot+=sum([parametric_plot((partial(xvu,i),partial(yvu,i)), (u,t_min,t_max), color='blue') for i in v_range])
    xyplot+=parametric_plot((partial(xuv,u_val),partial(yuv,u_val)),(v,t_min,t_max),color='red', linestyle='-',thickness=thickness)
    xyplot+=parametric_plot((partial(xvu,v_val),partial(yvu,v_val)), (u,t_min,t_max), color='blue', linestyle='-',thickness=thickness)
    jacobian=abs(T.diff().det()).simplify_full()
    t_vals=[0..1,step=t_val*.01]
    vertices=[(x(*c),y(*c)) for c in [pt+t*dv for t in t_vals]]
    vertices+=[(x(*c),y(*c)) for c in [pt+dv+t*du for t in t_vals]]
    vertices+=[(x(*c),y(*c)) for c in [pt+(1-t)*dv+du for t in t_vals]]
    vertices+=[(x(*c),y(*c)) for c in [pt+(1-t)*du for t in t_vals]]
    xyplot+=polygon(vertices,color='purple',alpha=0.7)
    xyplot+=line(vertices,color='green')
    html("$T(u,v)=%s$"%(latex(T(u,v))))
    html("Jacobian: $%s$"%latex(jacobian(u,v)))
    html("A very small region in $xy$ plane is approximately %0.4g times the size of the corresponding region in the $uv$ plane"%jacobian(u_val,v_val).n())
    html.table([[uvplot,xyplot]])}}}
Line 502: Line 521:
{{{ {{{#!sagecell
Line 525: Line 544:
{{{ {{{#!sagecell
Line 552: Line 571:
{{{ {{{#!sagecell
Line 578: Line 597:
{{{ {{{#!sagecell
Line 593: Line 612:
{{{ {{{#!sagecell
Line 639: Line 658:
{{{
from scipy.special.orthogonal import p_roots
{{{#!sagecell
import scipy
import numpy

from scipy.special.orthogonal import p_roots, t_roots, u_roots
Line 649: Line 670:
            'Chebyshev': {'w': 1/sqrt(1-x**2), 'xmin': -1, 'xmax': 1, 'func': t_roots},
                'Chebyshev2': {'w': sqrt(1-x**2), 'xmin': -1, 'xmax': 1, 'func': u_roots},
                'Trapezoid': {'w': 1, 'xmin': -1, 'xmax': 1, 'func': lambda n: (linspace(-1r,1,n), numpy.array([1.0r]+[2.0r]*(n-2)+[1.0r])*1.0r/n)},
                'Simpson': {'w': 1, 'xmin': -1, 'xmax': 1, 'func': lambda n: (linspace(-1r,1,n), numpy.array([1.0r]+[4.0r,2.0r]*int((n-3.0r)/2.0r)+[4.0r,1.0r])*2.0r/(3.0r*n))}}
     'Chebyshev': {'w': 1/sqrt(1-x**2), 'xmin': -1, 'xmax': 1, 'func': t_roots},
     'Chebyshev2': {'w': sqrt(1-x**2), 'xmin': -1, 'xmax': 1, 'func': u_roots},
     'Trapezoid': {'w': 1, 'xmin': -1, 'xmax': 1,          'func': lambda n: (linspace(-1r,1,n), numpy.array([1.0r]+[2.0r]*(n-2)+[1.0r])*1.0r/n)},
     'Simpson': {'w': 1, 'xmin': -1, 'xmax': 1,          'func': lambda n: (linspace(-1r,1,n),
            
numpy.array([1.0r]+[4.0r,2.0r]*int((n-3.0r)/2.0r)+[4.0r,1.0r])*2.0r/(3.0r*n))}}
Line 656: Line 680:
    return polygon([(center-width2,0),(center+width2,0),(center+width2,height),(center-width2,height)],**kwds)     return polygon([(center-width2,0),
        
(center+width2,0),(center+width2,height),(center-width2,height)],**kwds)
Line 660: Line 685:
def weights(n=slider(1,30,1,default=10),f=input_box(default=3*x+cos(10*x)),show_method=["Legendre", "Chebyshev", "Chebyshev2", "Trapezoid","Simpson"]): def weights(n=slider(1,30,1,default=10),f=input_box(default=3*x+cos(10*x),type=SR),
    
show_method=["Legendre", "Chebyshev", "Chebyshev2", "Trapezoid","Simpson"]):
Line 669: Line 695:
    scaled_ff = fast_float(scaled_func)     scaled_ff = fast_float(scaled_func, 'x')
Line 677: Line 703:
    stems = sum(line([(x,0),(x,scaled_ff(x))],rgbcolor=(1-y,1-y,1-y),thickness=2,markersize=6,alpha=y) for x,y in coords_scaled)
    points = sum([point([(x,0),(x,scaled_ff(x))],rgbcolor='black',pointsize=30) for x,_ in coords])
    stems = sum(line([(x,0),(x,scaled_ff(x))],rgbcolor=(1-y,1-y,1-y),
        
thickness=2,markersize=6,alpha=y) for x,y in coords_scaled)
    points = sum([point([(x,0),
        
(x,scaled_ff(x))],rgbcolor='black',pointsize=30) for x,_ in coords])
Line 683: Line 711:
    show(graph,xmin=plot_min,xmax=plot_max)     show(graph,xmin=plot_min,xmax=plot_max,aspect_ratio="auto")
Line 691: Line 719:
    html("$$\sum_{i=1}^{i=%s}w_i\left(%s\\right)= %s\\approx %s =\int_{-1}^{1}%s \,dx$$"%(n,latex(f.subs(x="x_i")), approximation, integral, latex(scaled_func)))     html("$$\sum_{i=1}^{i=%s}w_i\left(%s\\right)= %s\\approx %s =\int_{-1}^{1}%s \,dx$$"%(n,
        
latex(f), approximation, integral, latex(scaled_func)))
Line 704: Line 733:
{{{ {{{#!sagecell
Line 816: Line 845:
{{{ {{{#!sagecell
Line 853: Line 882:
velocity = derivative( position(t) )
acceleration = derivative(velocity(t))
velocity = derivative( position(t), t)
acceleration = derivative(velocity(t), t)
Line 856: Line 885:
speed_deriv = derivative(speed) speed_deriv = derivative(speed, t)
Line 858: Line 887:
dT = derivative(tangent(t)) dT = derivative(tangent(t), t)
Line 861: Line 890:
## dB = derivative(binormal(t)) ## dB = derivative(binormal(t), t)
Line 944: Line 973:
{{{ {{{#!sagecell
Line 979: Line 1008:
{{{ {{{#!sagecell
Line 1016: Line 1045:
{{{ {{{#!sagecell
Line 1069: Line 1098:
{{{
%hide
%auto
{{{#!sagecell
Line 1130: Line 1157:
{{{ {{{#!sagecell
Line 1168: Line 1195:
{{{ {{{#!sagecell
Line 1208: Line 1235:
{{{ {{{#!sagecell
Line 1315: Line 1342:
{{{ {{{#!sagecell
Line 1372: Line 1399:
{{{ {{{#!sagecell
Line 1393: Line 1420:
{{{ {{{#!sagecell

Sage Interactions - Calculus

goto interact main page

Root Finding Using Bisection

by William Stein

bisect.png

Newton's Method

Note that there is a more complicated Newton's method below.

by William Stein

http://sagenb.org/home/pub/2824/

newton.png

A contour map and 3d plot of two inverse distance functions

by William Stein

http://sagenb.org/home/pub/2823/

mountains.png

A simple tangent line grapher

by Marshall Hampton

tangents.png

Numerical integrals with the midpoint rule

by Marshall Hampton

num_int.png

Numerical integrals with various rules

by Nick Alexander (based on the work of Marshall Hampton)

num_int2.png

Some polar parametric curves

by Marshall Hampton. This is not very general, but could be modified to show other families of polar curves.

polarcurves1.png

Function tool

Enter symbolic functions f, g, and a, a range, then click the appropriate button to compute and plot some combination of f, g, and a along with f and g. This is inspired by the Matlab funtool GUI.

funtool.png

Newton-Raphson Root Finding

by Neal Holtz

This allows user to display the Newton-Raphson procedure one step at a time. It uses the heuristic that, if any of the values of the controls change, then the procedure should be re-started, else it should be continued.

newtraph.png

Coordinate Transformations

by Jason Grout

coordinate-transform-1.png coordinate-transform-2.png

Taylor Series

by Harald Schilly

taylor_series_animated.gif

Illustration of the precise definition of a limit

by John Perry

I'll break tradition and put the image first. Apologies if this is Not A Good Thing.

snapshot_epsilon_delta.png

A graphical illustration of sin(x)/x -> 1 as x-> 0

by Wai Yan Pong

sinelimit.png

Quadric Surface Plotter

by Marshall Hampton. This is pretty simple, so I encourage people to spruce it up. In particular, it isn't set up to show all possible types of quadrics.

quadrics.png

The midpoint rule for numerically integrating a function of two variables

by Marshall Hampton

numint2d.png

Gaussian (Legendre) quadrature

by Jason Grout

The output shows the points evaluated using Gaussian quadrature (using a weight of 1, so using Legendre polynomials). The vertical bars are shaded to represent the relative weights of the points (darker = more weight). The error in the trapezoid, Simpson, and quadrature methods is both printed out and compared through a bar graph. The "Real" error is the error returned from scipy on the definite integral.

quadrature1.png quadrature2.png

Vector Calculus, 2-D Motion

By Rob Beezer

A fast_float() version is available in a worksheet

motion2d.png

Vector Calculus, 3-D Motion

by Rob Beezer

Available as a worksheet

motion3d.png

Multivariate Limits by Definition

by John Travis

http://www.sagenb.org/home/pub/2828/

3D_Limit_Defn.png

3D_Limit_Defn_Contours.png

Directional Derivatives

This interact displays graphically a tangent line to a function, illustrating a directional derivative (the slope of the tangent line).

directional derivative.png

3D graph with points and curves

By Robert Marik

This sagelet is handy when showing local, constrained and absolute maxima and minima in two variables. Available as a worksheet

3Dgraph_with_points.png

Approximating function in two variables by differential

by Robert Marik

3D_differential.png

Taylor approximations in two variables

by John Palmieri

This displays the nth order Taylor approximation, for n from 1 to 10, of the function sin(x2 + y2) cos(y) exp(-(x2+y2)/2).

taylor-3d.png

Volumes over non-rectangular domains

by John Travis

http://www.sagenb.org/home/pub/2829/

3D_Irregular_Volume.png

Lateral Surface Area

by John Travis

http://www.sagenb.org/home/pub/2826/

Lateral_Surface.png

Parametric surface example

by Marshall Hampton

parametric_surface.png

Line Integrals in 3D Vector Field

by John Travis

http://www.sagenb.org/home/pub/2827/

3D_Line_Integral.png

interact/calculus (last edited 2020-08-11 14:10:09 by kcrisman)