Differences between revisions 9 and 145 (spanning 136 versions)
Revision 9 as of 2008-03-11 21:52:26
Size: 2217
Editor: was
Comment:
Revision 145 as of 2021-08-23 15:58:42
Size: 2692
Editor: anewton
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Post code that demonstrates the use of the interact command in Sage here. It should be easy for people to just scroll through and paste examples out of here into their own sage notebooks. This is a collection of pages demonstrating the use of the **interact** command in Sage.
It should be easy to just scroll through and copy/paste examples into Sage notebooks.
If you have suggestions on how to improve interact, add them [[interact/Suggestions|here]]
or email the sage-support mailing list. Of course, your own examples are also welcome!
Line 5: Line 8:
We'll likely restructure and reorganize this once we have some nontrivial content and get a sense of how it is laid out. Documentation links:
Line 7: Line 10:
== Graphics ==   * [[http://doc.sagemath.org/html/en/reference/repl/sage/repl/ipython_kernel/interact.html| interacts in the Jupyter notebook]] (see this page and the two following ones)
  * [[https://github.com/sagemath/sagenb/blob/master/sagenb/notebook/interact.py|interacts in the legacy SageNB notebook]] (many helpful examples)
  * [[https://github.com/sagemath/sagecell/blob/master/interact_compatibility.py|Sage Cell Server implementation]]
  * [[https://github.com/sagemathinc/cocalc/blob/master/src/smc_sagews/smc_sagews/sage_salvus.py#L348|CoCalc Sage worksheet implementation]]
Line 9: Line 15:
== Calculus ==
=== A contour map and 3d plot of two inverse distance functions ===
Examples:
Line 12: Line 17:
{{{  * [[interact/algebra|Algebra]]
 * [[interact/bio|Bioinformatics]]
 * [[interact/calculus|Calculus]]
 * [[interact/complex|Complex Analysis]]
 * [[interact/cryptography|Cryptography]]
 * [[interact/diffeq|Differential Equations]]
 * [[interact/graphics|Drawing Graphics]]
 * [[interact/dynsys|Dynamical Systems]]
 * [[interact/fractal|Fractals]]
 * [[interact/games|Games and Diversions]]
 * [[interact/geometry|Geometry]]
 * [[interact/graph_theory|Graph Theory]]
 * [[interact/groups|Groups]]
 * [[interact/linear_algebra|Linear Algebra]]
 * [[interact/Loop Quantum Gravity|Loop Quantum Gravity]]
 * [[interact/misc|Miscellaneous]]
 * [[interact/number_theory|Number Theory]]
 * [[interact/stats|Statistics/Probability]]
 * [[interact/topology|Topology]]
 * [[interact/web|Web Applications]]

== Explanatory example: Taylor Series ==

This is the code and a mockup animation of the interact command. It defines a slider, seen on top, that can be dragged. Once dragged, it changes the value of the variable "order" and the whole block of code gets evaluated. This principle can be seen in various examples presented on the pages above!

{{{#!sagecell
x = SR.var('x')
x0 = 0
f = sin(x) * e^(-x)
p = plot(f, -1, 5, thickness=2)
dot = point((x0, f(x=x0)), pointsize=80, rgbcolor=(1, 0, 0))
Line 14: Line 50:
def _(q1=(-1,(-3,3)), q2=(-2,(-3,3)),
      cmap=['autumn', 'bone', 'cool', 'copper', 'gray', 'hot', 'hsv',
           'jet', 'pink', 'prism', 'spring', 'summer', 'winter']):
     x,y = var('x,y')
     f = q1/sqrt((x+1)^2 + y^2) + q2/sqrt((x-1)^2+(y+0.5)^2)
     C = contour_plot(f, (-2,2), (-2,2), plot_points=30, contours=15, cmap=cmap)
     show(C, figsize=3, aspect_ratio=1)
     show(plot3d(f, (x,-2,2), (y,-2,2)), figsize=5, viewer='tachyon')
def _(order=slider([1 .. 12])):
  ft = f.taylor(x, x0, order)
  pt = plot(ft, -1, 5, color='green', thickness=2)
  pretty_print(html(r'$f(x)\;=\;%s$' % latex(f)))
  pretty_print(html(r'$\hat{f}(x;%s)\;=\;%s+\mathcal{O}(x^{%s})$' % (x0, latex(ft), order+1)))
  show(dot + p + pt, ymin=-.5, ymax=1)
Line 23: Line 57:
attachment:mountains.png

== Number Theory ==

=== Illustrating of the prime number thoerem ===
{{{
@interact
def _(N=(100,(2..2000))):
    html("<font color='red'>$\pi(x)$</font> and <font color='blue'>$x/(\log(x)-1)$</font> for $x < %s$"%N)
    show(plot(prime_pi, 0, N, rgbcolor='red') + plot(x/(log(x)-1), 5, N, rgbcolor='blue'))
}}}
attachment:primes.png

=== Computing the cuspidal subgroup ===
{{{
html('<h1>Cuspidal Subgroups of Modular Jacobians J0(N)</h1>')
@interact
def _(N=selector([1..8*13], ncols=8, width=10, default=10)):
    A = J0(N)
    print A.cuspidal_subgroup()
}}}

attachment:cuspgroup.png

=== A Charpoly and Hecke Operator Graph ===

{{{
# Note -- in Sage-2.10.3; multiedges are missing in plots; loops are missing in 3d plots
@interact
def f(N = prime_range(11,400),
      p = selector(prime_range(2,12),nrows=1),
      three_d = ("Three Dimensional", False)):
    S = SupersingularModule(N)
    T = S.hecke_matrix(p)
    G = Graph(T, multiedges=True, loops=not three_d)
    html("<h1>Charpoly and Hecke Graph: Level %s, T_%s</h1>"%(N,p))
    show(T.charpoly().factor())
    if three_d:
        show(G.plot3d(), aspect_ratio=[1,1,1])
    else:
        show(G.plot(),figsize=7)
}}}

attachment:heckegraph.png
{{attachment:taylor_series_animated.gif}}

Sage Interactions

This is a collection of pages demonstrating the use of the **interact** command in Sage. It should be easy to just scroll through and copy/paste examples into Sage notebooks. If you have suggestions on how to improve interact, add them here or email the sage-support mailing list. Of course, your own examples are also welcome!

Documentation links:

Examples:

Explanatory example: Taylor Series

This is the code and a mockup animation of the interact command. It defines a slider, seen on top, that can be dragged. Once dragged, it changes the value of the variable "order" and the whole block of code gets evaluated. This principle can be seen in various examples presented on the pages above!

taylor_series_animated.gif

interact (last edited 2021-08-23 15:58:42 by anewton)