mskalsi

290 Reputation

7 Badges

9 years, 348 days

MaplePrimes Activity


These are questions asked by mskalsi

Dear All

I want to use subs command to replace products in expression with entries from matrix. When I use "subs" command it returns same result as original without any substitution. But when I use "algsubs", it works fine, but is complicated to apply if there are large number of substitutions.

Please see followings:

 

M := Matrix([[U[1], U[2], -epsilon*U[1]+U[3], U[4], U[5], U[6]], [U[1], U[2], -epsilon*U[2]+U[3], epsilon*U[1]+U[4], epsilon*U[2]+U[5], U[6]], [e^epsilon*U[1], e^epsilon*U[2], U[3], U[4], U[5], U[6]], [U[1], -epsilon*U[1]+U[2], U[3], U[4], -epsilon*U[4]+U[5], U[6]-epsilon*(U[3]+2*U[5])+epsilon^2*U[4], U[1], e^(-epsilon)*U[2], U[3], e^epsilon*U[4], U[5], e^(-epsilon)*U[6]], [U[1], e^(-epsilon)*U[2], U[3], e^epsilon*U[4], U[5], e^(-epsilon)*U[6]], [epsilon*U[2]+U[1], U[2], U[3], U[4]+epsilon*(U[3]+2*U[5])+epsilon^2*U[6], epsilon*U[6]+U[5], U[6]]])

M := Vector(4, {(1) = ` 6 x 12 `*Matrix, (2) = `Data Type: `*anything, (3) = `Storage: `*rectangular, (4) = `Order: `*Fortran_order})

(1)

M[5, 1]; 1; M[5, 3]

U[1]

 

U[3]

(2)

expand((w*T[5]+z*T[4]+T[6])*(U[1]*a[1]+U[2]*a[2]+U[3]*a[3]+U[4]*a[4]+U[5]*a[5]+U[6]*a[6]))

w*T[5]*U[1]*a[1]+w*T[5]*U[2]*a[2]+w*T[5]*U[3]*a[3]+w*T[5]*U[4]*a[4]+w*T[5]*U[5]*a[5]+w*T[5]*U[6]*a[6]+z*T[4]*U[1]*a[1]+z*T[4]*U[2]*a[2]+z*T[4]*U[3]*a[3]+z*T[4]*U[4]*a[4]+z*T[4]*U[5]*a[5]+z*T[4]*U[6]*a[6]+T[6]*U[1]*a[1]+T[6]*U[2]*a[2]+T[6]*U[3]*a[3]+T[6]*U[4]*a[4]+T[6]*U[5]*a[5]+T[6]*U[6]*a[6]

(3)

subs(T[5]*U[1] = M[5, 1], T[5]*U[2] = M[5, 2], T[5]*U[3] = M[5, 3], w*T[5]*U[1]*a[1]+w*T[5]*U[2]*a[2]+w*T[5]*U[3]*a[3]+w*T[5]*U[4]*a[4]+w*T[5]*U[5]*a[5]+w*T[5]*U[6]*a[6]+z*T[4]*U[1]*a[1]+z*T[4]*U[2]*a[2]+z*T[4]*U[3]*a[3]+z*T[4]*U[4]*a[4]+z*T[4]*U[5]*a[5]+z*T[4]*U[6]*a[6]+T[6]*U[1]*a[1]+T[6]*U[2]*a[2]+T[6]*U[3]*a[3]+T[6]*U[4]*a[4]+T[6]*U[5]*a[5]+T[6]*U[6]*a[6])

w*T[5]*U[1]*a[1]+w*T[5]*U[2]*a[2]+w*T[5]*U[3]*a[3]+w*T[5]*U[4]*a[4]+w*T[5]*U[5]*a[5]+w*T[5]*U[6]*a[6]+z*T[4]*U[1]*a[1]+z*T[4]*U[2]*a[2]+z*T[4]*U[3]*a[3]+z*T[4]*U[4]*a[4]+z*T[4]*U[5]*a[5]+z*T[4]*U[6]*a[6]+T[6]*U[1]*a[1]+T[6]*U[2]*a[2]+T[6]*U[3]*a[3]+T[6]*U[4]*a[4]+T[6]*U[5]*a[5]+T[6]*U[6]*a[6]

