Computing Line Integrals
Worksheet by Mike May, S.J.- maymk@slu.edu
Edited by Russell Blyth - blythrd@slu.edu
restart:
Maple can be used to set up and evaluate line integrals over parameterized curves. We will walk through a step by step procedure, then produce new procedures that do everything in one command. We use the VectorCalculus Package. We also set some technical conditions, namely, specifying the coordinate system and how vectors will be written.
with(VectorCalculus):
SetCoordinates( cartesian[x,y] ):
BasisFormat(false):
A step by step example
First we define a vector field that we want to integrate, the parameterized path we are integrating over, and the limits on the parameter. For our example we will use a familiar circular vector field and integrate over half an ellipse.
vfield := <-y,x>;
path := <3*cos(2*t), 2*sin(2*t)>;
path2 := convert(path,list);
trange := t=0..Pi/2;
LSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSSdjb2x1bW5HRig2Iy9JJCVpZEdGKCImdzsq
LSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSSdjb2x1bW5HRig2Iy9JJCVpZEdGKCIoQyVRQQ==
NyQsJC1JJGNvc0c2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjLCRJInRHRikiIiMiIiQsJC1JJHNpbkdGJkYqRi0=
L0kidEc2IjsiIiEsJEkjUGlHJSpwcm90ZWN0ZWRHIyIiIiIiIw==
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) Set up the line integral with the integrand equal to the dot product of the vector field and the derivative of the parameterized path.
3) Substitute the parameterization of the path into the field to make the field a vector valued function of the parameter.
4) Take the derivative of the path with respect to the parameter.
5) Evaluate the dot product and simplify. This reduces the problem to an integral over an interval.
6) Evaluate the integral.
We are ready to walk through the steps one at a time. As we work through the example with Maple, you should make sure that you can also do each step by hand.
The first step is to look at a graph of the vector field and the parameterized curve.
vfieldplot := plots[fieldplot](vfield,x=-5..5,y=-5..5, grid=[7,7]):
parampath := plot([op(path2),trange]):
plots[display]({vfieldplot, parampath});
NiYtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2UzclNyQkITNpKnkpKTRsYiMqZSYhIzwkITNQNTcsXFZ1NVchIzw3JCQhM1A1NyxcVnU1VyEjPCQhM2kqeSkpNGxiIyplJiEjPDckJCEzKXAjUiF5aCZlPVghIzwkITM/eTtxY2x5Jz0mISM8NyU3JCQhMzMkPmYxNVBHUiYhIzwkITNUVlhNI294U3UjISM8NyQkITMjcCEzTSoqRzsyWSEjPCQhM21BQEslKSopZUFSISM8NyQkITM9X04mNFdfKkhZISM8JCEzJCo0dWhGWEFwTiEjPDclNyQkITNfJ2ZILmI9az4mISM8JCEzKm8oeW46NVR4NSEjPDckJCEzWS4vblw5ZS5bISM8JCEzcWJhbDxCI2ZEIyEjPDckJCEzUnhKNWsjPjh1JSEjPCQhMzVVSmApXGk7Jj4hIzw3JTckJCEiJiIiISQiM2UqKnkpKTRsYiMqZSEjPTckJCEiJiIiISQhM3EhKnkpKTRsYiMqZSEjPTckJCEzZi1HRCgzJ29fWyEjPCQhM0VaKClbJXAvNU0kISM9NyU3JCQhM1kuL25cOWUuWyEjPCQiM2ZjYWw8QiNmRCMhIzw3JCQhM18nZkguYj1rPiYhIzwkIjN5eHluOjVUeDUhIzw3JCQhMyF5VS0vIkgwa1whIzwkIjMpR1JOJ2Y6WSRHIiEjPDclNyQkITMjcCEzTSoqRzsyWSEjPCQiM2JCQEslKSopZUFSISM8NyQkITMzJD5mMTVQR1ImISM8JCIzSVdYTSNveFN1IyEjPDckJCEzK2A/YkwoPmEyJiEjPCQiM1tnJz4oKWVCNSFIISM8NyU3JCQhM1A1NyxcVnU1VyEjPCQiM2kqeSkpNGxiIyplJiEjPDckJCEzaSp5KSk0bGIjKmUmISM8JCIzOjc3LFxWdTVXISM8NyQkITNKeDtxY2x5Jz0mISM8JCIzd0dSIXloJmU9WCEjPDclNyQkITNtQUBLJSkqKWVBUiEjPCQhMyNwITNNKipHOzJZISM8NyQkITNUVlhNI294U3UjISM8JCEzMyQ+ZjE1UEdSJiEjPDckJCEzZ2YnPigpZUI1IUghIzwkITMrYD9iTCg+YTImISM8NyU3JCQhMzdFRCpSVnFocyQhIzwkITMmKlJUbktpXFNIISM8NyQkITMmKlJUbktpXFNIISM8JCEzN0VEKlJWcWhzJCEjPDckJCEzTyVHcD1UIVI3SSEjPCQhM3QleW5XcWR5WCQhIzw3JTckJCEzZUhIbSQpPXZITiEjPCQhM1Z0dSttJkhRRiIhIzw3JCQhM11PUCskeTlwOCQhIzwkITM6ZmVLblBdZj8hIzw3JCQhM2M0Kj1dQmRQNyQhIzwkITM3PE5RdmNIUz0hIzw3JTckJCEzLkxMTExMTExMISM8JCIzO00+ZjE1UEdSISM9NyQkITMuTExMTExMTEwhIzwkITNHRD5mMTVQR1IhIz03JCQhM3dNJm8iZVM3TkshIzwkITNnJ1wjKkhZT3RBIyEjPTclNyQkITNdT1ArJHk5cDgkISM8JCIzL2dlS25QXWY/ISM8NyQkITNlSEhtJCk9dkhOISM8JCIzS3V1K20mSFFGIiEjPDckJCEzKCpmIj04KTNcWUwhIzwkIjMzPV15I1FHW1IiISM8NyU3JCQhMyYqUlRuS2lcU0ghIzwkIjMrRkQqUlZxaHMkISM8NyQkITM3RUQqUlZxaHMkISM8JCIzJTM5dUVCJ1xTSCEjPDckJCEzdCV5bldxZHlYJCEjPCQiM0MmR3A9VCFSN0khIzw3JTckJCEzVFZYTSNveFN1IyEjPCQiMydSPmYxNVBHUiYhIzw3JCQhM21BQEslKSopZUFSISM8JCIzIXkhM00qKkc7MlkhIzw3JCQhMyQqNHVoRlhBcE4hIzwkIjMyYE4mNFdfKkhZISM8NyU3JCQhM3FiYWw8QiNmRCMhIzwkITNZLi9uXDllLlshIzw3JCQhMypvKHluOjVUeDUhIzwkITNfJ2ZILmI9az4mISM8NyQkITMqPlJOJ2Y6WSRHIiEjPCQhMyF5VS0vIkgwa1whIzw3JTckJCEzOmZlS25QXWY/ISM8JCEzXU9QKyR5OXA4JCEjPDckJCEzVnR1K20mSFFGIiEjPCQhM2VISG0kKT12SE4hIzw3JCQhMz08XXkjUUdbUiIhIzwkITMoKmYiPTgpM1xZTCEjPDclNyQkITNoaWkqcEAmM2o9ISM8JCEzd3BxTDsiWy1aIiEjPDckJCEzKSpwcUw7IlstWiIhIzwkITMkR0UnKnBAJjNqPSEjPDckJCEzPVVZJGY/Jj4xOiEjPCQhM08jKlFCXylHKkc8ISM8NyU3JCQhM0htbW1tbW1tOyEjPCQiMy5wZkguYj1rPiEjPTckJCEzSG1tbW1tbW07ISM8JCEzOWdmSC5iPWs+ISM9NyQkITM7blUzSD9jPDshIzwkITMzWWlcSiNvTzYiISM9NyU3JCQhM3dwcUw7IlstWiIhIzwkIjNzamkqcEAmM2o9ISM8NyQkITMkR0UnKnBAJjNqPSEjPCQiM2txcUw7IlstWiIhIzw3JCQhMzkjKlFCXylHKkc8ISM8JCIzJUdrTWY/Jj4xOiEjPDclNyQkITNAdHUrbSZIUUYiISM8JCIzWUlIbSQpPXZITiEjPDckJCEzOmZlS25QXWY/ISM8JCIzUVBQKyR5OXA4JCEjPDckJCEzNzxOUXZjSFM9ISM8JCIzWDUqPV1CZFA3JCEjPDclNyQkITNud3luOjVUeDUhIzwkIjNVKGZILmI9az4mISM8NyQkITNxYmFsPEIjZkQjISM8JCIzTi8vblw5ZS5bISM8NyQkITM1VUpgKVxpOyY+ISM8JCIzR3lKNWsjPjh1JSEjPDclNyQkITNxISp5KSk0bGIjKmUhIz0kISImIiIhNyQkIjNlKip5KSk0bGIjKmUhIz0kISImIiIhNyQkIjM5YygpWyVwLzVNJCEjPSQhM2YtR0QoMydvX1shIzw3JTckJCEzR0Q+ZjE1UEdSISM9JCEzLkxMTExMTExMISM8NyQkIjM7TT5mMTVQR1IhIz0kITMuTExMTExMTEwhIzw3JCQiM1swRCpIWU90QSMhIz0kITN3TSZvImVTN05LISM8NyU3JCQhMzlnZkguYj1rPiEjPSQhM0htbW1tbW1tOyEjPDckJCIzLnBmSC5iPWs+ISM9JCEzSG1tbW1tbW07ISM8NyQkIjNvYWlcSiNvTzYiISM9JCEzO25VM0g/Yzw7ISM8NyU3JCQiM1o8X1JeaURrXCEjTCQiM09NZ2dYel88UiEjTDckJCIzT01nZ1h6XzxSISNMJCIzWjxfUl5pRGtcISNMNyQkIjNLMTNJTC1KOFMhI0wkIjNPXEpEKCk9ejFZISNMNyU3JCQiMzlxZkguYj1rPiEjPSQiMzxubW1tbW1tOyEjPDckJCEzRGhmSC5iPWs+ISM9JCIzPG5tbW1tbW07ISM8NyQkITNrWWlcSiNvTzYiISM9JCIzMG9VM0g/Yzw7ISM8NyU3JCQiM0dOPmYxNVBHUiEjPSQiMyNSTExMTExMTCQhIzw3JCQhM1NFPmYxNVBHUiEjPSQiMyNSTExMTExMTCQhIzw3JCQhMzsoXCMqSFlPdEEjISM9JCIzbU4mbyJlUzdOSyEjPDclNyQkIjNvK3opKTRsYiMqZSEjPSQiMykzKysrKysrKyYhIzw3JCQhMyE9KnkpKTRsYiMqZSEjPSQiMykzKysrKysrKyYhIzw3JCQhMyN5dSlbJXAvNU0kISM9JCIzWy5HRCgzJ29fWyEjPDclNyQkIjN5eHluOjVUeDUhIzwkITNfJ2ZILmI9az4mISM8NyQkIjNmY2FsPEIjZkQjISM8JCEzWS4vblw5ZS5bISM8NyQkIjMqSDlMJilcaTsmPiEjPCQhM1J4SjVrIz44dSUhIzw3JTckJCIzS3V1K20mSFFGIiEjPCQhM2VISG0kKT12SE4hIzw3JCQiMy9nZUtuUF1mPyEjPCQhM11PUCskeTlwOCQhIzw3JCQiMyw9TlF2Y0hTPSEjPCQhM2M0Kj1dQmRQNyQhIzw3JTckJCIzKDMyUGo2Wy1aIiEjPCQhMyRHRScqcEAmM2o9ISM8NyQkIjNdamkqcEAmM2o9ISM8JCEzd3BxTDsiWy1aIiEjPDckJCIzLiQqUUJfKUcqRzwhIzwkITM9VVkkZj8mPjE6ISM8NyU3JCQiMzxubW1tbW1tOyEjPCQhM0RoZkguYj1rPiEjPTckJCIzPG5tbW1tbW07ISM8JCIzOXFmSC5iPWs+ISM9NyQkIjMwb1UzSD9jPDshIzwkIjNDYmlcSiNvTzYiISM9NyU3JCQiM3NqaSpwQCYzaj0hIzwkIjNrcXFMOyJbLVoiISM8NyQkIjNrcXFMOyJbLVoiISM8JCIzc2ppKnBAJjNqPSEjPDckJCIzMlZZJGY/Jj4xOiEjPCQiMy4kKlFCXylHKkc8ISM8NyU3JCQiMy9nZUtuUF1mPyEjPCQiM1FQUCskeTlwOCQhIzw3JCQiMzV1dSttJkhRRiIhIzwkIjNZSUhtJCk9dkhOISM8NyQkIjMneSwmeSNRR1tSIiEjPCQiMyYzOz04KTNcWUwhIzw3JTckJCIzZmNhbDxCI2ZEIyEjPCQiM04vL25cOWUuWyEjPDckJCIzYnh5bjo1VHg1ISM8JCIzVShmSC5iPWs+JiEjPDckJCIzKUdSTidmOlkkRyIhIzwkIjNwR0NTNUgwa1whIzw3JTckJCIzSVdYTSNveFN1IyEjPCQhMzMkPmYxNVBHUiYhIzw3JCQiM2JCQEslKSopZUFSISM8JCEzI3AhM00qKkc7MlkhIzw3JCQiMyMzVDx3X0MjcE4hIzwkITM9X04mNFdfKkhZISM8NyU3JCQiMyUzOXVFQidcU0ghIzwkITM3RUQqUlZxaHMkISM8NyQkIjMrRkQqUlZxaHMkISM8JCEzJipSVG5LaVxTSCEjPDckJCIzaCZ5bldxZHlYJCEjPCQhM08lR3A9VCFSN0khIzw3JTckJCIzUVBQKyR5OXA4JCEjPCQhMzpmZUtuUF1mPyEjPDckJCIzWUlIbSQpPXZITiEjPCQhM0B0dSttJkhRRiIhIzw3JCQiMyYzOz04KTNcWUwhIzwkITMncCwmeSNRR1tSIiEjPDclNyQkIjMjUkxMTExMTEwkISM8JCEzU0U+ZjE1UEdSISM9NyQkIjMjUkxMTExMTEwkISM8JCIzR04+ZjE1UEdSISM9NyQkIjNtTiZvImVTN05LISM8JCIzLzFEKkhZT3RBIyEjPTclNyQkIjNZSUhtJCk9dkhOISM8JCIzNXV1K20mSFFGIiEjPDckJCIzUVBQKyR5OXA4JCEjPCQiMy9nZUtuUF1mPyEjPDckJCIzWDUqPV1CZFA3JCEjPCQiMyw9TlF2Y0hTPSEjPDclNyQkIjMrRkQqUlZxaHMkISM8JCIzJTM5dUVCJ1xTSCEjPDckJCIzJTM5dUVCJ1xTSCEjPCQiMytGRCpSVnFocyQhIzw3JCQiM0MmR3A9VCFSN0khIzwkIjNoJnluV3FkeVgkISM8NyU3JCQiM2JCQEslKSopZUFSISM8JCIzIXkhM00qKkc7MlkhIzw3JCQiM0lXWE0jb3hTdSMhIzwkIjMnUj5mMTVQR1ImISM8NyQkIjNbZyc+KCllQjUhSCEjPCQiMypRMF9OdD5hMiYhIzw3JTckJCIzOjc3LFxWdTVXISM8JCEzaSp5KSk0bGIjKmUmISM8NyQkIjNpKnkpKTRsYiMqZSYhIzwkITNQNTcsXFZ1NVchIzw3JCQiMz95O3FjbHknPSYhIzwkITMneSNSIXloJmU9WCEjPDclNyQkIjMheSEzTSoqRzsyWSEjPCQhM21BQEslKSopZUFSISM8NyQkIjMnUj5mMTVQR1ImISM8JCEzVFZYTSNveFN1IyEjPDckJCIzKlEwX050PmEyJiEjPCQhM2dmJz4oKWVCNSFIISM8NyU3JCQiM04vL25cOWUuWyEjPCQhM3FiYWw8QiNmRCMhIzw3JCQiM1UoZkguYj1rPiYhIzwkITNud3luOjVUeDUhIzw3JCQiM3BHQ1M1SDBrXCEjPCQhMyo+Uk4nZjpZJEciISM8NyU3JCQiMykzKysrKysrKyYhIzwkITMhPSp5KSk0bGIjKmUhIz03JCQiMykzKysrKysrKyYhIzwkIjNvK3opKTRsYiMqZSEjPTckJCIzWy5HRCgzJ29fWyEjPCQiM3FjKClbJXAvNU0kISM9NyU3JCQiM1UoZkguYj1rPiYhIzwkIjNieHluOjVUeDUhIzw3JCQiM04vL25cOWUuWyEjPCQiM2ZjYWw8QiNmRCMhIzw3JCQiM0d5SjVrIz44dSUhIzwkIjMqSDlMJilcaTsmPiEjPDclNyQkIjMnUj5mMTVQR1ImISM8JCIzSVdYTSNveFN1IyEjPDckJCIzIXkhM00qKkc7MlkhIzwkIjNiQkBLJSkqKWVBUiEjPDckJCIzMmBOJjRXXypIWSEjPCQiMyMzVDx3X0MjcE4hIzw3JTckJCIzXiF6KSk0bGIjKmUmISM8JCIzRTY3LFxWdTVXISM8NyQkIjNFNjcsXFZ1NVchIzwkIjNeIXopKTRsYiMqZSYhIzw3JCQiM3dHUiF5aCZlPVghIzwkIjM/eTtxY2x5Jz0mISM8LUknQ1VSVkVTRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQ3UzckJCIiJCIiISQiIiEiIiE3JCQiMzdcTHVRKm9IKkghIzwkIjMsOVNKJVsmW284ISM9NyQkIjNeInl1MmVNYShIISM8JCIzWyYqbz4hKlI/YUQhIz03JCQiM2dWbitwVzVWSCEjPCQiMzIoUnNTS0ptKFEhIz03JCQiM2cqeXlubz5zKkchIzwkIjNBJ1JjPjJSLT4mISM9NyQkIjMpKik+RydmLVpRRyEjPCQiM2pUdXJXajx1ayEjPTckJCIzYy4tXT5EZHNGISM8JCIzMi1lXHQraVF3ISM9NyQkIjNLbEl3eipHSXAjISM8JCIzZyRHZWxxM0oiKSkhIz03JCQiM0lfUDMpKSkzISpmIyEjPCQiM3hiUjZPRUEqKSoqISM9NyQkIjMlWzZbQCpbIVFcIyEjPCQiM2hvbid6IUd1NjYhIzw3JCQiM1Z6KTNzUDpUUCMhIzwkIjNzdW9qTC5uQTchIzw3JCQiM1JuTFxgT1xmQSEjPCQiM3ZCQ1BLVm06OCEjPDckJCIzRSw2U0Bwbz9AISM8JCIzS010djxkajk5ISM8NyQkIjNRXjlaRnpecj4hIzwkIjMheWlgSDwhWzI6ISM8NyQkIjMocDdCSWlEIj49ISM8JCIzK2NdekZ0TiFmIiEjPDckJCIzKWYvLk5zWlJuIiEjPCQiM2UqXFI2TDAoZjshIzw3JCQiMydHbGZDQVJPXCIhIzwkIjMtcXlZZ0BcTTwhIzw3JCQiM1F3bWt0PCtOOCEjPCQiMyNwNj8vYmc1eiIhIzw3JCQiM2F3SSwhR29XOSIhIzwkIjMnNCdbI1tTWShbPSEjPDckJCIzJD53RHVLdjhyKiEjPSQiMzNZWicqeTRKIyo9ISM8NyQkIjN0RXAicCNmSm54ISM9JCIzLm03PztFIT0kPiEjPDckJCIzJj14Vl8/WEcpZSEjPSQiM25XaSkpbylwNic+ISM8NyQkIjNvNUo4REJpISpRISM9JCIzU2g1QmMpNEopPiEjPDckJCIzWiNwSyRlcVJYPyEjPSQiM1NMREMnM1lgKj4hIzw3JCQiM1wlb2J3dXA+bCUhIz8kIjNnPEZZJmYoKioqKj4hIzw3JCQhM04uc2ZTJlwpSD8hIz0kIjMhPiMqZiJcbVQmKj4hIzw3JCQhM1FoRCFvKiplKEhRISM9JCIzKFJYWTRMT08pPiEjPDckJCEzQU9jeSFmIil5diYhIz0kIjNEdj1pdnUiRyc+ISM8NyQkITM9OWMlb3QkNEN4ISM9JCIzPyhHJEcncHNEJD4hIzw3JCQhM0s/ZUgyTypRaCohIz0kIjNdMSMpbyYpPl8lKj0hIzw3JCQhMyllSy9PKyRHUzYhIzwkIjNKQVw1YGEqKVw9ISM8NyQkITMrKipRIikqcG5NTCIhIzwkIjNHY0Q/KFFvOnoiISM8NyQkITNTRl1kKDMnUiw6ISM8JCIzY2h4bz5KXko8ISM8NyQkITNAenVJTzwqUm4iISM8JCIzQmtmbCxjb2Y7ISM8NyQkITM3QmteJykqZlAjPSEjPCQiM2teYjd0bCp6ZSIhIzw3JCQhM0EqPlFKayVmej4hIzwkIjNdcyRvTGNvRl0iISM8NyQkITNbIylbRjtdMj1AISM8JCIzIz1FOCE0UVA7OSEjPDckJCEzRVxWTG8icFBEIyEjPCQiM0pEdVlsNC0/OCEjPDckJCEzI3lyPCw+Q3BQIyEjPCQiM3dzJlsmKVtVLUEiISM8NyQkITNBVHgiKXpzQCZcIyEjPCQiM0d3KSpwR01MNTYhIzw3JCQhM1VoZiFSLmkkKWYjISM8JCIzOzBDLnopKXAnKioqISM9NyQkITMtQ1RQcF9WI3AjISM8JCIzeU0neS1GbjYjKSkhIz03JCQhM3l5W2dhJkhSeCMhIzwkIjM5aiRSISlvInA7dyEjPTckJCEzJz4+ST1MWiJRRyEjPCQiMzE1RjJEYVkhWychIz03JCQhMyFvJkhNJXpxKSkqRyEjPCQiM2w8MSY+JD01XF4hIz03JCQhM1RtcWUwM0lUSCEjPCQiMydSX01lXixxJFIhIz03JCQhMzFwWUstKikpUihIISM8JCIzcic+Ol1IcHppIyEjPTckJCEzczAvMklOLCQqSCEjPCQiM1R6dSZvOldUTyIhIz03JCQhIiQiIiEkITM1WUtoU3I4LyMpISNGLUknQ09MT1VSRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiZJJFJHQkc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IiQiIzUhIiIkIiIhIiIhJCIiISIiIS1JK0FYRVNMQUJFTFNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JUkieEc2IkkieUc2Ii1JJUZPTlRHNiI2I0koREVGQVVMVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2Ii1JJVZJRVdHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JEkoREVGQVVMVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IkkoREVGQVVMVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2Ig==
The next step is to set up the line integral
Int((vfield.Diff(path,t)), trange);
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQtSSIuR0YkNiQtJkknVmVjdG9yR0YkNiNJJ2NvbHVtbkdGJzYjL0kkJWlkR0YnIiZ3OyotSSVEaWZmR0YkNiQtRi02Iy9GMyIoQyVRQUkidEdGJy9GPDsiIiEsJEkjUGlHRiUjIiIiIiIj
The third step is to replace x and y and the vector field with the parameterizations of x and y at the appropriate point on the path.
paramfield := <eval(vfield[1], {x=path[1],y=path[2]} ),
eval(vfield[2], {x=path[1],y=path[2]})>:
print("the funtion on the path is ", paramfield);
print(Int((paramfield.Diff(path,t)), trange));
NiRRPHRoZX5mdW50aW9ufm9ufnRoZX5wYXRofmlzfjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoJSl6diM=
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQtSSIuR0YkNiQtJkknVmVjdG9yR0YkNiNJJ2NvbHVtbkdGJzYjL0kkJWlkR0YnIiglKXp2Iy1JJURpZmZHRiQ2JC1GLTYjL0YzIihDJVFBSSJ0R0YnL0Y8OyIiISwkSSNQaUdGJSMiIiIiIiM=
The fourth step is to take the derivative of the parameterized path.
dpath := map(diff,path, t);
print("the derivative of the path is ", dpath);
LSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSSdjb2x1bW5HRig2Iy9JJCVpZEdGKCIoQyFlRg==
NiRRP3RoZX5kZXJpdmF0aXZlfm9mfnRoZX5wYXRofmlzfjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoQyFlRg==
The fifth step is to evaluate the dot product in the integrand and simplify.
integrand1 := paramfield.dpath;
integrand := simplify(paramfield.dpath):
print("The integrand is ", integrand);
print(Int(integrand, trange));
LCYqJC1JJHNpbkc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjLCRJInRHRikiIiNGLSIjNyokLUkkY29zR0YmRipGLUYu
NiRRMlRoZX5pbnRlZ3JhbmR+aXN+NiIiIzc=
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQiIzcvSSJ0R0YnOyIiISwkSSNQaUdGJSMiIiIiIiM=
We now evaluate the integral and evaluate the result numerically if needed.
intval := int(integrand, trange);
evalf(intval);
LCRJI1BpRyUqcHJvdGVjdGVkRyIiJw==
JCIrI2ZiXCk9ISIp
An automated approach
For convenience we block the code into two procedures we can use, one for plotting, and one for setting up the integral and evaluating it. This allows us to modify the problem with a minimal amount of work.
pathplot := proc(vecfield, path, trange, xrange, yrange)
local vfieldplot, parampath;
vfieldplot := plots[fieldplot](vecfield,xrange,yrange, grid=[7,7]):
parampath := plot([op(convert(path,list)),trange]):
plots[display]({vfieldplot, parampath});
end:
lineintegral:= proc(vecfield, path, trange)
local intval, paramfield, dpath, integrand;
print("the vector field is ", vecfield);
print("the path is ", path, " with ", trange);
print(Int((vecfield.Diff(path,t)), trange));
paramfield := <eval(vfield[1], {x=path[1],y=path[2]} ),
eval(vfield[2], {x=path[1],y=path[2]})>;
print("the funtion on the path is ", paramfield);
print(Int((paramfield.Diff(path,t)), trange));
dpath := diff(path, t);
print("the derivative of the path is ", diff(path, t));
print(Int((paramfield.dpath), trange));
integrand := simplify(paramfield.dpath):
print("The integrand is ", integrand);
print(Int(integrand, trange));
intval := int(integrand, trange);
print("the integral is ", intval);
print(evalf(intval));
end:
Thus, we can get the results by entering the vectorfield and path and executing the two commands.
SetCoordinates( cartesian[x,y] ):
vfield := <-y,x>;
path := <1+3*cos(t), -4+2*sin(t)>;
trange := t=0..Pi;
pathplot(vfield, path, trange, x=-5..5, y=-5..5);
lineintegral(vfield, path, trange);
LSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSSdjb2x1bW5HRig2Iy9JJCVpZEdGKCIoX0trJw==
LSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSSdjb2x1bW5HRig2Iy9JJCVpZEdGKCIoQy93Iw==
L0kidEc2IjsiIiFJI1BpRyUqcHJvdGVjdGVkRw==
NiYtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2UzclNyQkITNpKnkpKTRsYiMqZSYhIzwkITNQNTcsXFZ1NVchIzw3JCQhM1A1NyxcVnU1VyEjPCQhM2kqeSkpNGxiIyplJiEjPDckJCEzKXAjUiF5aCZlPVghIzwkITM/eTtxY2x5Jz0mISM8NyU3JCQhMzMkPmYxNVBHUiYhIzwkITNUVlhNI294U3UjISM8NyQkITMjcCEzTSoqRzsyWSEjPCQhM21BQEslKSopZUFSISM8NyQkITM9X04mNFdfKkhZISM8JCEzJCo0dWhGWEFwTiEjPDclNyQkITNfJ2ZILmI9az4mISM8JCEzKm8oeW46NVR4NSEjPDckJCEzWS4vblw5ZS5bISM8JCEzcWJhbDxCI2ZEIyEjPDckJCEzUnhKNWsjPjh1JSEjPCQhMzVVSmApXGk7Jj4hIzw3JTckJCEiJiIiISQiM2UqKnkpKTRsYiMqZSEjPTckJCEiJiIiISQhM3EhKnkpKTRsYiMqZSEjPTckJCEzZi1HRCgzJ29fWyEjPCQhM0VaKClbJXAvNU0kISM9NyU3JCQhM1kuL25cOWUuWyEjPCQiM2ZjYWw8QiNmRCMhIzw3JCQhM18nZkguYj1rPiYhIzwkIjN5eHluOjVUeDUhIzw3JCQhMyF5VS0vIkgwa1whIzwkIjMpR1JOJ2Y6WSRHIiEjPDclNyQkITMjcCEzTSoqRzsyWSEjPCQiM2JCQEslKSopZUFSISM8NyQkITMzJD5mMTVQR1ImISM8JCIzSVdYTSNveFN1IyEjPDckJCEzK2A/YkwoPmEyJiEjPCQiM1tnJz4oKWVCNSFIISM8NyU3JCQhM1A1NyxcVnU1VyEjPCQiM2kqeSkpNGxiIyplJiEjPDckJCEzaSp5KSk0bGIjKmUmISM8JCIzOjc3LFxWdTVXISM8NyQkITNKeDtxY2x5Jz0mISM8JCIzd0dSIXloJmU9WCEjPDclNyQkITNtQUBLJSkqKWVBUiEjPCQhMyNwITNNKipHOzJZISM8NyQkITNUVlhNI294U3UjISM8JCEzMyQ+ZjE1UEdSJiEjPDckJCEzZ2YnPigpZUI1IUghIzwkITMrYD9iTCg+YTImISM8NyU3JCQhMzdFRCpSVnFocyQhIzwkITMmKlJUbktpXFNIISM8NyQkITMmKlJUbktpXFNIISM8JCEzN0VEKlJWcWhzJCEjPDckJCEzTyVHcD1UIVI3SSEjPCQhM3QleW5XcWR5WCQhIzw3JTckJCEzZUhIbSQpPXZITiEjPCQhM1Z0dSttJkhRRiIhIzw3JCQhM11PUCskeTlwOCQhIzwkITM6ZmVLblBdZj8hIzw3JCQhM2M0Kj1dQmRQNyQhIzwkITM3PE5RdmNIUz0hIzw3JTckJCEzLkxMTExMTExMISM8JCIzO00+ZjE1UEdSISM9NyQkITMuTExMTExMTEwhIzwkITNHRD5mMTVQR1IhIz03JCQhM3dNJm8iZVM3TkshIzwkITNnJ1wjKkhZT3RBIyEjPTclNyQkITNdT1ArJHk5cDgkISM8JCIzL2dlS25QXWY/ISM8NyQkITNlSEhtJCk9dkhOISM8JCIzS3V1K20mSFFGIiEjPDckJCEzKCpmIj04KTNcWUwhIzwkIjMzPV15I1FHW1IiISM8NyU3JCQhMyYqUlRuS2lcU0ghIzwkIjMrRkQqUlZxaHMkISM8NyQkITM3RUQqUlZxaHMkISM8JCIzJTM5dUVCJ1xTSCEjPDckJCEzdCV5bldxZHlYJCEjPCQiM0MmR3A9VCFSN0khIzw3JTckJCEzVFZYTSNveFN1IyEjPCQiMydSPmYxNVBHUiYhIzw3JCQhM21BQEslKSopZUFSISM8JCIzIXkhM00qKkc7MlkhIzw3JCQhMyQqNHVoRlhBcE4hIzwkIjMyYE4mNFdfKkhZISM8NyU3JCQhM3FiYWw8QiNmRCMhIzwkITNZLi9uXDllLlshIzw3JCQhMypvKHluOjVUeDUhIzwkITNfJ2ZILmI9az4mISM8NyQkITMqPlJOJ2Y6WSRHIiEjPCQhMyF5VS0vIkgwa1whIzw3JTckJCEzOmZlS25QXWY/ISM8JCEzXU9QKyR5OXA4JCEjPDckJCEzVnR1K20mSFFGIiEjPCQhM2VISG0kKT12SE4hIzw3JCQhMz08XXkjUUdbUiIhIzwkITMoKmYiPTgpM1xZTCEjPDclNyQkITNoaWkqcEAmM2o9ISM8JCEzd3BxTDsiWy1aIiEjPDckJCEzKSpwcUw7IlstWiIhIzwkITMkR0UnKnBAJjNqPSEjPDckJCEzPVVZJGY/Jj4xOiEjPCQhM08jKlFCXylHKkc8ISM8NyU3JCQhM0htbW1tbW1tOyEjPCQiMy5wZkguYj1rPiEjPTckJCEzSG1tbW1tbW07ISM8JCEzOWdmSC5iPWs+ISM9NyQkITM7blUzSD9jPDshIzwkITMzWWlcSiNvTzYiISM9NyU3JCQhM3dwcUw7IlstWiIhIzwkIjNzamkqcEAmM2o9ISM8NyQkITMkR0UnKnBAJjNqPSEjPCQiM2txcUw7IlstWiIhIzw3JCQhMzkjKlFCXylHKkc8ISM8JCIzJUdrTWY/Jj4xOiEjPDclNyQkITNAdHUrbSZIUUYiISM8JCIzWUlIbSQpPXZITiEjPDckJCEzOmZlS25QXWY/ISM8JCIzUVBQKyR5OXA4JCEjPDckJCEzNzxOUXZjSFM9ISM8JCIzWDUqPV1CZFA3JCEjPDclNyQkITNud3luOjVUeDUhIzwkIjNVKGZILmI9az4mISM8NyQkITNxYmFsPEIjZkQjISM8JCIzTi8vblw5ZS5bISM8NyQkITM1VUpgKVxpOyY+ISM8JCIzR3lKNWsjPjh1JSEjPDclNyQkITNxISp5KSk0bGIjKmUhIz0kISImIiIhNyQkIjNlKip5KSk0bGIjKmUhIz0kISImIiIhNyQkIjM5YygpWyVwLzVNJCEjPSQhM2YtR0QoMydvX1shIzw3JTckJCEzR0Q+ZjE1UEdSISM9JCEzLkxMTExMTExMISM8NyQkIjM7TT5mMTVQR1IhIz0kITMuTExMTExMTEwhIzw3JCQiM1swRCpIWU90QSMhIz0kITN3TSZvImVTN05LISM8NyU3JCQhMzlnZkguYj1rPiEjPSQhM0htbW1tbW1tOyEjPDckJCIzLnBmSC5iPWs+ISM9JCEzSG1tbW1tbW07ISM8NyQkIjNvYWlcSiNvTzYiISM9JCEzO25VM0g/Yzw7ISM8NyU3JCQiM1o8X1JeaURrXCEjTCQiM09NZ2dYel88UiEjTDckJCIzT01nZ1h6XzxSISNMJCIzWjxfUl5pRGtcISNMNyQkIjNLMTNJTC1KOFMhI0wkIjNPXEpEKCk9ejFZISNMNyU3JCQiMzlxZkguYj1rPiEjPSQiMzxubW1tbW1tOyEjPDckJCEzRGhmSC5iPWs+ISM9JCIzPG5tbW1tbW07ISM8NyQkITNrWWlcSiNvTzYiISM9JCIzMG9VM0g/Yzw7ISM8NyU3JCQiM0dOPmYxNVBHUiEjPSQiMyNSTExMTExMTCQhIzw3JCQhM1NFPmYxNVBHUiEjPSQiMyNSTExMTExMTCQhIzw3JCQhMzsoXCMqSFlPdEEjISM9JCIzbU4mbyJlUzdOSyEjPDclNyQkIjNvK3opKTRsYiMqZSEjPSQiMykzKysrKysrKyYhIzw3JCQhMyE9KnkpKTRsYiMqZSEjPSQiMykzKysrKysrKyYhIzw3JCQhMyN5dSlbJXAvNU0kISM9JCIzWy5HRCgzJ29fWyEjPDclNyQkIjN5eHluOjVUeDUhIzwkITNfJ2ZILmI9az4mISM8NyQkIjNmY2FsPEIjZkQjISM8JCEzWS4vblw5ZS5bISM8NyQkIjMqSDlMJilcaTsmPiEjPCQhM1J4SjVrIz44dSUhIzw3JTckJCIzS3V1K20mSFFGIiEjPCQhM2VISG0kKT12SE4hIzw3JCQiMy9nZUtuUF1mPyEjPCQhM11PUCskeTlwOCQhIzw3JCQiMyw9TlF2Y0hTPSEjPCQhM2M0Kj1dQmRQNyQhIzw3JTckJCIzKDMyUGo2Wy1aIiEjPCQhMyRHRScqcEAmM2o9ISM8NyQkIjNdamkqcEAmM2o9ISM8JCEzd3BxTDsiWy1aIiEjPDckJCIzLiQqUUJfKUcqRzwhIzwkITM9VVkkZj8mPjE6ISM8NyU3JCQiMzxubW1tbW1tOyEjPCQhM0RoZkguYj1rPiEjPTckJCIzPG5tbW1tbW07ISM8JCIzOXFmSC5iPWs+ISM9NyQkIjMwb1UzSD9jPDshIzwkIjNDYmlcSiNvTzYiISM9NyU3JCQiM3NqaSpwQCYzaj0hIzwkIjNrcXFMOyJbLVoiISM8NyQkIjNrcXFMOyJbLVoiISM8JCIzc2ppKnBAJjNqPSEjPDckJCIzMlZZJGY/Jj4xOiEjPCQiMy4kKlFCXylHKkc8ISM8NyU3JCQiMy9nZUtuUF1mPyEjPCQiM1FQUCskeTlwOCQhIzw3JCQiMzV1dSttJkhRRiIhIzwkIjNZSUhtJCk9dkhOISM8NyQkIjMneSwmeSNRR1tSIiEjPCQiMyYzOz04KTNcWUwhIzw3JTckJCIzZmNhbDxCI2ZEIyEjPCQiM04vL25cOWUuWyEjPDckJCIzYnh5bjo1VHg1ISM8JCIzVShmSC5iPWs+JiEjPDckJCIzKUdSTidmOlkkRyIhIzwkIjNwR0NTNUgwa1whIzw3JTckJCIzSVdYTSNveFN1IyEjPCQhMzMkPmYxNVBHUiYhIzw3JCQiM2JCQEslKSopZUFSISM8JCEzI3AhM00qKkc7MlkhIzw3JCQiMyMzVDx3X0MjcE4hIzwkITM9X04mNFdfKkhZISM8NyU3JCQiMyUzOXVFQidcU0ghIzwkITM3RUQqUlZxaHMkISM8NyQkIjMrRkQqUlZxaHMkISM8JCEzJipSVG5LaVxTSCEjPDckJCIzaCZ5bldxZHlYJCEjPCQhM08lR3A9VCFSN0khIzw3JTckJCIzUVBQKyR5OXA4JCEjPCQhMzpmZUtuUF1mPyEjPDckJCIzWUlIbSQpPXZITiEjPCQhM0B0dSttJkhRRiIhIzw3JCQiMyYzOz04KTNcWUwhIzwkITMncCwmeSNRR1tSIiEjPDclNyQkIjMjUkxMTExMTEwkISM8JCEzU0U+ZjE1UEdSISM9NyQkIjMjUkxMTExMTEwkISM8JCIzR04+ZjE1UEdSISM9NyQkIjNtTiZvImVTN05LISM8JCIzLzFEKkhZT3RBIyEjPTclNyQkIjNZSUhtJCk9dkhOISM8JCIzNXV1K20mSFFGIiEjPDckJCIzUVBQKyR5OXA4JCEjPCQiMy9nZUtuUF1mPyEjPDckJCIzWDUqPV1CZFA3JCEjPCQiMyw9TlF2Y0hTPSEjPDclNyQkIjMrRkQqUlZxaHMkISM8JCIzJTM5dUVCJ1xTSCEjPDckJCIzJTM5dUVCJ1xTSCEjPCQiMytGRCpSVnFocyQhIzw3JCQiM0MmR3A9VCFSN0khIzwkIjNoJnluV3FkeVgkISM8NyU3JCQiM2JCQEslKSopZUFSISM8JCIzIXkhM00qKkc7MlkhIzw3JCQiM0lXWE0jb3hTdSMhIzwkIjMnUj5mMTVQR1ImISM8NyQkIjNbZyc+KCllQjUhSCEjPCQiMypRMF9OdD5hMiYhIzw3JTckJCIzOjc3LFxWdTVXISM8JCEzaSp5KSk0bGIjKmUmISM8NyQkIjNpKnkpKTRsYiMqZSYhIzwkITNQNTcsXFZ1NVchIzw3JCQiMz95O3FjbHknPSYhIzwkITMneSNSIXloJmU9WCEjPDclNyQkIjMheSEzTSoqRzsyWSEjPCQhM21BQEslKSopZUFSISM8NyQkIjMnUj5mMTVQR1ImISM8JCEzVFZYTSNveFN1IyEjPDckJCIzKlEwX050PmEyJiEjPCQhM2dmJz4oKWVCNSFIISM8NyU3JCQiM04vL25cOWUuWyEjPCQhM3FiYWw8QiNmRCMhIzw3JCQiM1UoZkguYj1rPiYhIzwkITNud3luOjVUeDUhIzw3JCQiM3BHQ1M1SDBrXCEjPCQhMyo+Uk4nZjpZJEciISM8NyU3JCQiMykzKysrKysrKyYhIzwkITMhPSp5KSk0bGIjKmUhIz03JCQiMykzKysrKysrKyYhIzwkIjNvK3opKTRsYiMqZSEjPTckJCIzWy5HRCgzJ29fWyEjPCQiM3FjKClbJXAvNU0kISM9NyU3JCQiM1UoZkguYj1rPiYhIzwkIjNieHluOjVUeDUhIzw3JCQiM04vL25cOWUuWyEjPCQiM2ZjYWw8QiNmRCMhIzw3JCQiM0d5SjVrIz44dSUhIzwkIjMqSDlMJilcaTsmPiEjPDclNyQkIjMnUj5mMTVQR1ImISM8JCIzSVdYTSNveFN1IyEjPDckJCIzIXkhM00qKkc7MlkhIzwkIjNiQkBLJSkqKWVBUiEjPDckJCIzMmBOJjRXXypIWSEjPCQiMyMzVDx3X0MjcE4hIzw3JTckJCIzXiF6KSk0bGIjKmUmISM8JCIzRTY3LFxWdTVXISM8NyQkIjNFNjcsXFZ1NVchIzwkIjNeIXopKTRsYiMqZSYhIzw3JCQiM3dHUiF5aCZlPVghIzwkIjM/eTtxY2x5Jz0mISM8LUknQ1VSVkVTRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQ3UzckJCIiJSIiISQhIiUiIiE3JCQiMzdcTHVRKm9IKlIhIzwkITN0KWZvOlheSidRISM8NyQkIjNeInl1MmVNYShSISM8JCEzRzUuKTRnelh1JCEjPDckJCIzZ1ZuK3BXNVZSISM8JCEzSGdGZm5vTDdPISM8NyQkIjNnKnl5bm8+cypRISM8JCEzRmdWIUc0dzRbJCEjPDckJCIzKSopPkcnZi1aUVEhIzwkITNoYiNHYk8jZV9MISM8NyQkIjNjLi1dPkRkc1AhIzwkITMhKj4vbCMqejhPSyEjPDckJCIzS2xJd3oqR0lwJCEjPCQhM2tyVE1IIipvPUohIzw3JCQiM0lfUDMpKSkzISpmJCEjPCQhM0ovJylRT3gyLEkhIzw3JCQiMyVbNltAKlshUVwkISM8JCEzUUpLLiM+ZCMpKUchIzw3JCQiM1Z6KTNzUDpUUCQhIzwkITNdREpPbSdIdHgjISM8NyQkIjNSbkxcYE9cZkshIzwkITNDd3ZpbmNMJW8jISM8NyQkIjNFLDZTQHBvP0ohIzwkITMqZW1VQUdrYGUjISM8NyQkIjM7XjlaRnpeckghIzwkITNVc2ovRik+RFwjISM8NyQkIjMocDdCSWlEIj5HISM8JCEzKlIlXD9zRWs0QyEjPDckJCIzKWYvLk5zWlJuIyEjPCQhM1QrMCcpb1lIU0IhIzw3JCQiMydHbGZDQVJPXCMhIzwkITMoKkhAYFJ5XWxBISM8NyQkIjNnd21rdDwrTkIhIzwkITMzJCkpeiZcJVIqM0EhIzw3JCQiM2F3SSwhR29XOSMhIzwkITMuUl48JmZgNzojISM8NyQkIjM+d0R1S3Y4cj4hIzwkITM4YV8uQCEqbzJAISM8NyQkIjNuI3AicCNmSm54IiEjPCQhM3VMKCl6JFEoPm8/ISM8NyQkIjM9eFZfP1hHKWUiISM8JCEzS2JQNkosJClRPyEjPDckJCIzMTZMXktBMSpRIiEjPCQhM2dRKm9QOSEqbywjISM8NyQkIjM+cEskZXFSWD8iISM8JCEzUW11djhSbC8/ISM8NyQkIjNwYnd1cD5sLzUhIzwkITM8I0dQWFMtKysjISM8NyQkIjM/KHotJWYvOnF6ISM9JCEzNXkrJTNOJGUvPyEjPDckJCIzaVF1Pi41Q3FoISM9JCEzLVlOMHBPTzs/ISM8NyQkIjN5alZANCU9QEMlISM9JCEzX0MieVZfIz1QPyEjPDckJCIzImVRYUpFMWZGIyEjPSQhM2Q3bnIudFVuPyEjPDckJCIzeid6VHEjUjFoUSEjPiQhM0YkejZWLHlhNSMhIzw3JCQhM1NmSy9PKyRHUyIhIz0kITNZeF0qb2EvLDojISM8NyQkITMqKikpKlEiKSpwbk1MISM9JCEzJFJXKHo3O1YzQSEjPDckJCEzO3YtdnYzJ1IsJiEjPSQhM1dRQUohKW9bb0EhIzw3JCQhMzsjenVJTzwqUm4hIz0kITN3TlNNKVI5Lk0jISM8NyQkITNFSlU7bCkqZlAjKSEjPSQhMzhbVyhvVS4/VCMhIzw3JCQhM0ckKj5RSmslZnoqISM9JCEzXUY7ak85QihcIyEjPDckJCEzWyMpW0Y7XTI9NiEjPCQhMzxRbik0PkVPZSMhIzw3JCQhMy9cVkxvInBQRCIhIzwkITNZdURgTSF6KnpFISM8NyQkITMjeXI8LD5DcFAiISM8JCEzLUY5WDZ2dnpGISM8NyQkITNBVHgiKXpzQCZcIiEjPCQhM3JCLElybG0qKUchIzw3JCQhM2toZiFSLmkkKWYiISM8JCEzUGZuNDcsTCtJISM8NyQkITMtQ1RQcF9WI3AiISM8JCEzVE9AKEhGJCl5NiQhIzw3JCQhM3l5W2dhJkhSeCIhIzwkITNZamc+SjNMUUshIzw3JCQhM3UiPkk9TFoiUT0hIzwkITMqKkdGXGRNJj5OJCEjPDckJCEzIW8mSE0lenEpKSo9ISM8JCEzQlFcIW8iKSozJlskISM8NyQkITM9bXFlMDNJVD4hIzwkITNnWmxUWykqSDFPISM8NyQkITMxcFlLLSopKVIoPiEjPCQhM1chWylccUk/UFAhIzw3JCQhM3MwLzJJTiwkKj4hIzwkITM4X1VKJWUmZWpRISM8NyQkISIjIiIhJCEzJ1JUPzMrKysrJSEjPC1JJ0NPTE9VUkc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYmSSRSR0JHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiIkIiM1ISIiJCIiISIiISQiIiEiIiEtSStBWEVTTEFCRUxTRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiVJInhHNiJJInlHNiItSSVGT05URzYiNiNJKERFRkFVTFRHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiItSSVWSUVXRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiRJKERFRkFVTFRHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiJJKERFRkFVTFRHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI=
NiRRNXRoZX52ZWN0b3J+ZmllbGR+aXN+NiItJkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YkNiNJJ2NvbHVtbkdGJDYjL0kkJWlkR0YkIihfS2sn
NiZRLXRoZX5wYXRofmlzfjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoQy93I1EnfndpdGh+RiQvSSJ0R0YkOyIiIUkjUGlHRik=
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQtSSIuR0YkNiQtJkknVmVjdG9yR0YkNiNJJ2NvbHVtbkdGJzYjL0kkJWlkR0YnIihfS2snLUklRGlmZkdGJDYkLUYtNiMvRjMiKEMvdyNJInRHRicvRjw7IiIhSSNQaUdGJQ==
NiRRPHRoZX5mdW50aW9ufm9ufnRoZX5wYXRofmlzfjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoWyo+bw==
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQtSSIuR0YkNiQtJkknVmVjdG9yR0YkNiNJJ2NvbHVtbkdGJzYjL0kkJWlkR0YnIihbKj5vLUklRGlmZkdGJDYkLUYtNiMvRjMiKEMvdyNJInRHRicvRjw7IiIhSSNQaUdGJQ==
NiRRP3RoZX5kZXJpdmF0aXZlfm9mfnRoZX5wYXRofmlzfjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoIVFxcA==
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQsJiomLCYiIiUiIiItSSRzaW5HRiQ2I0kidEdGJyEiI0YtRi5GLSEiJComLCZGLUYtLUkkY29zR0YkRjAiIiRGLUY2Ri0iIiMvRjE7IiIhSSNQaUdGJQ==
NiRRMlRoZX5pbnRlZ3JhbmR+aXN+NiIsKC1JJHNpbkc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSJ0R0YkISM3LUkkY29zR0YoRisiIiMiIiciIiI=
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQsKC1JJHNpbkdGJDYjSSJ0R0YnISM3LUkkY29zR0YkRiwiIiMiIiciIiIvRi07IiIhSSNQaUdGJQ==
NiRRMXRoZX5pbnRlZ3JhbH5pc342IiwmISNDIiIiSSNQaUclKnByb3RlY3RlZEciIic=
JCEqM1cvOiYhIik=
It should be noted that if all we want is the final answer, the VectorCalculus package has a LineInt command.
LineInt(VectorField(vfield), Path(path, trange),inert);
LineInt(VectorField(vfield), Path(path, trange));
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQsJiomLCYiIiUiIiItSSRzaW5HRiQ2I0kidEdGJyEiI0YtRi5GLSEiJComLCZGLUYtLUkkY29zR0YkRjAiIiRGLUY2Ri0iIiMvRjE7IiIhSSNQaUdGJQ==
LCYhI0MiIiJJI1BpRyUqcHJvdGVjdGVkRyIiJw==
Line Integrals in 3-D
If the vector field is in three dimensions we need to slightly modify the lineinegral command. In that case we will not plot the curve.
lineintegral3d:= proc(vecfield, path, trange)
local intval, paramfield, dpath, integrand;
print("the vector field ", vecfield);
print("the path ", path, " with ", trange);
print(Int((vecfield*Diff(path,t)), trange));
paramfield := <eval(vecfield[1], {x=path[1],y=path[2],z=path[3]} ),
eval(vecfield[2], {x=path[1],y=path[2],z=path[3]}),
eval(vecfield[3], {x=path[1],y=path[2],z=path[3]})>;
print("the funtion on the path is ", paramfield);
print(Int((paramfield.Diff(path,t)), trange));
dpath := diff(path, t);
print("the derivative of the path is ", diff(path, t));
print(Int((paramfield.dpath), trange));
integrand := simplify(paramfield.dpath):
print("The integrand is ", integrand);
print(Int(integrand, trange));
intval := int(integrand, trange);
print("the integral is ", intval);
print(evalf(intval));
end:
Using this command we consider the following example. Note that we have to specify that we are changing the coordinate system.
SetCoordinates( cartesian[x,y,z] ):
vfield := <x, z, -x*y>;
path := <cos(t), sin(t), 2*t>;
trange := t=0..3*Pi;
lineintegral3d(vfield, path, trange);
LSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSSdjb2x1bW5HRig2Iy9JJCVpZEdGKCIpb3kkcCI=
LSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSSdjb2x1bW5HRig2Iy9JJCVpZEdGKCIoU1l1Iw==
L0kidEc2IjsiIiEsJEkjUGlHJSpwcm90ZWN0ZWRHIiIk
NiRRMnRoZX52ZWN0b3J+ZmllbGR+NiItJkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YkNiNJJ2NvbHVtbkdGJDYjL0kkJWlkR0YkIilveSRwIg==
NiZRKnRoZX5wYXRofjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoU1l1I1EnfndpdGh+RiQvSSJ0R0YkOyIiISwkSSNQaUdGKSIiJA==
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQtJkknVmVjdG9yR0YkNiNJJ2NvbHVtbkdGJzYjL0kkJWlkR0YnIigrIXlJL0kidEdGJzsiIiEsJEkjUGlHRiUiIiQ=
NiRRPHRoZX5mdW50aW9ufm9ufnRoZX5wYXRofmlzfjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoKUdAag==
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQtSSIuR0YkNiQtJkknVmVjdG9yR0YkNiNJJ2NvbHVtbkdGJzYjL0kkJWlkR0YnIigpR0BqLUklRGlmZkdGJDYkLUYtNiMvRjMiKFNZdSNJInRHRicvRjw7IiIhLCRJI1BpR0YlIiIk
NiRRP3RoZX5kZXJpdmF0aXZlfm9mfnRoZX5wYXRofmlzfjYiLSZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSdjb2x1bW5HRiQ2Iy9JJCVpZEdGJCIoW2xuIw==
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQsJiomLUkkY29zR0YkNiNJInRHRiciIiItSSRzaW5HRiRGLUYvISIkKiZGLkYvRitGLyIiIy9GLjsiIiEsJEkjUGlHRiUiIiQ=
NiRRMlRoZX5pbnRlZ3JhbmR+aXN+NiIqJi1JJGNvc0c2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJDYjSSJ0R0YkIiIiLCYtSSRzaW5HRihGKyEiJEYsIiIjRi0=
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQqJi1JJGNvc0dGJDYjSSJ0R0YnIiIiLCYtSSRzaW5HRiRGLCEiJEYtIiIjRi4vRi07IiIhLCRJI1BpR0YlIiIk
NiRRMXRoZX5pbnRlZ3JhbH5pc342IiEiJQ==
JCEiJSIiIQ==
Once again, if all we want is the final answer, the VectorCalculus package has a LineInt command.
LineInt(VectorField(vfield), Path(path, trange), inert);
LineInt(VectorField(vfield), Path(path, trange));
LUkkSW50RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiQsJiomLUkkY29zR0YkNiNJInRHRiciIiItSSRzaW5HRiRGLUYvISIkKiZGLkYvRitGLyIiIy9GLjsiIiEsJEkjUGlHRiUiIiQ=
ISIl