Sage-Basic

1184 days ago by pub

# Calculus f = 2/(x^2*(x+3)) f 
       
\frac{2}{{{x}^{2}  \left( x + 3 \right)}}
\frac{2}{{{x}^{2}  \left( x + 3 \right)}}
f(10) 
       
\frac{1}{650}
\frac{1}{650}
f(10).n() 
       
0.00153846153846154
0.00153846153846154
[ (a, f(a)) for a in [1..10]] 
       
\begin{array}{l}[\left(1, 
 \frac{1}{2}\right),\\
\left(2, 
 \frac{1}{10}\right),\\
\left(3, 
 \frac{1}{27}\right),\\
\left(4, 
 \frac{1}{56}\right),\\
\left(5, 
 \frac{1}{100}\right),\\
\left(6, 
 \frac{1}{162}\right),\\
\left(7, 
 \frac{1}{245}\right),\\
\left(8, 
 \frac{1}{352}\right),\\
\left(9, 
 \frac{1}{486}\right),\\
\left(10, 
 \frac{1}{650}\right)]\end{array}
\begin{array}{l}[\left(1, 
 \frac{1}{2}\right),\\
\left(2, 
 \frac{1}{10}\right),\\
\left(3, 
 \frac{1}{27}\right),\\
\left(4, 
 \frac{1}{56}\right),\\
\left(5, 
 \frac{1}{100}\right),\\
\left(6, 
 \frac{1}{162}\right),\\
\left(7, 
 \frac{1}{245}\right),\\
\left(8, 
 \frac{1}{352}\right),\\
\left(9, 
 \frac{1}{486}\right),\\
\left(10, 
 \frac{1}{650}\right)]\end{array}
@interact def evalf( xval=(1,10) ): print f(xval) 
       
xval 
CPU time: 0.04 s, Wall time: 0.04 s

Click to the left again to hide and once more to show the dynamic interactive window

plot(f, (x, 1, 20)) 
       
limit(f(x), x=Infinity) 
       
0
0
f.diff(x) 
       
\frac{-4}{{{x}^{3}  \left( x + 3 \right)}} - \frac{2}{{{x}^{2}  {\left( x + 3 \right)}^{2} }}
\frac{-4}{{{x}^{3}  \left( x + 3 \right)}} - \frac{2}{{{x}^{2}  {\left( x + 3 \right)}^{2} }}
f.integrate(x) 
       
{2 \left( \frac{\log \left( x + 3 \right)}{9} - \frac{\log \left( x \right)}{9} - \frac{1}{{3 x}} \right)}
{2 \left( \frac{\log \left( x + 3 \right)}{9} - \frac{\log \left( x \right)}{9} - \frac{1}{{3 x}} \right)}
f.integrate(x,1,10) 
       
{2 \left( \frac{\log \left( 13 \right)}{9} - \frac{\log \left( 10 \right)}{9} - \frac{\log \left( 4 \right) - 3}{9} - \frac{1}{30} \right)}
{2 \left( \frac{\log \left( 13 \right)}{9} - \frac{\log \left( 10 \right)}{9} - \frac{\log \left( 4 \right) - 3}{9} - \frac{1}{30} \right)}
f.integrate(x,1,10).n() 
       
0.350237756299467
0.350237756299467
f.diff(x).integrate(x) 
       
{-2 \left( \frac{{2 \log \left( x + 3 \right)}}{27} - \frac{{2 \log \left( x \right)}}{27} - \frac{{2 x} + 3}{{9 {x}^{2} } + {27 x}} \right)} - {4 \left( \frac{-\left( \log \left( x + 3 \right) \right)}{27} + \frac{\log \left( x \right)}{27} + \frac{{2 x} - 3}{{18 {x}^{2} }} \right)}
{-2 \left( \frac{{2 \log \left( x + 3 \right)}}{27} - \frac{{2 \log \left( x \right)}}{27} - \frac{{2 x} + 3}{{9 {x}^{2} } + {27 x}} \right)} - {4 \left( \frac{-\left( \log \left( x + 3 \right) \right)}{27} + \frac{\log \left( x \right)}{27} + \frac{{2 x} - 3}{{18 {x}^{2} }} \right)}
f.diff(x).integrate(x).simplify_full() 
       
\frac{2}{{x}^{3}  + {3 {x}^{2} }}
\frac{2}{{x}^{3}  + {3 {x}^{2} }}
f.partial_fraction() 
       
\frac{2}{{9 \left( x + 3 \right)}} - \frac{2}{{9 x}} + \frac{2}{{3 {x}^{2} }}
\frac{2}{{9 \left( x + 3 \right)}} - \frac{2}{{9 x}} + \frac{2}{{3 {x}^{2} }}
g=f.taylor(x, 2, 3) g 
       
