<sagecell> reset() var('x,y,t') density(x,y,z)=x+y+z r=vector([2*cos(t), 2*sin(t), t])

  1. r=(vector([0,2,0])-vector([1,1,3]))*t+vector([1,1,3])

tstart=0 tend=3*pi t_range=(t,tstart,tend)

  1. Let's make a function right off to evaluate an integral over this curve.

def line_integral(integrand):

    return RR(numerical_integral((integrand).subs(x=r[0], y=r[1],z=r[2]), tstart, tend)[0])

r_prime = diff(r,t) ds=diff(r,t).norm() s=line_integral(ds) centroid_x=line_integral(x*ds)/s centroid_y=line_integral(y*ds)/s centroid_z=line_integral(z*ds)/s dm=density(x,y,z)*ds m=line_integral(dm) avg_density = m/s

moment_about_yz_plane=line_integral(x*dm) moment_about_xz_plane=line_integral(y*dm) moment_about_xy_plane=line_integral(z*dm) center_mass_x = moment_about_yz_plane/m center_mass_y = moment_about_xz_plane/m center_mass_z = moment_about_xy_plane/m

Ix=line_integral((y^2+z^2)*dm) Iy=line_integral((x^2+z^2)*dm) Iz=line_integral((x^2+y^2)*dm) Rx = sqrt(Ix/m) Ry = sqrt(Iy/m) Rz = sqrt(Iz/m)

from sage.misc.html import math_parse as mp

table([ [mp(r"Density $\delta(x,y)$"), density], [mp(r"Curve $\vec r(t)$"),r], [mp(r"$t$ range"), t_range], [mp(r"$\vec r'(t)$"), r_prime], [mp(r"$ds$, a little bit of arclength"), ds], [mp(r"$s$ - arclength"), s], [mp(r"Centroid (constant density) $\left(\frac{1}{m}\int x\,ds,\frac{1}{m}\int y\,ds, \frac{1}{m}\int z\,ds\right)$"), (centroid_x,centroid_y,centroid_z)], [mp(r"$dm=\delta ds$ - a little bit of mass"), dm], [mp(r"$m=\int \delta ds$ - mass"), m], [mp(r"average density $\frac{1}{m}\int ds$") , avg_density.n()], [mp(r"$M_{yz}=\int x dm$ - moment about $yz$ plane"), moment_about_yz_plane], [mp(r"$M_{xz}=\int y dm$ - moment about $xz$ plane"), moment_about_xz_plane], [mp(r"$M_{xy}=\int z dm$ - moment about $xy$ plane"), moment_about_xy_plane], [mp(r"Center of mass $\left(\frac1m \int xdm, \frac1m \int ydm, \frac1m \int z dm\right)$"), (center_mass_x, center_mass_y, center_mass_z)], [mp(r"$I_x = \int (y^2+z^2) dm$"), Ix],[mp(r"$I_y=\int (x^2+z^2) dm$"), Iy],[mp(r"$I_z=\int (x^2+y^2)dm$"), Iz], [mp(r"$R_x=\sqrt{I_x/m}$"), Rx],[mp(r"$R_y=\sqrt{I_y/m}"), Ry],[mp(r"$R_z=\sqrt{I_z/m}"),Rz] ])

p=parametric_plot(r, t_range, thickness=4) p+=point((center_mass_x, center_mass_y,center_mass_z),color='red',pointsize=50) p+=point((centroid_x, centroid_y,centroid_z), color='green', pointsize=50) p+=line(0,0,-sqrt],[0,0,sqrt,radius=Rz,opacity=0.1) p+=line(-sqrt,0,0],[sqrt,0,0,radius=Rx,opacity=0.1,color='green') p+=line(0,-sqrt,0],[0,sqrt,0,radius=Ry,opacity=0.1,color='red')

show(p, aspect_ratio=1,axes=True) </sagecell>