{{{id=2| def my_range(a, b, N): for x in xrange(1, N+1): yield (a+(x-1)*(b-a)/N, a+x*(b-a)/N) /// }}} {{{id=1| def curve_approx(f,a,b,N): x = var('x') s = var('s') tmp = var('tmp') s = 0 for x in my_range(a,b,N): tmp = 0 for j in list((i(x[1])-i(x[0]))^2 for i in f): tmp = tmp + j tmp = sqrt(tmp) s = s + tmp return s /// }}} {{{id=5| curve_approx((t-1, 3*(t^2)+2, 6*(t^3)-3), 0, 2, 100).n() /// 49.9997944874641 }}} {{{id=3| curve_approx((sin(t)^3, cos(t)^3), 0, pi, 100).n() /// 2.99987682724496 }}} {{{id=7| 2*curve_approx((t, sqrt(1-(t^2))), 0, 1, 100).n() /// 3.14129856716022 }}}