Harry Garst

219 Reputation

5 Badges

16 years, 337 days

MaplePrimes Activity


These are questions asked by Harry Garst

This works fine, but I was wondering whether it could be done in a simple way.
 

``

restart; kernelopts(version); interface(version)

`Maple 2018.2, X86 64 WINDOWS, Nov 16 2018, Build ID 1362973`

 

`Standard Worksheet Interface, Maple 2018.2, Windows 10, November 16 2018 Build ID 1362973`

(1)

kollect := proc (p::`+`, y) local x; subs(x = y, collect(subs(y = x, p), x)) end proc

kollect(kollect(kollect(kollect(expand(add(mul(k)*add(k), `in`(k, combinat:-choose([i1, i2, i3, i4], 3)))), i1^2), i2^2), i3^2), i4^2)

(i1*i2+i1*i3+i2*i3)*i4^2+(i1*i2+i1*i4+i2*i4)*i3^2+(i1*i3+i1*i4+i3*i4)*i2^2+(i2*i3+i2*i4+i3*i4)*i1^2

(2)

``


thanks in advance,

Harry

Download nested_comb.mw

Two lines that look the same, produce different results. The first lines gives an error message, but the next line that looks the same, does not.

copying and pasting both lines in Notepad reveals the difference:

Determinant*(R1 . B+R2 . B+R3 . B+R4 . A)

Determinant(R1 . B+R2 . B+R3 . B+R4 . A)

It seems that there is a hidden character (the asterisk) in the first line that produces the error.

In the worksheet itself you cannot see the asterisk, but using the arrow keys you can notice that there is another character.

It's hard to debug your code if there are hidden characters.

``

restart; with(LinearAlgebra)

kernelopts(version)*interface(version)

`Maple 2018.2, X86 64 WINDOWS, Nov 16 2018, Build ID 1362973`*`Standard Worksheet Interface, Maple 2018.2, Windows 10, November 16 2018 Build ID 1362973`

(1)

A := Matrix(4, 4, symbol = a, shape = symmetric)

B := Matrix(4, 4, symbol = b, shape = symmetric)

R1 := Matrix(4, 4); R1[1, 1] := 1; R2 := Matrix(4, 4); R2[2, 2] := 1; R3 := Matrix(4, 4); R3[3, 3] := 1; R4 := Matrix(4, 4); R4[4, 4] := 1

Determinant*(R1.B+R2.B+R3.B+R4.A)

Error, (in LinearAlgebra:-Multiply) invalid arguments

 

Determinant(R1.B+R2.B+R3.B+R4.A)

-a[1, 4]*b[1, 2]*b[2, 3]*b[3, 4]+a[1, 4]*b[1, 2]*b[2, 4]*b[3, 3]+a[1, 4]*b[1, 3]*b[2, 2]*b[3, 4]-a[1, 4]*b[1, 3]*b[2, 3]*b[2, 4]-a[1, 4]*b[1, 4]*b[2, 2]*b[3, 3]+a[1, 4]*b[1, 4]*b[2, 3]^2+a[2, 4]*b[1, 1]*b[2, 3]*b[3, 4]-a[2, 4]*b[1, 1]*b[2, 4]*b[3, 3]-a[2, 4]*b[1, 2]*b[1, 3]*b[3, 4]+a[2, 4]*b[1, 2]*b[1, 4]*b[3, 3]+a[2, 4]*b[1, 3]^2*b[2, 4]-a[2, 4]*b[1, 3]*b[1, 4]*b[2, 3]-a[3, 4]*b[1, 1]*b[2, 2]*b[3, 4]+a[3, 4]*b[1, 1]*b[2, 3]*b[2, 4]+a[3, 4]*b[1, 2]^2*b[3, 4]-a[3, 4]*b[1, 2]*b[1, 3]*b[2, 4]-a[3, 4]*b[1, 2]*b[1, 4]*b[2, 3]+a[3, 4]*b[1, 3]*b[1, 4]*b[2, 2]+a[4, 4]*b[1, 1]*b[2, 2]*b[3, 3]-a[4, 4]*b[1, 1]*b[2, 3]^2-a[4, 4]*b[1, 2]^2*b[3, 3]+2*a[4, 4]*b[1, 2]*b[1, 3]*b[2, 3]-a[4, 4]*b[1, 3]^2*b[2, 2]

