var( 'x_0','x_1','x_2','x_3','y_0','y_1','y_2','y_3','t','x','y' ) B_x(t) = (1-t)^3*x_0 + 3*(1-t)^2*t*x_1 + 3*(1-t)*t^2*x_2 + t^3*x_3 B_y(t) = (1-t)^3*y_0 + 3*(1-t)^2*t*y_1 + 3*(1-t)*t^2*y_2 + t^3*y_3 B_prime_x(t) = B_x.derivative(t) B_prime_y(t) = B_y.derivative(t) g = (B_x(t) - x)*B_prime_x(t) + (B_y(t) - y)*B_prime_y(t) g = g.expand() print "\n" print "t^0 => ", g.coefficient(t,0), "\n" print "t^1 => ", g.coefficient(t,1), "\n" print "t^2 => ", g.coefficient(t,2), "\n" print "t^3 => ", g.coefficient(t,3), "\n" print "t^4 => ", g.coefficient(t,4), "\n" print "t^5 => ", g.coefficient(t,5)