# Section 9.7 # Example 1 with(linalg): A := matrix([[1,-2,2],[-2,1,2],[2,2,1]]); NiM+JSJBR0slJ21hdHJpeEc2IzclNyUiIiIhIiMiIiM3JUYrRipGLDclRixGLEYqUSlwcHJpbnQxNzYi g := vector([-9,0,-18]); NiM+JSJnR0slJ3ZlY3Rvckc2IzclISIqIiIhISM9USlwcHJpbnQxODYi a := vector(3); b := vector(3); NiM+JSJhRy0lJmFycmF5RzYkOyIiIiIiJDci NiM+JSJiRy0lJmFycmF5RzYkOyIiIiIiJDci xp := evalm(t*a+b); NiM+JSN4cEdLJSd2ZWN0b3JHNiM3JSwmKiYlInRHIiIiJiUiYUc2I0YsRixGLCYlImJHRi9GLCwmKiZGK0YsJkYuNiMiIiNGLEYsJkYxRjVGLCwmKiZGK0YsJkYuNiMiIiRGLEYsJkYxRjtGLFEpcHByaW50MTk2Ig== de := -map(diff,xp,t) + (A&*xp+t*g)=[0,0,0];# This is equivalent to the 2nd to last eqn on P.551 NiM+JSNkZUcvLChLJSd2ZWN0b3JHNiM3JSYlImFHNiMiIiImRiw2IyIiIyZGLDYjIiIkUSlwcHJpbnQyMDYiISIiLSUjJipHNiQlIkFHJSN4cEdGLiomJSJ0R0YuJSJnR0YuRi43JSIiIUZBRkE= de := evalm(%); NiM+JSNkZUcvSyUndmVjdG9yRzYjNyUsMiYlImFHNiMiIiIhIiIqJiUidEdGLkYrRi5GLiYlImJHRi1GLiooIiIjRi5GMUYuJkYsNiNGNUYuRi8qJkY1Ri4mRjNGN0YuRi8qKEY1Ri5GMUYuJkYsNiMiIiRGLkYuKiZGNUYuJkYzRjxGLkYuKiYiIipGLkYxRi5GLywwRjZGLyooRjVGLkYxRi5GK0YuRi8qJkY1Ri5GMkYuRi8qJkYxRi5GNkYuRi5GOUYuKihGNUYuRjFGLkY7Ri5GLiomRjVGLkY/Ri5GLiwyRjtGLyooRjVGLkYxRi5GK0YuRi4qJkY1Ri5GMkYuRi4qKEY1Ri5GMUYuRjZGLkYuKiZGNUYuRjlGLkYuKiZGMUYuRjtGLkYuRj9GLiomIiM9Ri5GMUYuRi9RKXBwcmludDIxNiJLRic2IzclIiIhRlVGVVEpcHByaW50MjJGUQ== map(diff,lhs(de),t)=[0,0,0]; # This is the "coefficient" of t, or eqn (3), P. 552 NiMvSyUndmVjdG9yRzYjNyUsKiYlImFHNiMiIiJGLComIiIjRiwmRio2I0YuRiwhIiIqJkYuRiwmRio2IyIiJEYsRiwiIipGMSwoKiZGLkYsRilGLEYxRi9GLComRi5GLEYzRixGLCwqKiZGLkYsRilGLEYsKiZGLkYsRi9GLEYsRjNGLCIjPUYxUSlwcHJpbnQyMzYiNyUiIiFGQUZB eq1 := %; NiM+JSRlcTFHL0slJ3ZlY3Rvckc2IzclLComJSJhRzYjIiIiRi4qJiIiI0YuJkYsNiNGMEYuISIiKiZGMEYuJkYsNiMiIiRGLkYuIiIqRjMsKComRjBGLkYrRi5GM0YxRi4qJkYwRi5GNUYuRi4sKiomRjBGLkYrRi5GLiomRjBGLkYxRi5GLkY1Ri4iIz1GM1EpcHByaW50MjQ2IjclIiIhRkNGQw== # The following verifies eq1 is equivalent to eqn(3) in the text: evalm(A&*a+g=[0,0,0]); NiMvSyUndmVjdG9yRzYjNyUsKiYlImFHNiMiIiJGLComIiIjRiwmRio2I0YuRiwhIiIqJkYuRiwmRio2IyIiJEYsRiwiIipGMSwoKiZGLkYsRilGLEYxRi9GLComRi5GLEYzRixGLCwqKiZGLkYsRilGLEYsKiZGLkYsRi9GLEYsRjNGLCIjPUYxUSlwcHJpbnQyNTYiS0YlNiM3JSIiIUZDRkNRKXBwcmludDI2Rj8= eq2 := subs(t=0,lhs(de))=[0,0,0]; # This is the "coefficient" of 1, or eqn (4), P 552 NiM+JSRlcTJHL0slJ3ZlY3Rvckc2IzclLComJSJhRzYjIiIiISIiJiUiYkdGLUYuKiYiIiNGLiZGMTYjRjNGLkYvKiZGM0YuJkYxNiMiIiRGLkYuLComRixGNUYvKiZGM0YuRjBGLkYvRjRGLiomRjNGLkY3Ri5GLiwqJkYsRjhGLyomRjNGLkYwRi5GLiomRjNGLkY0Ri5GLkY3Ri5RKXBwcmludDI3NiI3JSIiIUZFRkU= # The following verifies eq2 is equivalent to eqn(4): evalm(A&*b-a=[0,0,0]); NiMvSyUndmVjdG9yRzYjNyUsKiYlImFHNiMiIiIhIiImJSJiR0YrRiwqJiIiI0YsJkYvNiNGMUYsRi0qJkYxRiwmRi82IyIiJEYsRiwsKiZGKkYzRi0qJkYxRixGLkYsRi1GMkYsKiZGMUYsRjVGLEYsLComRipGNkYtKiZGMUYsRi5GLEYsKiZGMUYsRjJGLEYsRjVGLFEpcHByaW50Mjg2IktGJTYjNyUiIiFGRUZFUSlwcHJpbnQyOUZB # The following solve for a and b: linsolve(A,-g); NiNLJSd2ZWN0b3JHNiM3JSIiJiIiIyIiJVEpcHByaW50MzA2Ig== a := %; NiM+JSJhR0slJ3ZlY3Rvckc2IzclIiImIiIjIiIlUSlwcHJpbnQzMTYi linsolve(A,a); NiNLJSd2ZWN0b3JHNiM3JSIiIiIiISIiI1EpcHByaW50MzI2Ig== b := %; NiM+JSJiR0slJ3ZlY3Rvckc2IzclIiIiIiIhIiIjUSlwcHJpbnQzMzYi xp := evalm(a*t+b); NiM+JSN4cEdLJSd2ZWN0b3JHNiM3JSwmKiYiIiYiIiIlInRHRixGLEYsRiwsJComIiIjRixGLUYsRiwsJiomIiIlRixGLUYsRixGMEYsUSlwcHJpbnQzNDYi # Example 2 X := matrix([[3*exp(t),exp(-t)],[exp(t),exp(-t)]]); NiM+JSJYR0slJ21hdHJpeEc2IzckNyQsJComIiIkIiIiLSUkZXhwRzYjJSJ0R0YtRi0tRi82IywkRjEhIiI3JEYuRjJRKXBwcmludDM1NiI= I := matrix([[1,0],[0,1]]); NiM+JSJJR0slJ21hdHJpeEc2IzckNyQiIiIiIiE3JEYrRipRKXBwcmludDM2NiI= XI := augment(X,I); NiM+JSNYSUdLJSdtYXRyaXhHNiM3JDcmLCQqJiIiJCIiIi0lJGV4cEc2IyUidEdGLUYtLUYvNiMsJEYxISIiRi0iIiE3JkYuRjJGNkYtUSlwcHJpbnQzNzYi #We will use elementary row operations to reduce this to the form [I:X^(-1]: mulrow(XI,1,1/(3*exp(t)));#This multiplies row 1 by 1/(3*exp(t)) NiNLJSdtYXRyaXhHNiM3JDcmIiIiLCQqJiNGKCIiJEYoKiYtJSRleHBHNiMlInRHISIiLUYvNiMsJEYxRjJGKEYoRigsJComRitGKComRihGKEYuRjJGKEYoIiIhNyZGLkYzRjlGKFEpcHByaW50Mzg2Ig== addrow(%,1,2,-exp(t));#This adds -exp(t) times row 1 to row 2 NiNLJSdtYXRyaXhHNiM3JDcmIiIiLCQqJiNGKCIiJEYoKiYtJSRleHBHNiMlInRHISIiLUYvNiMsJEYxRjJGKEYoRigsJComRitGKComRihGKEYuRjJGKEYoIiIhNyZGOSwkKiYjIiIjRixGKEYzRihGKCNGMkYsRihRKXBwcmludDM5NiI= mulrow(%,2,3*exp(t)/2); #This multiplies row 2 by 3*exp(t)/2 NiNLJSdtYXRyaXhHNiM3JDcmIiIiLCQqJiNGKCIiJEYoKiYtJSRleHBHNiMlInRHISIiLUYvNiMsJEYxRjJGKEYoRigsJComRitGKComRihGKEYuRjJGKEYoIiIhNyZGOSomRi5GKEYzRigsJComI0YoIiIjRihGLkYoRjIsJComI0YsRj9GKEYuRihGKFEpcHByaW50NDA2Ig== simplify(%); NiNLJSdtYXRyaXhHNiM3JDcmIiIiLCQqJiNGKCIiJEYoLSUkZXhwRzYjLCQqJiIiI0YoJSJ0R0YoISIiRihGKCwkKiZGK0YoLUYuNiMsJEYzRjRGKEYoIiIhNyZGOkYoLCQqJiNGKEYyRigtRi42I0YzRihGNCwkKiYjRixGMkYoRj9GKEYoUSlwcHJpbnQ0MTYi addrow(%,2,1,-1/3*exp(-2*t)); NiNLJSdtYXRyaXhHNiM3JDcmIiIiIiIhLCYqJiNGKCIiJ0YoKiYtJSRleHBHNiMsJComIiIjRiglInRHRighIiJGKC1GMDYjRjVGKEYoRigqJiNGKCIiJEYoLUYwNiMsJEY1RjZGKEYoLCQqJiNGKEY0RihGLkYoRjY3JkYpRigsJComI0YoRjRGKEY3RihGNiwkKiYjRjtGNEYoRjdGKEYoUSlwcHJpbnQ0MjYi simplify(%); NiNLJSdtYXRyaXhHNiM3JDcmIiIiIiIhLCQqJiNGKCIiI0YoLSUkZXhwRzYjLCQlInRHISIiRihGKCwkKiYjRihGLUYoRi5GKEYzNyZGKUYoLCQqJiNGKEYtRigtRi82I0YyRihGMywkKiYjIiIkRi1GKEY7RihGKFEpcHByaW50NDM2Ig== # This right 2 by 2 matrix is the inverse of X. # Another way is to use Maple's "inverse" command: evalm(X); NiNLJSdtYXRyaXhHNiM3JDckLCQqJiIiJCIiIi0lJGV4cEc2IyUidEdGK0YrLUYtNiMsJEYvISIiNyRGLEYwUSlwcHJpbnQ0NDYi inverse(X); NiNLJSdtYXRyaXhHNiM3JDckLCQqJiMiIiIiIiNGKyomRitGKy0lJGV4cEc2IyUidEchIiJGK0YrLCQqJiNGK0YsRitGLUYrRjI3JCwkKiYjRitGLEYrKiZGK0YrLUYvNiMsJEYxRjJGMkYrRjIsJComIyIiJEYsRitGOkYrRitRKXBwcmludDQ1NiI= Xinv := simplify(%); NiM+JSVYaW52R0slJ21hdHJpeEc2IzckNyQsJComIyIiIiIiI0YtLSUkZXhwRzYjLCQlInRHISIiRi1GLSwkKiYjRi1GLkYtRi9GLUY0NyQsJComI0YtRi5GLS1GMDYjRjNGLUY0LCQqJiMiIiRGLkYtRjxGLUYtUSlwcHJpbnQ0NjYi # We next compute the integral in formula (13): subs(t=s,evalm(Xinv)); NiNLJSdtYXRyaXhHNiM3JDckLCQqJiMiIiIiIiNGKy0lJGV4cEc2IywkJSJzRyEiIkYrRissJComI0YrRixGK0YtRitGMjckLCQqJiNGK0YsRistRi42I0YxRitGMiwkKiYjIiIkRixGK0Y6RitGK1EpcHByaW50NDc2Ig== Xinvs := %; NiM+JSZYaW52c0dLJSdtYXRyaXhHNiM3JDckLCQqJiMiIiIiIiNGLS0lJGV4cEc2IywkJSJzRyEiIkYtRi0sJComI0YtRi5GLUYvRi1GNDckLCQqJiNGLUYuRi0tRjA2I0YzRi1GNCwkKiYjIiIkRi5GLUY8Ri1GLVEpcHByaW50NDg2Ig== fs := vector([exp(2*s),1]); NiM+JSNmc0dLJSd2ZWN0b3JHNiM3JC0lJGV4cEc2IywkKiYiIiMiIiIlInNHRi9GL0YvUSlwcHJpbnQ0OTYi evalm(Xinvs&*fs); NiNLJSd2ZWN0b3JHNiM3JCwmKiYjIiIiIiIjRioqJi0lJGV4cEc2IywkJSJzRyEiIkYqLUYuNiMsJComRitGKkYxRipGKkYqRipGKiomI0YqRitGKkYtRipGMiwmKiYjRipGK0YqKiYtRi42I0YxRipGM0YqRipGMiomIyIiJEYrRipGPUYqRipRKXBwcmludDUwNiI= simplify(%); NiNLJSd2ZWN0b3JHNiM3JCwmKiYjIiIiIiIjRiotJSRleHBHNiMlInNHRipGKiomI0YqRitGKi1GLTYjLCRGLyEiIkYqRjUsJiomI0YqRitGKi1GLTYjLCQqJiIiJEYqRi9GKkYqRipGNSomI0Y9RitGKkYsRipGKlEpcHByaW50NTE2Ig== map(int,%,s=0..t); NiNLJSd2ZWN0b3JHNiM3JCwoKiYjIiIiIiIjRiotJSRleHBHNiMlInRHRipGKiomRilGKi1GLTYjLCRGLyEiIkYqRipGKkY0LCgqJiNGKiIiJ0YqLUYtNiMsJComIiIkRipGL0YqRipGKkY0KiYjRj1GK0YqRixGKkYqIyIiJUY9RjRRKXBwcmludDUyNiI= temp := %; # Save this while we work on the first term in formula (13) NiM+JSV0ZW1wR0slJ3ZlY3Rvckc2IzckLCgqJiMiIiIiIiNGLC0lJGV4cEc2IyUidEdGLEYsKiZGK0YsLUYvNiMsJEYxISIiRixGLEYsRjYsKComI0YsIiInRiwtRi82IywkKiYiIiRGLEYxRixGLEYsRjYqJiNGP0YtRixGLkYsRiwjIiIlRj9GNlEpcHByaW50NTM2Ig== subs(t=0,evalm(Xinv)); NiNLJSdtYXRyaXhHNiM3JDckLCQqJiMiIiIiIiNGKy0lJGV4cEc2IyIiIUYrRissJComI0YrRixGK0YtRishIiI3JEYxLCQqJiMiIiRGLEYrRi1GK0YrUSlwcHJpbnQ1NDYi simplify(%); NiNLJSdtYXRyaXhHNiM3JDckIyIiIiIiIyMhIiJGKjckRisjIiIkRipRKXBwcmludDU1NiI= evalm(%&*[-1,0]); NiNLJSd2ZWN0b3JHNiM3JCMhIiIiIiMjIiIiRilRKXBwcmludDU2NiI= # Next, we add this to temp, and then left-multiply the sum by X: evalm(%+temp); NiNLJSd2ZWN0b3JHNiM3JCwoIyIiJCIiIyEiIiomIyIiIkYqRi4tJSRleHBHNiMlInRHRi5GLiomRi1GLi1GMDYjLCRGMkYrRi5GLiwoIyIiJiIiJ0YrKiYjRi5GOkYuLUYwNiMsJComRilGLkYyRi5GLkYuRisqJiNGKUYqRi5GL0YuRi5RKXBwcmludDU3NiI= evalm(X &* %); NiNLJSd2ZWN0b3JHNiM3JCwmKigiIiQiIiItJSRleHBHNiMlInRHRiosKCNGKSIiIyEiIiomI0YqRjFGKkYrRipGKiomRjRGKi1GLDYjLCRGLkYyRipGKkYqRioqJkY2RiosKCMiIiYiIidGMiomI0YqRj1GKi1GLDYjLCQqJkYpRipGLkYqRipGKkYyKiYjRilGMUYqRitGKkYqRipGKiwmKiZGK0YqRi9GKkYqRjlGKlEpcHByaW50NTg2Ig== simplify(%); NiNLJSd2ZWN0b3JHNiM3JCwqKiYjIiIqIiIjIiIiLSUkZXhwRzYjJSJ0R0YsISIiKiYjIiIlIiIkRiwtRi42IywkKiZGK0YsRjBGLEYsRixGLEY1RiwqJiMiIiYiIidGLC1GLjYjLCRGMEYxRixGMSwqKiYjRjVGK0YsRi1GLEYxKiYjRixGNUYsRjZGLEYsRitGLComI0Y8Rj1GLEY+RixGMVEpcHByaW50NTk2Ig==