(2)

``


 

Download weird.mw

I could not find a command that splits a polynomial in parts based on leading integer coefficients, so I wrote a procedure. It works well, but I still wonder if there is no simpler way of doing this?
My aim is to investigate whether there is some way of factoring this and other polynomials.
 

kind regards,
Harry Garst
 

``

restart; with(ListTools); with(LinearAlgebra)

p := 2*x^3*y+2*x^3*z+4*x^2*y^2+24*x^2*y*z+4*x^2*z^2+2*x*y^3+24*x*y^2*z+24*x*y*z^2+2*x*z^3+2*y^3*z+4*y^2*z^2+2*y*z^3-40*x^2*y-40*x^2*z-40*x*y^2-40*x*z^2-40*y^2*z-40*y*z^2+108*x*y+108*x*z+108*y*z-9*x-9*y-9*z+36

2*x^3*y+2*x^3*z+4*x^2*y^2+24*x^2*y*z+4*x^2*z^2+2*x*y^3+24*x*y^2*z+24*x*y*z^2+2*x*z^3+2*y^3*z+4*y^2*z^2+2*y*z^3-40*x^2*y-40*x^2*z-40*x*y^2-40*x*z^2-40*y^2*z-40*y*z^2+108*x*y+108*x*z+108*y*z-9*x-9*y-9*z+36

(1)

p1 := 2*x^3*y+2*x^3*z+2*x*y^3+2*x*z^3+2*y^3*z+2*y*z^3

2*x^3*y+2*x^3*z+2*x*y^3+2*x*z^3+2*y^3*z+2*y*z^3

(2)

p2 := 24*x^2*y*z+24*x*y^2*z+24*x*y*z^2

24*x^2*y*z+24*x*y^2*z+24*x*y*z^2

(3)

p3 := 4*x^2*y^2+4*x^2*z^2+4*y^2*z^2

4*x^2*y^2+4*x^2*z^2+4*y^2*z^2

(4)

p4 := -40*x^2*y-40*x^2*z-40*x*y^2-40*x*z^2-40*y^2*z-40*y*z^2

-40*x^2*y-40*x^2*z-40*x*y^2-40*x*z^2-40*y^2*z-40*y*z^2

(5)

p5 := 108*x*y+108*x*z+108*y*z

108*x*y+108*x*z+108*y*z

(6)

p6 := -9*x-9*y-9*z

-9*x-9*y-9*z

(7)

p7 := 36

36

(8)

simplify(p-p1-p2-p3-p4-p5-p6-p7)

0

(9)

Knip := proc (p) local g, h, i, j, N, X, Q; g := sort(ListTools:-MakeUnique([seq(lcoeff([op(p)][j]), j = 1 .. nops([op(p)]))])); h := 0; N := Matrix(nops([op(p)]), 1); X := Matrix(nops([op(g)]), 1); Q := convert([op(p)], Matrix); for j in g do h := h+1; N[h, 1] := convert([seq(ifelse(has(lcoeff([op(p)][i]), j), 1, 0), i = 1 .. nops([op(p)]))], Matrix); X[h, 1] := LinearAlgebra:-Trace(Q.N[h, 1]^%T) end do; return X end proc

proc (p) local g, h, i, j, N, X, Q; g := sort(ListTools:-MakeUnique([seq(lcoeff([op(p)][j]), j = 1 .. nops([op(p)]))])); h := 0; N := Matrix(nops([op(p)]), 1); X := Matrix(nops([op(g)]), 1); Q := convert([op(p)], Matrix); for j in g do h := h+1; N[h, 1] := convert([seq(ifelse(has(lcoeff([op(p)][i]), j), 1, 0), i = 1 .. nops([op(p)]))], Matrix); X[h, 1] := LinearAlgebra:-Trace(Typesetting:-delayDotProduct(Q, N[h, 1]^%T)) end do; return X end proc

(10)

Knip(p)

Matrix(%id = 18446747088530918086)

(11)

simplify(p-Trace(Matrix(1, 7, 1).Knip(p)))

0

(12)

``


 

Download knip.mw

 

