Determinant or matrix from symbolic equation

5 views (last 30 days)
Suppose as an example we have 6 symbolic variables,
syms a b c d e f
We have an expression
a*b*d*e^3-a^2*c^3*d+b^2*e*f*a*b+a*b*c*d*e*f -c^3*d^3-a*b*d^3*f +2*5*7^2*1*5
I would like to construct a matrix or determinant of any order or rank or rows or columns such that the determinant of that matrix gives the expression. For example b^2-ac may be expressed as [b,a;c,b]. The elements should be as simple as possible. Example instead of [c*b,a*f;c*d,b*e] matrix should be like [a,f,1;e,b,f]. The individual elements shall be as simple as possible
  12 Comments
Walter Roberson
Walter Roberson on 19 Jun 2020
John: What if we took advantage of the fact that no minimization of the size of the matrix has been imposed, as long as the entries are "as simple as possible" ?
Suppose for example we started by breaking the expressions into terms and putting the terms along diagonals:
a
-a b
b a d
a b c e
-c b e c e
-a c c f c e
2 b c d a d 1
? 5 d d e b 1 1
? ? 5 d d f 1 1 1
? ? ? 7 d d 1 1 1 1
? ? ? ? 7 f d 1 1 1 1
? ? ? ? ? 1 1 1 1 1 1 1
Then because the permutations that occur will include the diagonals (as a subset), all of the original terms will occur "as is" in the determinant.
Now by filling out with 0's can we prevent any other term of the determinant from having non-zero value? Even if it requires enlarging the matrix with a selection of 1's and 0's? My intuition is that it could done with at most 7 * 2^7 rows / columns to act as selectors (and quite possibly fewer.)

Sign in to comment.

Answers (1)

Saikat Banerjee
Saikat Banerjee on 19 Jun 2020
I think you all are going in impossible directions. Even Google's supercomputers wont be able to solve this problem then. Let it bring it down to simplistic small amount of finite equations. Let individual elements of solution matrix be x(i,j). Where i = 1 to 6 j = 1 to 6. Now compute the determinants and compare with the original equation. You will get a finite no of equation and probably a solution. Also you can compare co-efficients. Try this approach
  1 Comment
Walter Roberson
Walter Roberson on 19 Jun 2020
The determinant has 720 terms in 36 variables, which has to be compared to the 7 additive terms in 6 variables. You can hypothesize a term match such as a*b*d*e^3 == x11*x26*x34*x45*x52*x63 and solve for one of the 36 variables, and substitute the resulting variable into the list of 720 terms.
Having done that, you can look at the resulting list and find the ones that can no longer match because they would duplicate the e^3 term (which occurs only once. Each of those will involve some x terms that have not been dealt with yet. Pick one of them and hypothesize that it is 0 (in order to zero out the e^3 term), substitute that in, go on to the next term that still has an e^3, pick one of the x's from that, hypothesize it is 0, substitute, and so on, until you have reached a hypothesis of zero for a number of x terms that brings the overall sum into agreement with the e^3 terms. You can do this.
But... what if one of those hypotheses was wrong, and leads to a situation in which some other terms cannot match? Then you need to withdraw the hypothesis and go on to the next hypothesis there. And you will almost certainly get to the point where all of the terminal hypotheses fail and you have to go back and revoke an earlier hypothesis.
So to do this work, as well has writing the intelligent pattern matching logic, you have to have a robust multi-level backtracking system that can deal with about 36 levels of backtracking.
Mechanically possible? Probably. Length of time that it would take to find a solution... rather large !!!
A brute force solution that will work theoretically but in practice will take several decades, is not a realistic solution.

Sign in to comment.

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!