\frac{1}{10} - \frac{{3 \left( x - 2 \right)}}{25} + \frac{{99 {\left( x - 2 \right)}^{2} }}{1000} - \frac{{349 {\left( x - 2 \right)}^{3} }}{5000}
\frac{1}{10} - \frac{{3 \left( x - 2 \right)}}{25} + \frac{{99 {\left( x - 2 \right)}^{2} }}{1000} - \frac{{349 {\left( x - 2 \right)}^{3} }}{5000}
# How much do the function and the Taylor series differ at x=3? f(3)-g(3) 
       
\frac{1879}{67500}
\frac{1879}{67500}
plot(f, (x,1, 5))+plot(g, (x, 1, 5),color="green") 
       
@interact def differ(xval=(1,5),order=(1,10,1)): g = f.taylor(x,2,order) print "at x=",xval, ", the difference is: ", f(xval)-g(xval) dot = point((xval, f(xval)), pointsize=80) original_f = plot(f, (x,1,5)) taylor_f = plot(g, (x, 1, 5), color="green") show(original_f + taylor_f + dot) 
       
xval 
order 
CPU time: 0.01 s, Wall time: 0.01 s

Click to the left again to hide and once more to show the dynamic interactive window

expand((x-2)^4) 
       
{x}^{4}  - {8 {x}^{3} } + {24 {x}^{2} } - {32 x} + 16
{x}^{4}  - {8 {x}^{3} } + {24 {x}^{2} } - {32 x} + 16
factor(x^4 - 8*x^3 + 24*x^2 - 32*x + 16 ) 
       
{\left( x - 2 \right)}^{4} 
{\left( x - 2 \right)}^{4} 
 
       

Plotting

plot(x^2,(x,-2,2)) 
       

To plot two things simultaneously, either give plot a list:

plot([sin(x), x^2], (x, -pi, pi)) 
       

Or just create the two plots separately and add them together. This idea of adding together graphics works for any graphics you construct in Sage.

plot(x^2, (x, -pi, pi)) + plot(sin(x), (x, -pi, pi)) 
       

You can do cool 3d plots.

 
       
var("x,y") plot3d(4*x*exp(-x^2-y^2), (x, -2, 2), (y, -2, 2),mesh=True) 
       
plot3d(sin(pi*(x^2+y^2))/2,(x,-1,1),(y,-1,1)) 
       
%hide var('u,v') plots = ['Star of David', 'Double Heart', 'Heart', 'Green bowtie', "Boy's Surface", "Maeder's Owl", 'Cross cap'] plots.sort() @interact def _(example=selector(plots, buttons=True), opacity=(1,(0.1,1))): url = '' if example == 'Star of David': f_x = cos(u)*cos(v)*(abs(cos(3*v/4))^500 + abs(sin(3*v/4))^500)^(-1/260)*(abs(cos(4*u/4))^200 + abs(sin(4*u/4))^200)^(-1/200) f_y = cos(u)*sin(v)*(abs(cos(3*v/4))^500 + abs(sin(3*v/4))^500)^(-1/260)*(abs(cos(4*u/4))^200 + abs(sin(4*u/4))^200)^(-1/200) f_z = sin(u)*(abs(cos(4*u/4))^200 + abs(sin(4*u/4))^200)^(-1/200) P = parametric_plot3d([f_x, f_y, f_z], (u, -pi, pi), (v, 0, 2*pi),opacity=opacity) elif example == 'Double Heart': f_x = ( abs(v) - abs(u) - abs(tanh((1/sqrt(2))*u)/(1/sqrt(2))) + abs(tanh((1/sqrt(2))*v)/(1/sqrt(2))) )*sin(v) f_y = ( abs(v) - abs(u) - abs(tanh((1/sqrt(2))*u)/(1/sqrt(2))) - abs(tanh((1/sqrt(2))*v)/(1/sqrt(2))) )*cos(v) f_z = sin(u)*(abs(cos(4*u/4))^1 + abs(sin(4*u/4))^1)^(-1/1) P = parametric_plot3d([f_x, f_y, f_z], (u, 0, pi), (v, -pi, pi),opacity=opacity) elif example == 'Heart': f_x = cos(u)*(4*sqrt(1-v^2)*sin(abs(u))^abs(u)) f_y = sin(u) *(4*sqrt(1-v^2)*sin(abs(u))^abs(u)) f_z = v P = parametric_plot3d([f_x, f_y, f_z], (u, -pi, pi), (v, -1, 1), frame=False, color="red",opacity=opacity) elif example == 'Green bowtie': f_x = sin(u) / (sqrt(2) + sin(v)) f_y = sin(u) / (sqrt(2) + cos(v)) f_z = cos(u) / (1 + sqrt(2)) P = parametric_plot3d([f_x, f_y, f_z], (u, -pi, pi), (v, -pi, pi), frame=False, color="green",opacity=opacity) elif example == "Boy's Surface": f_x = 2/3* (cos(u)* cos(2*v) + sqrt(2)* sin(u)* cos(v))* cos(u) / (sqrt(2) - sin(2*u)* sin(3*v)) f_y = 2/3* (cos(u)* sin(2*v) - sqrt(2)* sin(u)* sin(v))* cos(u) / (sqrt(2) - sin(2*u)* sin(3*v)) f_z = sqrt(2)* cos(u)* cos(u) / (sqrt(2) - sin(2*u)* sin(3*v)) P = parametric_plot3d([f_x, f_y, f_z], (u, -2*pi, 2*pi), (v, 0, pi), plot_points = [90,90], frame=False, color="orange",opacity=opacity) elif example == "Maeder's Owl": f_x = v *cos(u) - 0.5* v^2 * cos(2* u) f_y = -v *sin(u) - 0.5* v^2 * sin(2* u) f_z = 4 *v^1.5 * cos(3 *u / 2) / 3 P = parametric_plot3d([f_x, f_y, f_z], (u, -2*pi, 2*pi), (v, 0, 1),plot_points = [90,90], frame=False, color="purple",opacity=opacity) elif example =='Cross cap': url = 'http://en.wikipedia.org/wiki/Cross-cap' f_x = (1+cos(v))*cos(u) f_y = (1+cos(v))*sin(u) f_z = -tanh((2/3)*(u-pi))*sin(v) P = parametric_plot3d([f_x, f_y, f_z], (u, 0, 2*pi), (v, 0, 2*pi), frame=False, color="red",opacity=opacity) else: print "Bug selecting plot?" return html('<h2>%s</h2>'%example) html('<h3>$\left( %s,\quad %s,\quad %s \\right)$</h3>'%(latex(f_x),latex(f_y),latex(f_z))) show(P) 
       
