<sagecell> var('x,y,t') density(x,y)=x^2+y r=vector([3*cos(t), 3*sin(t)]) tstart=0 tend=pi t_range=(t,tstart,tend)

r_prime = diff(r,t) ds=diff(r,t).norm() s=integral(ds,*t_range) centroid_x=n(numerical_integral((x*ds)(x=r[0]), tstart, tend)[0]/s) centroid_y=n(numerical_integral((y*ds)(y=r[1]), tstart, tend)[0]/s) dm=(density(x,y)*ds)(x=r[0], y=r[1]) m,error=numerical_integral(dm, tstart, tend) avg_density = m/s

def line_integral(integrand):

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

Mx=line_integral(x*dm) My=line_integral(y*dm) center_mass_x = (Mx/m).n() center_mass_y = (My/m).n() Ix,Iy,I0 = [line_integral(integrand) for integrand in (y^2*dm, x^2*dm,(x^2+y^2)*dm)] Rx = sqrt(Ix/m) Ry = sqrt(Iy/m) R0 = sqrt(I0/m)

table([ [r"Density $\delta(x,y)$", density(x,y)], [r"Curve $\vec r(t)$",r], [r"$t$ range", t_range], [r"$\frac{d\vec r}{dt}$", r_prime], [r"$ds$, a little bit of arclength", ds], [r"$s$ - arclength", s], [r"Centroid $\left(\frac{1}{s}\int x\,ds,\frac{1}{s}\int y\,ds\right)$", (centroid_x,centroid_y)], [r"$dm=\delta ds$ - a little bit of mass", dm], [r"$m=\int \delta ds$ - mass", m], [r"average density $\frac{1}{m}\int ds$" , avg_density.n()], [r"$\int x dm$", Mx], [r"$\int y dm$", My], [r"Center of mass $\left(\frac1m \int xdm, \frac1m \int ydm\right)$", (center_mass_x, center_mass_y)], [r"$I_x = \int y^2 dm$", Ix],[r"$I_y=\int x^2 dm$", Iy],[r"$I_0=\int (x^2+y^2)dm$", I0], [r"$R_x=\sqrt{I_x/m}$", Rx],[r"$R_y=\sqrt{I_y/m}", Ry],[r"$R_0=\sqrt{I_0/m}",R0] ])

opts={'linestyle':'dashed'} p=parametric_plot(r, t_range, thickness=4) p+=point((center_mass_x, center_mass_y),color='red',pointsize=50, legend_label="Center of mass") p+=point((centroid_x, centroid_y), color='green', pointsize=50, legend_label="Centroid") p+=circle((0,0),R0,**opts) p+=line(-3,Rx],[3,Rx,**opts)+line(-3,-Rx],[3,-Rx,**opts) p+=line(Ry,-3],[Ry,3,**opts)+line(-Ry,-3],[-Ry,3,**opts) show(p, aspect_ratio=1) </sagecell>