Is het possible to use the circletimes symbol  ⊗ from Maple's Operators palette as an alias for KroneckerProduct(A,B)?

Instead of KroneckerProduct(A,B) :  A ⊗ B

An abbriviation would be convenient for the following expression:

A ⊗ B ⊗ C ⊗ D ⊗ E ⊗ F ⊗ G

 

I tried alias, macro, applyrule but was not successfull.

Is is possible or should I add it to the Maple 2019 wishlist?

Harry

 

factor_problem.mw

I want to factor the following polynomial:

Teller := 2*i1^4*i2*i3+2*i1^4*i2*i4+2*i1^4*i2*i5+2*i1^4*i3*i4+2*i1^4*i3*i5+2*i1^4*i4*i5+4*i1^3*i2^2*i3+4*i1^3*i2^2*i4+4*i1^3*i2^2*i5+4*i1^3*i2*i3^2+6*i1^3*i2*i3*i4+6*i1^3*i2*i3*i5+4*i1^3*i2*i4^2+6*i1^3*i2*i4*i5+4*i1^3*i2*i5^2+4*i1^3*i3^2*i4+4*i1^3*i3^2*i5+4*i1^3*i3*i4^2+6*i1^3*i3*i4*i5+4*i1^3*i3*i5^2+4*i1^3*i4^2*i5+4*i1^3*i4*i5^2+2*i1^2*i2^3*i3+2*i1^2*i2^3*i4+2*i1^2*i2^3*i5+4*i1^2*i2^2*i3^2+6*i1^2*i2^2*i3*i4+6*i1^2*i2^2*i3*i5+4*i1^2*i2^2*i4^2+6*i1^2*i2^2*i4*i5+4*i1^2*i2^2*i5^2+2*i1^2*i2*i3^3+6*i1^2*i2*i3^2*i4+6*i1^2*i2*i3^2*i5+6*i1^2*i2*i3*i4^2+24*i1^2*i2*i3*i4*i5+6*i1^2*i2*i3*i5^2+2*i1^2*i2*i4^3+6*i1^2*i2*i4^2*i5+6*i1^2*i2*i4*i5^2+2*i1^2*i2*i5^3+2*i1^2*i3^3*i4+2*i1^2*i3^3*i5+4*i1^2*i3^2*i4^2+6*i1^2*i3^2*i4*i5+4*i1^2*i3^2*i5^2+2*i1^2*i3*i4^3+6*i1^2*i3*i4^2*i5+6*i1^2*i3*i4*i5^2+2*i1^2*i3*i5^3+2*i1^2*i4^3*i5+4*i1^2*i4^2*i5^2+2*i1^2*i4*i5^3+2*i1*i2^3*i3*i4+2*i1*i2^3*i3*i5+2*i1*i2^3*i4*i5+4*i1*i2^2*i3^2*i4+4*i1*i2^2*i3^2*i5+4*i1*i2^2*i3*i4^2+6*i1*i2^2*i3*i4*i5+4*i1*i2^2*i3*i5^2+4*i1*i2^2*i4^2*i5+4*i1*i2^2*i4*i5^2+2*i1*i2*i3^3*i4+2*i1*i2*i3^3*i5+4*i1*i2*i3^2*i4^2+6*i1*i2*i3^2*i4*i5+4*i1*i2*i3^2*i5^2+2*i1*i2*i3*i4^3+6*i1*i2*i3*i4^2*i5+6*i1*i2*i3*i4*i5^2+2*i1*i2*i3*i5^3+2*i1*i2*i4^3*i5+4*i1*i2*i4^2*i5^2+2*i1*i2*i4*i5^3+2*i1*i3^3*i4*i5+4*i1*i3^2*i4^2*i5+4*i1*i3^2*i4*i5^2+2*i1*i3*i4^3*i5+4*i1*i3*i4^2*i5^2+2*i1*i3*i4*i5^3+4*i1^3*i2*i3+4*i1^3*i2*i4+4*i1^3*i2*i5+4*i1^3*i3*i4+4*i1^3*i3*i5+4*i1^3*i4*i5+8*i1^2*i2^2*i3+8*i1^2*i2^2*i4+8*i1^2*i2^2*i5+8*i1^2*i2*i3^2+12*i1^2*i2*i3*i4+12*i1^2*i2*i3*i5+8*i1^2*i2*i4^2+12*i1^2*i2*i4*i5+8*i1^2*i2*i5^2+8*i1^2*i3^2*i4+8*i1^2*i3^2*i5+8*i1^2*i3*i4^2+12*i1^2*i3*i4*i5+8*i1^2*i3*i5^2+8*i1^2*i4^2*i5+8*i1^2*i4*i5^2+4*i1*i2^3*i3+4*i1*i2^3*i4+4*i1*i2^3*i5+8*i1*i2^2*i3^2+12*i1*i2^2*i3*i4+12*i1*i2^2*i3*i5+8*i1*i2^2*i4^2+12*i1*i2^2*i4*i5+8*i1*i2^2*i5^2+4*i1*i2*i3^3+12*i1*i2*i3^2*i4+12*i1*i2*i3^2*i5+12*i1*i2*i3*i4^2+48*i1*i2*i3*i4*i5+12*i1*i2*i3*i5^2+4*i1*i2*i4^3+12*i1*i2*i4^2*i5+12*i1*i2*i4*i5^2+4*i1*i2*i5^3+4*i1*i3^3*i4+4*i1*i3^3*i5+8*i1*i3^2*i4^2+12*i1*i3^2*i4*i5+8*i1*i3^2*i5^2+4*i1*i3*i4^3+12*i1*i3*i4^2*i5+12*i1*i3*i4*i5^2+4*i1*i3*i5^3+4*i1*i4^3*i5+8*i1*i4^2*i5^2+4*i1*i4*i5^3+4*i2^3*i3*i4+4*i2^3*i3*i5+4*i2^3*i4*i5+8*i2^2*i3^2*i4+8*i2^2*i3^2*i5+8*i2^2*i3*i4^2+12*i2^2*i3*i4*i5+8*i2^2*i3*i5^2+8*i2^2*i4^2*i5+8*i2^2*i4*i5^2+4*i2*i3^3*i4+4*i2*i3^3*i5+8*i2*i3^2*i4^2+12*i2*i3^2*i4*i5+8*i2*i3^2*i5^2+4*i2*i3*i4^3+12*i2*i3*i4^2*i5+12*i2*i3*i4*i5^2+4*i2*i3*i5^3+4*i2*i4^3*i5+8*i2*i4^2*i5^2+4*i2*i4*i5^3+4*i3^3*i4*i5+8*i3^2*i4^2*i5+8*i3^2*i4*i5^2+4*i3*i4^3*i5+8*i3*i4^2*i5^2+4*i3*i4*i5^3+i1^4+3*i1^3*i2+3*i1^3*i3+3*i1^3*i4+3*i1^3*i5+3*i1^2*i2^2+6*i1^2*i2*i3+6*i1^2*i2*i4+6*i1^2*i2*i5+3*i1^2*i3^2+6*i1^2*i3*i4+6*i1^2*i3*i5+3*i1^2*i4^2+6*i1^2*i4*i5+3*i1^2*i5^2+i1*i2^3+3*i1*i2^2*i3+3*i1*i2^2*i4+3*i1*i2^2*i5+3*i1*i2*i3^2+10*i1*i2*i3*i4+10*i1*i2*i3*i5+3*i1*i2*i4^2+10*i1*i2*i4*i5+3*i1*i2*i5^2+i1*i3^3+3*i1*i3^2*i4+3*i1*i3^2*i5+3*i1*i3*i4^2+10*i1*i3*i4*i5+3*i1*i3*i5^2+i1*i4^3+3*i1*i4^2*i5+3*i1*i4*i5^2+i1*i5^3+4*i2^2*i3*i4+4*i2^2*i3*i5+4*i2^2*i4*i5+4*i2*i3^2*i4+4*i2*i3^2*i5+4*i2*i3*i4^2+4*i2*i3*i5^2+4*i2*i4^2*i5+4*i2*i4*i5^2+4*i3^2*i4*i5+4*i3*i4^2*i5+4*i3*i4*i5^2

What is the best strategy using Maple(latest version)? In a previous, less complicated example, the polynomial could be not be factored in a single expression, but I was succesfull to factor it in multiple factors.

kind regards,

Harry Garst

1 2 3 4 5 6 7 Page 3 of 10