with(linalg):f := (x,y) -> x/y: 'f(x,y)' = f(x,y); r := vector([6,-2]): v := vector([-1,3])/sqrt(10): Dvf := Limit('(f(r+h*v)-f(r))/h',h=0); p := evalm(r+h*v): Dvf := Limit((f(p[1],p[2])-f(r[1],r[2]))/h,h=0); Dvf := Limit(simplify((f(p[1],p[2])-f(r[1],r[2]))/h),h=0); Dvf := limit((f(p[1],p[2])-f(r[1],r[2]))/h,h=0); formula := innerprod(grad(f(x,y),[x,y]), v); answer := subs({x=6,y=-2},formula); g := (x,y) -> sqrt(x^2+2*y): 'g(x,y)' = g(x,y); grad_g := grad(g(x,y),[x,y]); direction := map(simplify,subs({x=4,y=10},evalm(grad_g))); rate := sqrt((2/3)^2+(1/6)^2); z := exp(-((x-1)^2+y^2)/2)+ 2*exp(-((x-2)^2+(y+2)^2)/2); plot3d(z,x=-4..4,y=-4..4,axes=frame); grad_z := grad(z,[x,y]): grad_z := map(simplify, subs({x=2,y=0},evalm(grad_z))); u := vector([grad_z[1],grad_z[2],innerprod(grad_z,grad_z)]); theta := angle(u, vector([grad_z[1],grad_z[2],0])); theta_approx := evalf(theta); evalf(convert(theta_approx,degrees),4); |\^/| Maple V Release 5.1 (WMI MVR5.1 Campus Wide License)