example 
opacity 
CPU time: 0.02 s, Wall time: 0.70 s

Click to the left again to hide and once more to show the dynamic interactive window

We can do fun things with shapes too!

S = sphere(size=.5, color='yellow') from sage.plot.plot3d.shapes import Cone S += Cone(.5, .5, color='red').translate(0,0,.3) S += sphere((.45,-.1,.15), size=.1, color='white') + sphere((.51,-.1,.17), size=.05, color='black') S += sphere((.45, .1,.15),size=.1, color='white') + sphere((.51, .1,.17), size=.05, color='black') S += sphere((.5,0,-.2),size=.1, color='yellow') var("x,y") plot3d(e^(x/5)*cos(y),(x,-5,5),(y,-5,5),color="red") cape_man = P.scale(.2) + S.translate(1,0,0) cape_man.show(aspect_ratio=[1,1,1]) 
       
contour_plot(y^2 + 1 - x^3 - x, (-pi,pi), (-pi,pi)) 
       
plot_vector_field(( y, (cos(x)-2)*sin(x)), (x,-pi,pi), (y,-pi,pi)) 
       
u,v = var('u,v') f = exp(-(u^2+v^2))*sin(v)*cos(v)*u f 
       
{{{u {e}^{-{v}^{2}  - {u}^{2} } } \cos \left( v \right)} \sin \left( v \right)}
{{{u {e}^{-{v}^{2}  - {u}^{2} } } \cos \left( v \right)} \sin \left( v \right)}
f.gradient() 
       
\left({{{e}^{-{v}^{2}  - {u}^{2} }  \cos \left( v \right)} \sin \left( v \right)} - {{{{2 {u}^{2} } {e}^{-{v}^{2}  - {u}^{2} } } \cos \left( v \right)} \sin \left( v \right)},{{-u {e}^{-{v}^{2}  - {u}^{2} } } {\sin \left( v \right)}^{2} } - {{{{{2 u} v} {e}^{-{v}^{2}  - {u}^{2} } } \cos \left( v \right)} \sin \left( v \right)} + {{u {e}^{-{v}^{2}  - {u}^{2} } } {\cos \left( v \right)}^{2} }\right)
\left({{{e}^{-{v}^{2}  - {u}^{2} }  \cos \left( v \right)} \sin \left( v \right)} - {{{{2 {u}^{2} } {e}^{-{v}^{2}  - {u}^{2} } } \cos \left( v \right)} \sin \left( v \right)},{{-u {e}^{-{v}^{2}  - {u}^{2} } } {\sin \left( v \right)}^{2} } - {{{{{2 u} v} {e}^{-{v}^{2}  - {u}^{2} } } \cos \left( v \right)} \sin \left( v \right)} + {{u {e}^{-{v}^{2}  - {u}^{2} } } {\cos \left( v \right)}^{2} }\right)
plot_vector_field(f.gradient(), (u,-1,1), (v,-1,1))