Computing Line Integrals with Maple restart:with(Student[VectorCalculus]): We will set the default coordinates SetCoordinates(cartesian[x,y]); Let's take the familiar circular vector field and integrate over half an ellipse. F := <-y,x>; VF := VectorField(F); C := <3*cos(2*t), 2*sin(2*t)>; trange := t=0..Pi/2; The process of integrating the line integral over the parameterized curve can be broken into 6 steps: 1) Plot a graph of the vector field and the parameterized curve. 2) Substitute the parameterization of the path into the field to make the field a vector valued function of the parameter. 3) Take the derivative of the path with respect to the parameter. 4) Evaluate the dot product and simplify. This reduces the problem to an integral over an interval. 5) Set up the line integral with the integrand being the dot product of the vector field and the derivative of the parameterized path. 6) Evaluate the integral. Step 1: Let's obtain a plot of our vector field and oriented curve. P1 := VectorField(F, output=plot,view=[-4..4,-1..4], color=red): P2 := SpaceCurve(C,trange, color=blue): plots[display]({P1,P2}, axes=boxed, scaling =constrained); Step 2: We need to parameterize our vector field with our parameterizations of x and y. FonC := evalVF(VF,C); Step 3: Now we need the deriviative of the parameterized curve. This is our dr from our integral. R := diff(C,t); Step 4: We will find the dot product and simplify. This will give us our integrand. integrand1 := FonC.R; integrand := simplify(integrand1); Step 5: Now we can set up our integral. Int(integrand, trange); Step 6: And finally we evaluate our integral. Int(integrand, trange)=int(integrand, trange); An alternative method of computing line integrals. The following commands come from the VectorCalculus package. This is a more straightforward way of computing line integrals. It does not highlight the steps as the above approach does. Example: F = LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYnUSNsbkYnLyUlc2l6ZUdRIzE2RicvJSdpdGFsaWNHUSZmYWxzZUYnLyUrYmFja2dyb3VuZEdRKFswLDAsMF1GJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRictSSNtb0dGJDYtUTAmQXBwbHlGdW5jdGlvbjtGJ0Y9LyUmZmVuY2VHRjkvJSpzZXBhcmF0b3JHRjkvJSlzdHJldGNoeUdGOS8lKnN5bW1ldHJpY0dGOS8lKGxhcmdlb3BHRjkvJS5tb3ZhYmxlbGltaXRzR0Y5LyUnYWNjZW50R0Y5LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGVC1GIzYmLUZBNi9RIihGJ0Y0RjpGPS9GRVEldHJ1ZUYnRkYvRklGZ25GSkZMRk5GUC9GU1EsMC4xNjY2NjY3ZW1GJy9GVkZqbi1GIzYkLUYsNidRInlGJ0Y0L0Y4RmduRjovRj5RJ2l0YWxpY0YnRj0tRkE2L1EiKUYnRjRGOkY9RmZuRkZGaG5GSkZMRk5GUEZpbi9GVlEsMC4xMTExMTExZW1GJ0Y9RitGPUYrRj0= i + LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYnUSNsbkYnLyUlc2l6ZUdRIzE2RicvJSdpdGFsaWNHUSZmYWxzZUYnLyUrYmFja2dyb3VuZEdRKFswLDAsMF1GJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRictSSNtb0dGJDYtUTAmQXBwbHlGdW5jdGlvbjtGJ0Y9LyUmZmVuY2VHRjkvJSpzZXBhcmF0b3JHRjkvJSlzdHJldGNoeUdGOS8lKnN5bW1ldHJpY0dGOS8lKGxhcmdlb3BHRjkvJS5tb3ZhYmxlbGltaXRzR0Y5LyUnYWNjZW50R0Y5LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGVC1GIzYmLUZBNi9RIihGJ0Y0RjpGPS9GRVEldHJ1ZUYnRkYvRklGZ25GSkZMRk5GUC9GU1EsMC4xNjY2NjY3ZW1GJy9GVkZqbi1GIzYkLUYsNidRInhGJ0Y0L0Y4RmduRjovRj5RJ2l0YWxpY0YnRj0tRkE2L1EiKUYnRjRGOkY9RmZuRkZGaG5GSkZMRk5GUEZpbi9GVlEsMC4xMTExMTExZW1GJ0Y9RitGPUYrRj0= j and C is the curve (LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2KEYrLUYjNiYtSSNtbkdGJDYmUSIyRicvJSVzaXplR1EjMTZGJy8lK2JhY2tncm91bmRHUShbMCwwLDBdRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLUkjbW9HRiQ2LVExJkludmlzaWJsZVRpbWVzO0YnRj0vJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkYvJSlzdHJldGNoeUdGRi8lKnN5bW1ldHJpY0dGRi8lKGxhcmdlb3BHRkYvJS5tb3ZhYmxlbGltaXRzR0ZGLyUnYWNjZW50R0ZGLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGVS1GLDYnUSJ0RidGNy8lJ2l0YWxpY0dRJXRydWVGJ0Y6L0Y+USdpdGFsaWNGJ0Y9LUZBNi9RIixGJ0Y3RjpGPUZEL0ZIRmduRklGS0ZNRk9GUUZTL0ZXUSwwLjMzMzMzMzNlbUYnLUYjNiZGKy1JJW1zdXBHRiQ2JUZYLUY0NiZRIjNGJ0Y3RjpGPS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGK0Y9RitGPUYrRj0=), for 2 <= t <= 4. restart; with(VectorCalculus):SetCoordinates(cartesian[x,y]); F:=VectorField(<ln(y),ln(x)>);C:=Path(<2*t,t^3>,t=2..4 ); Now that we have defined our field and our path, one simple command will compute our line integral for us. LineInt(F,C); If we want to see the set up of our integral, we can use an "inert" command. LineInt(F,C,'inert')=LineInt(F,C); We also could have put all of our code in a single line. LineInt(F,C,'inert')=LineInt( VectorField(<ln(y),ln(x)>), Path(<2*t,t^3>,t=2..4 ) ); We can get a plot of the situation using the LineInt command from the Student[VectorCalculus] package. with(Student[VectorCalculus]): LineInt( F, C, output=plot, pathoptions=[color=blue], vectoroptions=[color=black], fieldoptions=[color=red]); Example: F = LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Ji1JI21vR0YkNi9RKiZ1bWludXMwO0YnLyUlc2l6ZUdRIzE2RicvJStiYWNrZ3JvdW5kR1EoWzAsMCwwXUYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQC8lKXN0cmV0Y2h5R0ZALyUqc3ltbWV0cmljR0ZALyUobGFyZ2VvcEdGQC8lLm1vdmFibGVsaW1pdHNHRkAvJSdhY2NlbnRHRkAvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZPLUYjNictRiw2J1EieUYnRjUvJSdpdGFsaWNHUSV0cnVlRidGOC9GPFEnaXRhbGljRictRjI2LVExJkludmlzaWJsZVRpbWVzO0YnRjtGPkZBRkNGRUZHRklGS0ZNRlAtRiM2Jy1GLDYnUSRzaW5GJ0Y1L0ZYRkBGOEY7LUYyNi1RMCZBcHBseUZ1bmN0aW9uO0YnRjtGPkZBRkNGRUZHRklGS0ZNRlAtRiM2Ji1GMjYvUSIoRidGNUY4RjsvRj9GWUZBL0ZERllGRUZHRklGSy9GTlEsMC4xNjY2NjY3ZW1GJy9GUUZqby1GIzYkLUYsNidRInhGJ0Y1RldGOEZaRjstRjI2L1EiKUYnRjVGOEY7RmdvRkFGaG9GRUZHRklGS0Zpby9GUVEsMC4xMTExMTExZW1GJ0Y7RitGO0YrRjtGK0Y7RitGOw== i + LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYnUSRjb3NGJy8lJXNpemVHUSMxNkYnLyUnaXRhbGljR1EmZmFsc2VGJy8lK2JhY2tncm91bmRHUShbMCwwLDBdRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLUkjbW9HRiQ2LVEwJkFwcGx5RnVuY3Rpb247RidGPS8lJmZlbmNlR0Y5LyUqc2VwYXJhdG9yR0Y5LyUpc3RyZXRjaHlHRjkvJSpzeW1tZXRyaWNHRjkvJShsYXJnZW9wR0Y5LyUubW92YWJsZWxpbWl0c0dGOS8lJ2FjY2VudEdGOS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlQtRiM2Ji1GQTYvUSIoRidGNEY6Rj0vRkVRJXRydWVGJ0ZGL0ZJRmduRkpGTEZORlAvRlNRLDAuMTY2NjY2N2VtRicvRlZGam4tRiM2JC1GLDYnUSJ4RidGNC9GOEZnbkY6L0Y+USdpdGFsaWNGJ0Y9LUZBNi9RIilGJ0Y0RjpGPUZmbkZGRmhuRkpGTEZORlBGaW4vRlZRLDAuMTExMTExMWVtRidGPUYrRj1GK0Y9 j and C is the parabola LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYnUSJ5RicvJSVzaXplR1EjMTZGJy8lJ2l0YWxpY0dRJXRydWVGJy8lK2JhY2tncm91bmRHUShbMCwwLDBdRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2L1EiPUYnRjRGOi9GPlEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkgvJSlzdHJldGNoeUdGSC8lKnN5bW1ldHJpY0dGSC8lKGxhcmdlb3BHRkgvJS5tb3ZhYmxlbGltaXRzR0ZILyUnYWNjZW50R0ZILyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGVy1GIzYmRistSSVtc3VwR0YkNiUtRiw2J1EieEYnRjRGN0Y6Rj0tSSNtbkdGJDYmUSIyRidGNEY6RkQvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRitGREYrRkRGK0ZE between (0, 0) and (2, 4). F:=VectorField(<-y*sin(x),cos(x)>);C:=Path(<t , t^2>,t=0..2); with(Student[VectorCalculus]): LineInt( F, C, output=plot, pathoptions=[color=blue], vectoroptions=[color=black], fieldoptions=[color=red], scaling=constrained ); with(VectorCalculus): LineInt(F,C,'inert')=LineInt(F,C); Now in the case of problems like #12 from the book, Maple has a simple command that will work for any polygonal curve. Let's take a look. Example: F = LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JkYrLUYjNiQtRiw2JlEkeHlpRicvJSVzaXplR1EjMTZGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRicvRj1RJ25vcm1hbEYnRitGP0YrRj8= + (x-y)j and C is the triangle with vertices: (1, 0), (-1,0), and (0,1). with(VectorCalculus):SetCoordinates(cartesian[x,y]); F:=VectorField(<x*y,-x+y>);C:=LineSegments( <1,0>, <0,1>,<-1,0>, <1,0> ); LineInt(F,C,'inert')=LineInt(F,C); With the Student[VectorCalculus] package the LineInt command allows us to easily get a plot of the situation. with(Student[VectorCalculus]): LineInt( F, C, output=plot, pathoptions=[color=blue], vectoroptions=[color=black], fieldoptions=[color=red], scaling=constrained ); Example: F = LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictSSVtc3VwR0YkNiUtSSNtb0dGJDYvUSJlRicvJSVzaXplR1EjMTZGJy8lK2JhY2tncm91bmRHUShbMCwwLDBdRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZBLyUpc3RyZXRjaHlHRkEvJSpzeW1tZXRyaWNHRkEvJShsYXJnZW9wR0ZBLyUubW92YWJsZWxpbWl0c0dGQS8lJ2FjY2VudEdGQS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlAtRiw2J1EieUYnRjYvJSdpdGFsaWNHUSV0cnVlRidGOS9GPVEnaXRhbGljRicvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRitGPA== i + LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYnUSNsbkYnLyUlc2l6ZUdRIzE2RicvJSdpdGFsaWNHUSZmYWxzZUYnLyUrYmFja2dyb3VuZEdRKFswLDAsMF1GJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRictSSNtb0dGJDYtUTAmQXBwbHlGdW5jdGlvbjtGJ0Y9LyUmZmVuY2VHRjkvJSpzZXBhcmF0b3JHRjkvJSlzdHJldGNoeUdGOS8lKnN5bW1ldHJpY0dGOS8lKGxhcmdlb3BHRjkvJS5tb3ZhYmxlbGltaXRzR0Y5LyUnYWNjZW50R0Y5LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGVC1GIzYmLUZBNi9RIihGJ0Y0RjpGPS9GRVEldHJ1ZUYnRkYvRklGZ25GSkZMRk5GUC9GU1EsMC4xNjY2NjY3ZW1GJy9GVkZqbi1GIzYmRistRiM2J0YrLUYjNiZGKy1JJW1zdXBHRiQ2JS1GLDYnUSJ4RidGNC9GOEZnbkY6L0Y+USdpdGFsaWNGJy1JI21uR0YkNiZRIjJGJ0Y0RjpGPS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGK0Y9LUZBNi9RIitGJ0Y0RjpGPUZERkZGSEZKRkxGTkZQL0ZTUSwwLjIyMjIyMjJlbUYnL0ZWRmZwLUZccDYmUSIxRidGNEY6Rj1GPUYrRj0tRkE2L1EiKUYnRjRGOkY9RmZuRkZGaG5GSkZMRk5GUEZpbi9GVlEsMC4xMTExMTExZW1GJ0Y9RitGPUYrRj0= j + k and C is the circle of radius 2 centered at the origin in the yz-plane going clockwise. In order to use our commands in 3 space, we must set our coordinates to have 3. SetCoordinates(cartesian[x,y,z]); F:=VectorField(<exp(y), ln(x^2+1),1>);C:=Path(<0, 2*cos(t) , -2*sin(t)>,t=0..2*Pi); LineInt( F, C, output=plot, pathoptions=[color=blue], vectoroptions=[color=black], fieldoptions=[color=red], scaling=constrained ); with(VectorCalculus): LineInt(F,C,'inert')=LineInt(F,C); If we reopen the Student[VectorCalculus] package we can change the way we use the LinInt command. with(Student[VectorCalculus]): LineInt(F,C, output=plot); LineInt(F,C, output=integral); LineInt(F,C); JSFH