(4)

Why this command subs in not replacing  products  T[5]*U[1], T[5]*U[2], T[5]*U[3] from matrix (1)NULL?????

algsubs(T[5]*U[1] = M[5, 1], w*T[5]*U[1]*a[1]+w*T[5]*U[2]*a[2]+w*T[5]*U[3]*a[3]+w*T[5]*U[4]*a[4]+w*T[5]*U[5]*a[5]+w*T[5]*U[6]*a[6]+z*T[4]*U[1]*a[1]+z*T[4]*U[2]*a[2]+z*T[4]*U[3]*a[3]+z*T[4]*U[4]*a[4]+z*T[4]*U[5]*a[5]+z*T[4]*U[6]*a[6]+T[6]*U[1]*a[1]+T[6]*U[2]*a[2]+T[6]*U[3]*a[3]+T[6]*U[4]*a[4]+T[6]*U[5]*a[5]+T[6]*U[6]*a[6])

z*T[4]*U[2]*a[2]+z*T[4]*U[3]*a[3]+z*T[4]*U[4]*a[4]+z*T[4]*U[5]*a[5]+z*T[4]*U[6]*a[6]+T[6]*U[2]*a[2]+T[6]*U[3]*a[3]+T[6]*U[4]*a[4]+T[6]*U[5]*a[5]+T[6]*U[6]*a[6]+(w*U[2]*a[2]+w*U[3]*a[3]+w*U[4]*a[4]+w*U[5]*a[5]+w*U[6]*a[6])*T[5]+(z*T[4]*a[1]+w*a[1]+T[6]*a[1])*U[1]

(5)

It worked !!!! But If I try "algsubs" like :

algsubs(T[5]*U[1] = M[5, 1], T[5]*U[2] = M[5, 2], T[5]*U[3] = M[5, 3], w*T[5]*U[1]*a[1]+w*T[5]*U[2]*a[2]+w*T[5]*U[3]*a[3]+w*T[5]*U[4]*a[4]+w*T[5]*U[5]*a[5]+w*T[5]*U[6]*a[6]+z*T[4]*U[1]*a[1]+z*T[4]*U[2]*a[2]+z*T[4]*U[3]*a[3]+z*T[4]*U[4]*a[4]+z*T[4]*U[5]*a[5]+z*T[4]*U[6]*a[6]+T[6]*U[1]*a[1]+T[6]*U[2]*a[2]+T[6]*U[3]*a[3]+T[6]*U[4]*a[4]+T[6]*U[5]*a[5]+T[6]*U[6]*a[6])

Error, invalid input: algsubs expects its 3rd argument, x, to be of type {name, function, list({name, function}), set({name, function})}, but received T[5]*U[3] = U[3]

 

See it is giving error !!! but still I can use "algsubs" as follow:

 

