Evaluating Determinant in Mathematica

  • Context: Mathematica 
  • Thread starter Thread starter EngWiPy
  • Start date Start date
  • Tags Tags
    Mathematica
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 3K views
EngWiPy
Messages
1,361
Reaction score
61
Hello,

I have the following code in Mathematica:

Code:
G[k_, l_] := 
  MatrixForm[Table[If[i == j, 1, 0], {i, 1, 3}, {j, 1, 3}]];

Print[\!\(
\*UnderoverscriptBox[\(\[Sum]\), \(k = 1\), \(3\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(l = 1\), \(3\)]Det[G[k, l]]\)\)];

but it does not evaluate the determinant as a number, how to force it to do that?

Thanks in advance
 
Physics news on Phys.org
Get rid of that "MatrixForm". A table is by definition a matrix, the matrixform just changes display type. So you're operating on a display object rather than a mathematical object.

Then it works.

Remember also the way you have it, k and l are NOT the indices of the matrix. So those sums are just going to give you 9.

G[k_, l_] :=
Table[If[i == j, 1, 0], {i, 1, 3}, {j, 1, 3}][[k]][[l]];

would give you an indexable matrix but then you cannot operate on it like a matrix (det won't work). You'd have to male it a table again:
Det[Table[G[i, j], {i, 1, 3}, {j, 1, 3}]]
 
Yes, I know that the equations do not make sense, it is complicated to explain. But it is working now. The actual code is here, which gives an error (why?) and a very large number (not expected, I guess)!:

Code:
P = {1.6, 1.8, 2};
p = 1;
f1[k_, l_, i_, j_] := Gamma[4]*\!\(
\*UnderoverscriptBox[\(\[Sum]\), \(m = 0\), \(3\)]
\*FractionBox[\(1\), \(m!\)]*NIntegrate[
\*SuperscriptBox[\(Log[1 + p*y]\), \(2\)]*
\*SuperscriptBox[\(y\), \(3 - j\)]*Exp[\(-y\)]*
\*SuperscriptBox[\((
\*FractionBox[\(1\), \(P[\([\)\(i\)\(]\)] + y\)])\), \(-\((3 + 1 - 
           m)\)\)], {y, 0, Infinity}]\);
f2[k_, l_, i_, j_] := If[j == k, f3[k, l, i, j], f4[k, l, i, j]];
f3[k_, l_, i_, j_] := 
  Exp[1/P[[i]]]*
   NIntegrate[(Log[1 + (p*u)]*u^(3 - j))/(1/(P[[i]] + u))^(3 + 1)*
     Gamma[3 + 1, 1/(P[[i]]*u)], {u, 0, Infinity}];
f4[k_, l_, i_, j_] := 
  N[Gamma[3 - j + 1]*Exp[1/P[[i]]]*P[[i]]^j*Gamma[j, 1/P[[i]]]];
G[k_, l_] := 
  Table[If[k == l == j, f1[k, l, i, j], f2[k, l, i, j]], {i, 1, 
    3}, {j, 1, 3}];

Print[\!\(
\*UnderoverscriptBox[\(\[Sum]\), \(k = 1\), \(3\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(l = 1\), \(3\)]Det[G[k, l]]\)\)];

Best regards