2
$\begingroup$

I have two complicated equations and NSolve cannot give the complete set of solutions:

NSolve[{-0.006`  d - 0.005999999999999999`  d  ProductLog[-90.53333333333333` E^(-72.73766666666666` + 90.53333333333333` d)] == 0, 

(1 - 0.0026/T) (0.0885 (1 - T) (0.8265^(14.9832))/(d^(14.9832) + 0.8265^(14.9832)) - 
  0.978 (d^(14.9832))/(d^(14.9832) + 0.8265^(14.9832))) == 0}, {d, T}]

(If I round up the numbers, NSolve is not able to solve it.) For the above, it returns:

{{d -> 0.742621, T -> 0.0026}, {d -> 0.742621, T -> -1.22352}}

There should be at least two other solutions. For example, a simple inspection of the equations shows that $d \to 0, T \to 1$ should also be a solution. Are there any commands besides NSolve for solving this system?

$\endgroup$
1
  • $\begingroup$ What do you mean by "if I round up the number"? Can you please show your code? Also, NSolve[Rationalize[eqs, 0], {d, T}, Reals] returns {{d -> 0, T -> 0.0026}, {d -> 0, T -> 1.}}. $\endgroup$
    – Domen
    Commented Mar 21 at 11:26

2 Answers 2

5
$\begingroup$

The first equation only depends on d. Therefore, we solve it first (We need to rationalize to prevent numerical problems):

{eq1, eq2} = {-0.006`   d - 0.005999999999999999`   d   ProductLog[-90.53333333333333`  \
E^(-72.73766666666666` + 90.53333333333333`  d)] == 
    0, (1 - 0.0026/T)  (0.0885  (1 - T)  (0.8265^(14.9832))/(d^(14.9832) + 0.8265^(14.9832)) - 
       0.978  (d^(14.9832))/(d^(14.9832) + 0.8265^(14.9832))) == 0};
Reduce[Rationalize@eq1, d]

enter image description here

Note the integer c[1]. Therefore, we have an infinite number of solutions. Let us start with the simplest one d=0; We can insert this in the second equation and solve it :

Reduce[eq2 /. d -> 0, T]

T == 0.0026 || T == 1.

Now for the more complex cases. We first set C[1]=0:

d1 = 218213/
   271600 + (
    15  (-1 + 2  I  \[Pi]  C[1] - Log[2] + Log[3] + Log[5] - Log[7] - 
       Log[97]))/1358 ;

Reduce[eq2 /. d -> d1 /. C[1] -> 0 , T]
    
T == -1.22352 || T == 0.0026

Or e.g. for C[1]=1:

Reduce[eq2 /. d -> d1 /. C[1] -> 1 , T]

T == 0.0026 - 1.37529*10^-19 I || T == 0.587761 - 2.33712 I

Note, this are complex solutions.

The general solution as a function of c[1] is a lengthy expression that I do not print here:

Reduce[eq2 /. d -> d1 , T]
$\endgroup$
6
  • 1
    $\begingroup$ I do not see what you mean. Where do I repeat d1 twice? $\endgroup$ Commented Mar 21 at 17:08
  • 1
    $\begingroup$ -1. Reduce[Rationalize[eq1, 0], d] performs d == 0 only. $\endgroup$
    – user64494
    Commented Mar 21 at 19:09
  • 1
    $\begingroup$ ({-0.006 d - 0.005999999999999999 d ProductLog[-90.53333333333333 \ E^(-72.73766666666666 + 90.53333333333333 d)] == 0, (1 - 0.0026/ T) (0.0885 (1 - T) (0.8265^(14.9832))/(d^(14.9832) + 0.8265^(14.9832)) - 0.978 (d^(14.9832))/(d^(14.9832) + 0.8265^(14.9832))) == 0} /. {d -> 218213/271600 + (15 (-1 + 2 I \[Pi] C[1] - Log[2] + Log[3] + Log[5] - Log[7] - Log[97]))/1358 218213/ 271600 + (15 (-1 + 2 I \[Pi] C[1] - Log[2] + Log[3] + Log[5] - Log[7] - Log[97]))/1358, T -> 1.91022 - 0.459196 I}) /. C[1] -> 1 $\endgroup$
    – user64494
    Commented Mar 21 at 19:25
  • 1
    $\begingroup$ results in {False,False}. $\endgroup$
    – user64494
    Commented Mar 21 at 19:25
  • 1
    $\begingroup$ I wonder the acceptance of a wrong answer. $\endgroup$
    – user64494
    Commented Mar 22 at 6:25
1
$\begingroup$
FindInstance[Rationalize[{-0.006   d - 
 0.005999999999999999   d   ProductLog[-90.53333333333333  
E^(-72.73766666666666 + 90.53333333333333  d)] == 
0, (1 - 0.0026/T)  (0.0885  (1 -T)  (0.8265^(14.9832))/(d^(14.9832) + 0.8265^(14.9832)) - 
0.978  (d^(14.9832))/(d^(14.9832) + 0.8265^(14.9832))) == 0},  0], {d, T}, Reals, 4]

{{d -> 0, T -> 13/5000}, {d -> 0, T -> 1}}

The same result without any warning is produced with Complexes instead of Reals.

$\endgroup$
2
  • 1
    $\begingroup$ Its verification {-0.006` d - 0.005999999999999999` d ProductLog[-90.53333333333333` \ E^(-72.73766666666666` + 90.53333333333333` d)] == 0, (1 - 0.0026/ T) (0.0885 (1 - T) (0.8265^(14.9832))/(d^(14.9832) + 0.8265^(14.9832)) - 0.978 (d^(14.9832))/(d^(14.9832) + 0.8265^(14.9832))) == 0} /. {d -> 0.742621, T -> -1.22352} produces {False, False}. $\endgroup$
    – user64494
    Commented Mar 22 at 6:21
  • 1
    $\begingroup$ The values {d -> 0.742621, T -> -1.22352} do not satisfy the original system (without rounding) as shown in my comment. $\endgroup$
    – user64494
    Commented Mar 22 at 13:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.