Message Boards Message Boards

Finding the Extreme Point of a Function

Posted 9 months ago

X is a function of t and dt. I want to use the Solve command to find the extreme points t and dt of X, but the results seem to be unable to be output. Is this the reason for the high computational complexity? What command should I use or how to modify my program to obtain the values of t and dt ?

{r = 22, l = 2 10^-1, c = 1 10^-4, vi = 24, initvalueil = 0, 
  initvaluevc = 0, tstart = 0, tend = 0.08};
\[CapitalDelta]vi = 0;
A = {{0, -1/l}, {1/c, -1/(r c)}};
G = Inverse[A];
B = {1/l, 0};
S1 = Inverse[DiagonalMatrix[{1, 1}] - dt*A + 1/2*dt*dt*A . A];
S2 = Inverse[DiagonalMatrix[{1, 1}] - dt*A];
STAR1 = S1 . G . (B*vi + G . B*\[CapitalDelta]vi/dt) - 
   G . (B*(vi + \[CapitalDelta]vi) + G . B*\[CapitalDelta]vi/dt);
STAR2 = S2 . G . (B*vi + G . B*\[CapitalDelta]vi/dt) - 
   G . (B*(vi + \[CapitalDelta]vi) + G . B*\[CapitalDelta]vi/dt);
X = Transpose[{{il, vc}}];
X0 = {0, 0};
X = (MatrixPower[S1, t - dt] - MatrixPower[S2, t - dt]) . 
    X0 + (DiagonalMatrix[{1, 1}] . (DiagonalMatrix[{1, 1}] - 
        MatrixPower[S1, t - dt]) . 
      Inverse[DiagonalMatrix[{1, 1}] - S1]) . 
    STAR1 - (DiagonalMatrix[{1, 1}] . (DiagonalMatrix[{1, 1}] - 
        MatrixPower[S2, t - dt]) . 
      Inverse[DiagonalMatrix[{1, 1}] - S2]) . STAR2;
il = X[[1]] // FullSimplify;

dilt = D[il, t];
dildt = D[il, dt];
Solve[dilt == 0 && dildt == 0 && tstart <= t <= tend, {t, dt}, Reals]
POSTED BY: James James

Yes, it is a very complicated transcendental system of equations. You may explore the problem with ContourPlot:

ContourPlot[{dilt == 0, dildt == 0}, {t, tstart, tend}, {dt, .8, 1.1}]
POSTED BY: Gianluca Gorni
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract