Skip to main content
7 of 15
deleted 445 characters in body
theorist
  • 3.6k
  • 1
  • 16
  • 29

Why does Simplify equate this solution to zero?

For this question, I've borrowed the system of equations presented in Solving for a single variable across multiple equations. I've converted all values to exact numbers, to provide both Solve and Reduce with exact input.

I've found that, when Simplify is applied to the solution provided by Reduce, the solution disappears; this appears to be because Solve equates the solution to zero. This is not the case for Solve.

The following (undocumented) syntax means: "Solve the given system of equations for $\sigma \mathrm M$, VF and Vs, each time eliminating the other variables:

red = Reduce[
  Log10[f/(1 - f)] == pH - pKa + F Vs/(23/10 R T) && \[Sigma]M == 
  cF VF && Ee - Epzc == VF + Vs, \[Sigma]M, {Vs, VF}]

enter image description here

If I apply Simplify to the above, the solution for $\sigma \mathrm M$ is simplified, but it's no longer displayed as being the solution to $\sigma \mathrm M$; instead, it's equated to zero.

simpRed = Simplify@red

enter image description here

This can be seen if we pull out the solution for $\sigma \mathrm M$ and apply Simplify specifically to it

redSigmaM = red[[3, 2]]
Simplify@redSigmaM

enter image description here

I don't know why Simplify is doing this, because when I apply Simplify just to the RHS of the expression, it doesn't equate it to zero. While simpRHSredSigmaM does equal zero under the specific conditions that cF = 0, or Ee = Epzc and either R = 0 or T = 0, it does not appear that is generically equal to zero. In addition, a direct test by Simplify doesn't find it is generically equal to zero:

RHSredSigmaM = redSigmaM[[2]]
simpRHSredSigmaM = Simplify@RHSredSigmaM
simpRHSredSigmaM /. cF -> 0
simpRHSredSigmaM /. {Ee -> Epzc, R -> 0}
simpRHSredSigmaM /. {Ee -> Epzc, T -> 0}

enter image description here

Note that this is not due to my use of undocumented syntax with Reduce, since the same thing happens with standard syntax. I chose to use the undocumented syntax because it allowed me to more clearly focus just on the solution to $\sigma \mathrm M$. With the following standard syntax, I get other solutions as well, making for a messier output (suppressed here) and thus a less readable post:

red2 = Reduce[
   Log10[f/(1 - f)] == pH - pKa + F Vs/(23/10 R T) && \[Sigma]M == cF VF && 
    Ee - Epzc == VF + Vs, {\[Sigma]M, Vs, VF}];
Simplify@red2

enter image description here

I don't see this issue with the output of Solve. Solve's solution for $\sigma \mathrm M$ is initially in a different form from Reduce's, which could explain why Simplify doesn't show the same behavior with Solve.

sol = Solve[
  Log10[f/(1 - f)] == pH - pKa + F Vs/(23/10 R T) && \[Sigma]M == cF VF && 
   Ee - Epzc == VF + Vs, \[Sigma]M, {Vs, VF}]
simpSol = Simplify@sol

enter image description here

Nevertheless, a comparison of simpRHSredSigmaM and simpRHSsolSigmaM using SameQ shows they are identical:

simpRHSsolSigmaM = simpSol[[1, 1, 2]]
simpRHSredSigmaM === simpRHSsolSigmaM

enter image description here

theorist
  • 3.6k
  • 1
  • 16
  • 29