var('x,y,z,t,r')
r=vector([sin(t),cos(t),2*t])
print"1&2=graph"
def tangentVector(r,t):
return(diff(r,t)/norm(diff(r,t)))
def normalVector(r,t):
return(diff(tangentVector(r,t),t)/(norm(diff(tangentVector(r,t),t))))
def binormalVector(r,t):
return(tangentVector(r,t).cross_product(normalVector(r,t)))
def Plottangent(r,t,to,**a):
var('b,to')
r1=r(t=to)
TX=tangentVector(r,t)(t=to)
return parametric_plot3d(list(r1+TX*b),(b,0,1),**a)
def Plotnormal(r,t,to,**a):
var('b,to')
r1=r(t=to)
N=normalVector(r,t)(t=to)
return parametric_plot3d(list(r1+N*b),(b,0,1),**a)
def Plotbinormal(r,t,to,**a):
var('b,to')
r1=r(t=to)
BN=binormalVector(r,t)(t=to)
return parametric_plot3d(list(r1+BN*b),(b,0,1),**a)
A = parametric_plot3d(r(t),(t,-10,10), thickness = 10)
B = Plottangent(r(t),t,-2,thickness=10,color='green')
C = Plotnormal(r(t),t,-2,thickness=10,color='orange')
D = Plotbinormal(r(t),t,-2,thickness=10,color='pink')
E = implicit_plot3d(x==-19.99,(x,-20,20),(y,-20,20),(z,-20,20),color='white')
F = numerical_approx(integral(norm(diff(r,t)),t,0,-2))
print"3.length of curve t=0 to t=-2:",F
r1 = diff(r,t)
r2 = diff(r1,t)
curvature = (norm(r1.cross_product(r2))/((norm(r1))^3))
print"4.curvature at t=-2:",numerical_approx(curvature(t=2))
A+B+C+D+E