Differences between revisions 49 and 60 (spanning 11 versions)
Revision 49 as of 2012-03-16 09:05:38
Size: 59644
Editor: jason
Comment:
Revision 60 as of 2013-04-24 18:55:57
Size: 61772
Editor: travis
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 699: Line 728:
== Vector Calculus, 2-D Motion == == Vector Calculus, 2-D Motion FIXME ==
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 942: Line 971:
http://www.sagenb.org/home/pub/2828/

{{{
http://sagenb.mc.edu/home/pub/97/

{{{#!sagecell
Line 952: Line 981:
## An updated version of this worksheet may be available at http://sagenb.mc.edu
Line 957: Line 985:
var('x,y,z')
Rmin=1/10
Line 959: Line 988:
@interact
def _(f=input_box(default=(x^3-y^3)/(x^2+y^2)),R=slider(0.1/10,Rmax,1/10,2),x0=(0),y0=(0)):
@interact(layout=dict(top=[['f'],['x0'],['y0']],
bottom=[['in_3d','curves','R','graphjmol']]))
def _(f=input_box((x^2-y^2)/(x^2+y^2),width=30,label='$f(x)$'),
        R=slider(Rmin,Rmax,1/10,Rmax,label=',   $R$'),
        x0=input_box(0,width=10,label='$x_0$'),
        y0=input_box(0,width=10,label='$y_0$'),
        curves=checkbox(default=false,label='Show curves'),
        in_3d=checkbox(default=false,label='3D'),
        graphjmol=checkbox(default=true,label='Interactive graph')):
    if graphjmol:
        view_method = 'jmol'
    else:
        view_method = 'tachyon'
Line 968: Line 1008:
    
Line 970: Line 1010:
    limit = plot3d(g,(t,0,2*pi),(r,1/100,R),transformation=cylinder,rgbcolor=(0,1,0))     collapsing_surface = plot3d(g,(t,0,2*pi),(r,1/100,R),transformation=cylinder,rgbcolor=(0,1,0))
Line 972: Line 1012:
    show(surface+limit)
    print html('Enter $(x_0 ,y_0 )$ above and see what happens as R approaches zero.')
    print html('The surface has a limit as $(x,y)$ approaches ('+str(x0)+','+str(y0)+') if the green region collapses to a point')
    G = surface+collapsing_surface
    html('Enter $(x_0 ,y_0 )$ above and see what happens as $ R \\rightarrow 0 $.')
    html('The surface has a limit as $(x,y) \\rightarrow $ ('+str(x0)+','+str(y0)+') if the green region collapses to a point.')

# If checked, add a couple of curves on the surface corresponding to limit as x->x0 for y=x^(3/5),
# and as y->y0 for x=y^(3/5). Should make this more robust but perhaps using
# these relatively obtuse curves could eliminate problems.

    if curves:
        curve_x = parametric_plot3d([x0-t,y0-t^(3/5),f(x=x0-t,y=y0-t^(3/5))],(t,Rmin,Rmax),color='red',thickness=10)
        curve_y = parametric_plot3d([x0+t^(3/5),y0+t,f(x=x0+t^(3/5),y=y0+t)],(t,Rmin,Rmax),color='red',thickness=10)
        R2 = Rmin/4
        G += arrow((x0-Rmin,y0-Rmin^(3/5),f(x=x0-Rmin,y=y0-Rmin^(3/5))),(x0-R2,y0-R2^(3/5),f(x=x0-R2,y=y0-R2^(3/5))),size=30 )
        G += arrow((x0+Rmin^(3/5),y0+Rmin,f(x=x0+Rmin^(3/5),y=y0+Rmin)),(x0+R2^(3/5),y0+R2,f(x=x0+R2^(3/5),y=y0+R2)),size=30 )

        limit_x = limit(f(x=x0-t,y=y0-t^(3/5)),t=0)
        limit_y = limit(f(x=x0+t^(3/5),y=y0+t),t=0)
        text_x = text3d(limit_x,(x0,y0,limit_x))
        text_y = text3d(limit_y,(x0,y0,limit_y))
        G += curve_x+curve_y+text_x+text_y
 
    
        html('The red curves represent a couple of trajectories on the surface. If they do not meet, then')
        html('there is also no limit. (If computer hangs up, likely the computer can not do these limits.)')
        html('\n<center><font color="red">$\lim_{(x,?)\\rightarrow(x_0,y_0)} f(x,y) =%s$</font>'%str(limit_x)+' and <font color="red">$\lim_{(?,y)\\rightarrow(x_0,y_0)} f(x,y) =%s$</font></center>'%str(limit_y))
        
    if in_3d:
        show(G,stereo="redcyan",viewer=view_method)
    else:
        show(G,perspective_depth=true,viewer=view_method)
Line 979: Line 1046:
{{{ {{{#!sagecell
Line 996: Line 1064:
Rmax=2
@interact
def _(f=input_box(default=(x^3-y^3)/(x^2+y^2)),
      N=slider(5,100,1,10,label='Number of Contours'),
      x0=(0),y0=(0)):

    print html('Enter $(x_0 ,y_0 )$ above and see what happens as the number of contour levels increases.')
    print html('A surface will have a limit in the center of this graph provided there is not a sudden change in color there.')
var('x,y,z,u')
@interact(layout=dict(top=[['f'],['x0'],['y0']],
bottom=[['N'],['R']]))
def _(f=input_box(default=(x*y^2)/(x^2+y^4),width=30,label='$f(x)$'),
        N=slider(5,100,1,10,label='Number of Contours'),
        R=slider(0.1,1,0.01,1,label='Radius of circular neighborhood'),
        x0=input_box(0,width=10,label='$x_0$'),
        y0=input_box(0,width=10,label='$y_0$')):

    html('Enter $(x_0 ,y_0 )$ above and see what happens as the number of contour levels $\\rightarrow \infty $.')
    html('A surface will have a limit in the center of this graph provided there is not a sudden change in color there.')

# Need to make certain the min and max contour lines are not huge due to asymptotes. If so, clip and start contours at some reasonable
# values so that there are a nice collection of contours to show around the desired point.
Line 1006: Line 1080:
    surface += parametric_plot([R*cos(u),R*sin(u)],[0,2*pi],color='black')
# Nice to use if f=x*y^2/(x^2 + y^4)
# var('u')
# surface += parametric_plot([u^2,u],[u,-1,1],color='black')
Line 1007: Line 1085:
    show(limit_point+surface)}}} # show(limit_point+surface)
    html.table([[surface],['hi']])

}}}
Line 1016: Line 1097:
{{{ {{{#!sagecell
Line 1069: Line 1150:
{{{
%hide
%auto
{{{#!sagecell
Line 1130: Line 1209:
{{{ {{{#!sagecell
Line 1168: Line 1247:
{{{ {{{#!sagecell
Line 1208: Line 1287:
{{{ {{{#!sagecell
Line 1313: Line 1392:
http://www.sagenb.org/home/pub/2826/

{{{
http://sagenb.mc.edu/home/pub/89/

{{{#!sagecell
Line 1320: Line 1399:
##
Line 1322: Line 1402:
@interact
def _(f=input_box(default=6-4*x^2-y^2*2/5,label='$f(x,y) = $'),
        g=input_box(default=-2+sin(x)+sin(y),label='$g(x,y) = $'),
        u=input_box(default=cos(t),label='$u(t) = $'),
        v=input_box(default=2*sin(t),label='$v(t) = $'),
        a=input_box(default=0,label='$a = $'
),
        b=input_box(default=3*pi/2,label='$b = $'),
@interact(layout=dict(top=[['f','u'],['g','v']],
left=[['a'],['b'],['in_3d'],['smoother']],
bottom=[['xx','yy']]))

def _(f=input_box(default=6-4*x^2-y^2*2/5,label='Top = $f(x,y) = $',width=30),
        g=input_box(default=-2+sin(x)+sin(y),label='Bottom = $g(x,y) = $',width=30),
        u=input_box(default=cos(t),label='   $ x = u(t) = $',width=20),
        v=input_box(default=2*sin(t),label='   $ y = v(t) = $',width=20),
        a=input_box(default=0,label='$a = $',width=10
),
        b=input_box(default=3*pi/2,label='$b = $',width=10),
Line 1331: Line 1413:
        smoother=checkbox(default=false)):         in_3d = checkbox(default=true,label='3D'),
smoother=checkbox(default=false),
        auto_update=true
):
Line 1333: Line 1417:
    ds = sqrt(derivative(u(t),t)^2+derivative(v(t),t)^2)     ds = sqrt(derivative(u,t)^2+derivative(v,t)^2)
Line 1337: Line 1421:
    A = (f(x=u(t),y=v(t))-g(x=u(t),y=v(t)))*ds.simplify_trig().simplify()     A = (f(x=u,y=v)-g(x=u,y=v))*ds.simplify_trig().simplify()
Line 1342: Line 1426:
    line_integral = integral(A,t,a,b) # If you want Sage to try, uncomment the lines below.

# line_integral = integrate(A,t,a,b)
# html(r'<align=center size=+1>Lateral Surface Area = $ %s $ </font>'%latex(line_integral))
Line 1344: Line 1432:
       
    html(r'<h4 align=center>Lateral Surface Area = $ %s $ </h4>'%latex(line_integral))

    html(r'<h4 align=center
>Lateral Surface $ \approx $ %s</h2>'%str(line_integral_approx))

    html(r'<font align=center size=+1>Lateral Surface $ \approx $ %s</font>'%str(line_integral_approx))
Line 1354: Line 1440:
    G += parametric_plot3d([u,v,g(x=u(t),y=v(t))],(t,a,b),thickness=2,color='red')
    G += parametric_plot3d([u,v,f(x=u(t),y=v(t))],(t,a,b),thickness=2,color='red')
    G += parametric_plot3d([u,v,g(x=u,y=v)],(t,a,b),thickness=2,color='red')
    G += parametric_plot3d([u,v,f(x=u,y=v)],(t,a,b),thickness=2,color='red')
Line 1364: Line 1450:
        G += parametric_plot3d([u(w),v(w),s*f(x=u(w),y=v(w))+(1-s)*g(x=u(w),y=v(w))],(s,0,1),thickness=lat_thick,color='yellow',opacity=0.9)
    show(G,spin=true)
        G += parametric_plot3d([u(t=w),v(t=w),s*f(x=u(t=w),y=v(t=w))+(1-s)*g(x=u(t=w),y=v(t=w))],(s,0,1),thickness=lat_thick,color='yellow',opacity=0.9)
             if in_3d:
        
show(G,stereo='redcyan',spin=true)
    else:
        show(G,perspective_depth=true,spin=true)
Line 1372: Line 1462:
{{{ {{{#!sagecell
Line 1393: Line 1483:
{{{ {{{#!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 FIXME

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://sagenb.mc.edu/home/pub/97/

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://sagenb.mc.edu/home/pub/89/

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)