expand(algsubs(T[6]*U[6] = M[6, 6], expand(algsubs(T[6]*U[5] = M[6, 5], expand(algsubs(T[6]*U[4] = M[6, 4], expand(algsubs(T[6]*U[3] = M[6, 3], expand(algsubs(T[6]*U[2] = M[6, 2], expand(algsubs(T[6]*U[1] = M[6, 1], expand(algsubs(T[5]*U[6] = M[5, 6], expand(algsubs(T[5]*U[5] = M[5, 5], expand(algsubs(T[5]*U[4] = M[5, 4], expand(algsubs(T[5]*U[3] = M[5, 3], expand(algsubs(T[5]*U[2] = M[5, 2], expand(algsubs(T[5]*U[1] = M[5, 1], expand(algsubs(T[4]*U[6] = M[4, 6], expand(algsubs(T[4]*U[5] = M[4, 5], expand(algsubs(T[4]*U[4] = M[4, 4], expand(algsubs(T[4]*U[3] = M[4, 3], expand(algsubs(T[4]*U[2] = M[4, 2], expand(algsubs(T[4]*U[1] = M[4, 1], expand(algsubs(T[3]*U[6] = M[3, 6], expand(algsubs(T[3]*U[5] = M[3, 5], expand(algsubs(T[3]*U[4] = M[3, 4], expand(algsubs(T[3]*U[3] = M[3, 3], expand(algsubs(T[3]*U[2] = M[3, 2], expand(algsubs(T[3]*U[1] = M[3, 1], expand(algsubs(T[2]*U[6] = M[2, 6], expand(algsubs(T[2]*U[5] = M[2, 5], expand(algsubs(T[2]*U[4] = M[2, 4], expand(algsubs(T[2]*U[3] = M[2, 3], expand(algsubs(T[2]*U[3] = M[2, 3], expand(algsubs(T[2]*U[2] = M[2, 2], expand(algsubs(T[2]*U[1] = M[2, 1], expand(algsubs(T[1]*U[6] = M[1, 6], expand(algsubs(T[1]*U[5] = M[1, 5], expand(algsubs(T[1]*U[4] = M[1, 4], expand(algsubs(T[1]*U[3] = M[1, 3], expand(algsubs(T[1]*U[2] = M[1, 2], expand(algsubs(T[1]*U[1] = M[1, 1], w*T[5]*U[1]*a[1]+w*T[5]*U[2]*a[2]+w*T[5]*U[3]*a[3]+w*T[5]*U[4]*a[4]+w*T[5]*U[5]*a[5]+w*T[5]*U[6]*a[6]+z*T[4]*U[1]*a[1]+z*T[4]*U[2]*a[2]+z*T[4]*U[3]*a[3]+z*T[4]*U[4]*a[4]+z*T[4]*U[5]*a[5]+z*T[4]*U[6]*a[6]+T[6]*U[1]*a[1]+T[6]*U[2]*a[2]+T[6]*U[3]*a[3]+T[6]*U[4]*a[4]+T[6]*U[5]*a[5]+T[6]*U[6]*a[6]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

a[5]*epsilon*U[6]+a[1]*epsilon*U[2]+U[6]*a[6]+U[2]*a[2]+U[3]*a[3]+U[4]*a[4]+U[5]*a[5]+z*a[1]*U[1]+epsilon^2*U[6]*a[4]+epsilon*U[3]*a[4]+2*epsilon*U[5]*a[4]+U[6]*w*a[6]/e^epsilon+U[4]*e^epsilon*w*a[4]+w*a[1]*U[1]+U[2]*w*a[2]/e^epsilon+epsilon^2*z*U[4]*a[6]-epsilon*z*U[3]*a[6]-2*epsilon*z*U[5]*a[6]+w*U[3]*a[3]+w*U[5]*a[5]-z*a[5]*epsilon*U[4]-z*a[2]*epsilon*U[1]+z*U[2]*a[2]+z*U[3]*a[3]+z*U[4]*a[4]+z*U[5]*a[5]+z*U[6]*a[6]+a[1]*U[1]

(6)

But this procedure is complex, I want to use "subs" only. I know it complexity of terms in (3) might me creating problem.

collect(a[5]*epsilon*U[6]+a[1]*epsilon*U[2]+U[6]*a[6]+U[2]*a[2]+U[3]*a[3]+U[4]*a[4]+U[5]*a[5]+z*a[1]*U[1]+epsilon^2*U[6]*a[4]+epsilon*U[3]*a[4]+2*epsilon*U[5]*a[4]+U[6]*w*a[6]/e^epsilon+U[4]*e^epsilon*w*a[4]+w*a[1]*U[1]+U[2]*w*a[2]/e^epsilon+epsilon^2*z*U[4]*a[6]-epsilon*z*U[3]*a[6]-2*epsilon*z*U[5]*a[6]+w*U[3]*a[3]+w*U[5]*a[5]-z*a[5]*epsilon*U[4]-z*a[2]*epsilon*U[1]+z*U[2]*a[2]+z*U[3]*a[3]+z*U[4]*a[4]+z*U[5]*a[5]+z*U[6]*a[6]+a[1]*U[1], [U[1], U[2], U[3], U[4], U[5], U[6]])

(-epsilon*z*a[2]+w*a[1]+z*a[1]+a[1])*U[1]+(a[1]*epsilon+a[2]+w*a[2]/e^epsilon+z*a[2])*U[2]+(-epsilon*z*a[6]+epsilon*a[4]+w*a[3]+z*a[3]+a[3])*U[3]+(epsilon^2*z*a[6]+e^epsilon*w*a[4]-z*a[5]*epsilon+z*a[4]+a[4])*U[4]+(-2*epsilon*z*a[6]+2*epsilon*a[4]+w*a[5]+z*a[5]+a[5])*U[5]+(a[5]*epsilon+a[6]+epsilon^2*a[4]+w*a[6]/e^epsilon+z*a[6])*U[6]

(7)

``

 

Download Subs_not_giving_result.mwSubs_not_giving_result.mw

Regards

Dear All

Is there anybody who is working on contruction of optimal Lie algebra using Maple packages like DifferentialGeometry and LieAlgebra, I tried to find commands for constructing algebra in these packages but could not find such commands. I am sure these are only package that might help me. Following is Lie algebra whose optimal system is required:

 

with(PDEtools, SymmetryCommutator, InfinitesimalGenerator):

S[1], S[2], S[3], S[4], S[5], S[6], S[7], S[8], S[9], S[10], S[11] := [_xi[x] = 0, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = 1], [_xi[x] = 0, _xi[y] = t, _xi[t] = 0, _eta[u] = 0, _eta[v] = x], [_xi[x] = 0, _xi[y] = y, _xi[t] = 2*t, _eta[u] = -2*u, _eta[v] = -v], [_xi[x] = 0, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = t], [_xi[x] = 0, _xi[y] = 0, _xi[t] = 0, _eta[u] = 1, _eta[v] = y], [_xi[x] = 0, _xi[y] = 0, _xi[t] = 1, _eta[u] = 0, _eta[v] = 0], [_xi[x] = 1, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = 0], [_xi[x] = t, _xi[y] = 0, _xi[t] = 0, _eta[u] = 1, _eta[v] = 0], [_xi[x] = y, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = 2*x], [_xi[x] = x, _xi[y] = 0, _xi[t] = -t, _eta[u] = 2*u, _eta[v] = 2*v], [_xi[x] = 0, _xi[y] = 1, _xi[t] = 0, _eta[u] = 0, _eta[v] = 0]

[_xi[x] = 0, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = 1], [_xi[x] = 0, _xi[y] = t, _xi[t] = 0, _eta[u] = 0, _eta[v] = x], [_xi[x] = 0, _xi[y] = y, _xi[t] = 2*t, _eta[u] = -2*u, _eta[v] = -v], [_xi[x] = 0, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = t], [_xi[x] = 0, _xi[y] = 0, _xi[t] = 0, _eta[u] = 1, _eta[v] = y], [_xi[x] = 0, _xi[y] = 0, _xi[t] = 1, _eta[u] = 0, _eta[v] = 0], [_xi[x] = 1, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = 0], [_xi[x] = t, _xi[y] = 0, _xi[t] = 0, _eta[u] = 1, _eta[v] = 0], [_xi[x] = y, _xi[y] = 0, _xi[t] = 0, _eta[u] = 0, _eta[v] = 2*x], [_xi[x] = x, _xi[y] = 0, _xi[t] = -t, _eta[u] = 2*u, _eta[v] = 2*v], [_xi[x] = 0, _xi[y] = 1, _xi[t] = 0, _eta[u] = 0, _eta[v] = 0]

(1)

G[1] := InfinitesimalGenerator(S[1], [u(x, y, t), v(x, y, t)]); 1; G[2] := InfinitesimalGenerator(S[2], [u(x, y, t), v(x, y, t)]); 1; G[3] := InfinitesimalGenerator(S[3], [u(x, y, t), v(x, y, t)]); 1; G[4] := InfinitesimalGenerator(S[4], [u(x, y, t), v(x, y, t)]); 1; G[5] := InfinitesimalGenerator(S[5], [u(x, y, t), v(x, y, t)]); 1; G[6] := InfinitesimalGenerator(S[6], [u(x, y, t), v(x, y, t)]); 1; G[7] := InfinitesimalGenerator(S[7], [u(x, y, t), v(x, y, t)]); 1; G[8] := InfinitesimalGenerator(S[8], [u(x, y, t), v(x, y, t)]); 1; G[9] := InfinitesimalGenerator(S[9], [u(x, y, t), v(x, y, t)]); 1; G[10] := InfinitesimalGenerator(S[10], [u(x, y, t), v(x, y, t)]); 1; G[11] := InfinitesimalGenerator(S[11], [u(x, y, t), v(x, y, t)])

proc (f) options operator, arrow; diff(f, v) end proc

 

proc (f) options operator, arrow; t*(diff(f, y))+x*(diff(f, v)) end proc

 

proc (f) options operator, arrow; y*(diff(f, y))+2*t*(diff(f, t))-2*u*(diff(f, u))-v*(diff(f, v)) end proc

 

proc (f) options operator, arrow; t*(diff(f, v)) end proc

 

proc (f) options operator, arrow; diff(f, u)+y*(diff(f, v)) end proc

 

proc (f) options operator, arrow; diff(f, t) end proc

 

proc (f) options operator, arrow; diff(f, x) end proc

 

proc (f) options operator, arrow; t*(diff(f, x))+diff(f, u) end proc

 

proc (f) options operator, arrow; y*(diff(f, x))+2*x*(diff(f, v)) end proc

 

proc (f) options operator, arrow; x*(diff(f, x))-t*(diff(f, t))+2*u*(diff(f, u))+2*v*(diff(f, v)) end proc

 

proc (f) options operator, arrow; diff(f, y) end proc

(2)

``

 

Download Lie_Algebra_Classification.mwLie_Algebra_Classification.mw

   
 

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)
 

``

Regards

Dear All

I have an numerical integral to solve over set of 10 discrete values. The problem is, this integral have two dependent variables. Please see following:

Numerical_Integration.mw

How to Solve following integral numerically over discrete data values?

I[k] = int(rho(x)*x^4*eta[k](x)^2, x)

I[k] = int(rho(x)*x^4*eta[k](x)^2, x)

(1)

where we have data values are given as under

x=1, 2, 3, 4, 5, 6, 7, 8, 9, 10

rho(x)= 0.045, 0.0459, 0.0564, 0.05689, 0.06015, 0.06235, 0.0654, 0.0687, 0.07012, 0.07251

eta[k](x)= 1.15, 1.256, 1.56, 1.85, 1.86, 2.01, 2.35, 2.56, 2.86, 2.901

 

Download Numerical_Integration.mw

Regards

Dear All

How can we collect coefficient wrt certain differential ration in an expression?

See for detail:


with(PDEtools):

u := a[0]+a[1]*(diff(phi(xi), xi))/phi(xi)

a[0]+a[1]*(diff(phi(xi), xi))/phi(xi)

(1)

-k*(diff(u, `$`(xi, 2)))+alpha*(diff(u, `$`(xi, 3)))

-k*(a[1]*(diff(diff(diff(phi(xi), xi), xi), xi))/phi(xi)-3*a[1]*(diff(diff(phi(xi), xi), xi))*(diff(phi(xi), xi))/phi(xi)^2+2*a[1]*(diff(phi(xi), xi))^3/phi(xi)^3)+alpha*(a[1]*(diff(diff(diff(diff(phi(xi), xi), xi), xi), xi))/phi(xi)-4*a[1]*(diff(diff(diff(phi(xi), xi), xi), xi))*(diff(phi(xi), xi))/phi(xi)^2+12*a[1]*(diff(diff(phi(xi), xi), xi))*(diff(phi(xi), xi))^2/phi(xi)^3-3*a[1]*(diff(diff(phi(xi), xi), xi))^2/phi(xi)^2-6*a[1]*(diff(phi(xi), xi))^4/phi(xi)^4)

(2)

expand(dsubs(diff(phi(xi), `$`(xi, 2)) = -lambda*(diff(phi(xi), xi))-mu*phi(xi), -k*(a[1]*(diff(diff(diff(phi(xi), xi), xi), xi))/phi(xi)-3*a[1]*(diff(diff(phi(xi), xi), xi))*(diff(phi(xi), xi))/phi(xi)^2+2*a[1]*(diff(phi(xi), xi))^3/phi(xi)^3)+alpha*(a[1]*(diff(diff(diff(diff(phi(xi), xi), xi), xi), xi))/phi(xi)-4*a[1]*(diff(diff(diff(phi(xi), xi), xi), xi))*(diff(phi(xi), xi))/phi(xi)^2+12*a[1]*(diff(diff(phi(xi), xi), xi))*(diff(phi(xi), xi))^2/phi(xi)^3-3*a[1]*(diff(diff(phi(xi), xi), xi))^2/phi(xi)^2-6*a[1]*(diff(phi(xi), xi))^4/phi(xi)^4)))

-a[1]*(diff(phi(xi), xi))*alpha*lambda^3/phi(xi)-a[1]*alpha*lambda^2*mu-7*a[1]*(diff(phi(xi), xi))^2*alpha*lambda^2/phi(xi)^2-8*a[1]*(diff(phi(xi), xi))*alpha*lambda*mu/phi(xi)-a[1]*(diff(phi(xi), xi))*k*lambda^2/phi(xi)-2*a[1]*alpha*mu^2-a[1]*k*lambda*mu-12*a[1]*(diff(phi(xi), xi))^3*alpha*lambda/phi(xi)^3-8*a[1]*(diff(phi(xi), xi))^2*alpha*mu/phi(xi)^2-3*a[1]*(diff(phi(xi), xi))^2*k*lambda/phi(xi)^2-2*a[1]*(diff(phi(xi), xi))*k*mu/phi(xi)-6*a[1]*(diff(phi(xi), xi))^4*alpha/phi(xi)^4-2*a[1]*(diff(phi(xi), xi))^3*k/phi(xi)^3

(3)

How ca extract coefficients of fraction (diff(phi(xi), xi))/phi(xi) in (3) ????


Download Coefficients_of_Fractions.mw

Regards

Dear All

In student numerical package, for in case of Secant method, how can we force Maple to print procedure and result of every iteration like we do in calculations by hand??

It gives direct output like:

 

with(Student[NumericalAnalysis]):

f := x^3-7*x^2+14*x-6

x^3-7*x^2+14*x-6

(1)

Secant(f, x = [2.7, 3.2], tolerance = 10^(-2))

3.005775850

(2)

Secant(f, x = [2.7, 3.2], tolerance = 10^(-2), output = sequence)

2.7, 3.2, 3.100884956, 2.858406793, 3.026267866, 3.005775850

(3)

What is we want print actual procedure that carry out calculations in step (3) ?

*What if, **want to

Download Secant_Method.mw

Regards

First 7 8 9 10 11 12 13 Page 9 of 13