In order to solve This problem: What is the maximum value of coefficient fv with the constraint that the matrix is positive semi-definite?, I have used the following code (Determinant is computed by rule of Sarrus)

$Assumptions = θ ∈ Reals;
$Assumptions= σ ∈ Reals;
$Assumptions = -Pi <= θ < Pi;
$Assumptions = 0 <= σ^2 <= 1;

substitute = {x_ Conjugate[x_] -> Abs[x]^2};

CC = {{c11, c12, c13}, {Conjugate[c12], c22, c23}, {Conjugate[c13], Conjugate[c23], c33}};
CAlpha =1/8*{{3,0,1},{0,2,0},{1,0,3}};
CBeta[θ_] := 1/8 {{-2Cos[2θ], Sqrt[2] Sin[2 θ], 0}, {Sqrt[2]Sin[2 θ], 0, Sqrt[2] Sin[2 θ]}, {0, Sqrt[2] Sin[2 θ], 2Cos[2 θ]}};
CGamma[θ_] := 1/8 {{Cos[4θ], -Sqrt[2] Sin[4θ], -Cos[4θ]}, {-Sqrt[2] Sin[4θ], -2Cos[4θ], Sqrt[2] Sin[4θ]}, {-Cos[4θ], Sqrt[2] Sin[4θ], Cos[4θ]}};
p[σ_] := (2(1-σ^2)(1-2σ^2))/(1+σ^2);
q[σ_] := ((1-σ^2)(1-2σ^2)(1-3σ^2)(1-4σ^2))/((1+σ^2)(1+2σ^2)(1+3σ^2));
Cvol[θ_, σ_] := CAlpha + p[σ] CBeta[θ] + q[σ] CGamma[θ]

A = Refine[CC-Fv*Cvol[θ,σ]];
Inequality1 = Simplify[A[[1, 1]]] >= 0;

X1 = A[[1, 1]]*A[[2, 2]];
Y1 = Abs[A[[1, 2]]]^2;
Inequality2 = Simplify[X1 - Y1] >= 0;

Z1 = A[[1, 1]]*A[[2, 2]]*A[[3, 3]];
Z2 = 2Re[A[[1, 2]]*A[[2, 3]]*A[[3,1]]];
Z3 = A[[1, 1]]*Abs[A[[2, 3]]]^2;
Z4 = A[[3, 3]]*Abs[A[[1, 2]]]^2;
Z5 = A[[2, 2]]*Abs[A[[1, 3]]]^2;
Inequality3 = Simplify[Z1 + Z2 - Z3 - Z4 - Z5] >= 0;

Simplify[Reduce[Inequality1 && Inequality2 && Inequality3,Fv,Reals]]  

But it takes a lot of time and causes the computer to get hanged.
Is there any way that I can use to solve the problem parametrically or I just should solve the problem for specific values of $\sigma$ and $\theta$ ?

  • $\begingroup$ (1) Might be easier to solve separately for where each of those determinants equals zero, then take the smallest solution for fv (this assumes that for all smaller values the determinants are all positive, else the question does not have an answer). $\endgroup$ – Daniel Lichtblau Feb 9 '16 at 18:21
  • $\begingroup$ (2) It is definitely going to be easier to handle the case of no parameters, wherein they are given specific numeric values. For one, it will avoid having to keep track of algebraic functions of the parameters that may cross paths, hence switching larger and smaller values. $\endgroup$ – Daniel Lichtblau Feb 9 '16 at 18:23
  • $\begingroup$ @DanielLichtblau I know that having parameters fixed will help a lot but in fact I want to get a specific formula for final answer and use that in my matlab code. I don't want to use symbolic math toolbox in matlab $\endgroup$ – Sepideh Abadpour Feb 9 '16 at 18:29
  • $\begingroup$ I don't think a formula will be easy to obtain. Another possible improvement in that difection might be to separate variables into real and imaginary parts (which will double the number for those that are complex-valued). Then replace Conjugate and Abs with explicit algebraic expressions and solve over the domain Reals. Still not likely to be tractable but it will have a better chance by virtue of being all algebraic $\endgroup$ – Daniel Lichtblau Feb 9 '16 at 18:33
  • 2
    $\begingroup$ It is worth mentioning also that repeatedly assigning values to $Assumptions overwrites the list of standard assumptions with the new one. You probably wanted to add to it instead. You could group your assumptions in a list and assign them once instead. $\endgroup$ – MarcoB Feb 9 '16 at 19:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.