Timeline for Extract and solve complex solutions from ContourPlot/FindRoot
Current License: CC BY-SA 4.0
29 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Apr 1 at 16:40 | comment | added | Alex Trounev | @Gallagher This code is a little beat faster. Well, then we need some analytical research. It is why I ask you to open a new topic. | |
Apr 1 at 15:26 | comment | added | Gallagher | @Alex Trounev It doesn't work, still the same problem. | |
Mar 29 at 15:53 | comment | added | Alex Trounev |
Let try this function ftest1[k_?NumericQ, z_?NumericQ] := 1 - k^2/(z)^2 - Rationalize[5.811300019879834 *^7, 30]/(k^3 z) NIntegrate[(E^(-10/ u) (k Sqrt[ 1 - u^2] (-1 + z) - (k^2 (-1 + u^2) + (-1 + z)^2) ArcTanh[(k Sqrt[ 1 - u^2])/(-1 + z)]))/u^4, {u, 0, 0, 1}, Method -> "PrincipalValue"]`
|
|
Mar 29 at 13:39 | comment | added | Gallagher | @Alex Trounev, Yes exactly. | |
Mar 29 at 12:31 | comment | added | Alex Trounev | @Gallagher This is a good question. Answer depends on what you are looking for. It seems that you try to compute integral of singular function in complex plain. Is it correct? | |
Mar 29 at 1:17 | comment | added | Gallagher |
@Alex Trounev maybe there is no solutions Sol2 for k>2 ?
|
|
Mar 16 at 12:07 | comment | added | Alex Trounev |
@Gallagher I don't think that we can solve this problem without mathematical research. Your first question about data retrieved from ContourPlot has an answer. But your second question and problem you try to solve is not clear. Maybe we need redefine ArcTanh[] to get unique solution, since algorithm implemented in Mathematica is not so advanced to solve this problem. Could you start a new topic with your problem explanation?
|
|
Mar 15 at 23:39 | comment | added | Gallagher |
@Alex Trounev it's still the same problem that I can't solve. For k=<1.9 all the roots Re[Sol2(k)] obtained by FindRoot[ftest[k, z] == 0] are good <<1 and correspond perfectly to the roots found by ContourPlot , however for k>1.9 FindRoot gives false values different from those calculated by ContouPlot , look for example Re[Sol2(2)]=5.38 by FindRoot while Re[Sol2(2)]=0.137 by ContouPlot , this is the crucial problem of this post. Perhaps the precision? Do you have an idea please?
|
|
Mar 11 at 10:35 | comment | added | Alex Trounev |
No, sign is on since limits of integral also should be swapped. Actually I tested ftest compare to f , they show same result, but ftest is faster.
|
|
Mar 10 at 23:44 | comment | added | Gallagher | Let us continue this discussion in chat. | |
Mar 10 at 23:40 | comment | added | Gallagher |
@Alex Trounev, in update 1, when you replace s with 1/u to get the new function ftest , I think you are missing a minus sign in the integrand of ftest , which comes from the differential ds=(-1/u²)du , can you check it please?
|
|
Mar 10 at 17:33 | comment | added | Gallagher |
@Alex Trounev, thank you so much for your remarkable answers. You did everything correctly, I am grateful to you. But there is still a problem to solve that I can't understand. For k=<1.8 the roots Re[Sol2(k)] obtained by FindRoot[ftest[k, z] == 0] are good <<1 , however for k>1.8 FindRoot gives the same false value, i.e. Sol2(1.9)=Sol2(2)=Sol2(2.5)=5,..... . Maybe the precision? Do you have an idea please?
|
|
Mar 10 at 16:18 | history | edited | Alex Trounev | CC BY-SA 4.0 |
added 1905 characters in body
|
Mar 10 at 13:51 | history | edited | Alex Trounev | CC BY-SA 4.0 |
added 1908 characters in body
|
Mar 10 at 12:32 | comment | added | Alex Trounev | @Gallagher You are right, see Update 1 to my answer. | |
Mar 10 at 12:31 | history | edited | Alex Trounev | CC BY-SA 4.0 |
added 1844 characters in body
|
Mar 9 at 23:26 | comment | added | Gallagher |
@Alex Trounev Re[Sol2(k)]<<1 from ContourPlot for various k . You can check it for k<<1 .
|
|
Mar 9 at 23:19 | comment | added | Alex Trounev |
@Gallagher How you know this estimation Re[Sol2(k)]<<1 ? From my solution it follows, that Im[Sol2(k)]<<1 .
|
|
Mar 9 at 22:02 | comment | added | Gallagher |
@Alex Trounev: the roots Re[Sol2(k)] that you plotted do not seem to be the correct results, because they must be all less than 1, Re[Sol2(k)]<<1 . I think that using FindRoot is better but I can't do it.
|
|
Mar 9 at 19:56 | comment | added | Alex Trounev | @Gallagher It takes a time to compute data. Could you also try to improve this solution? | |
Mar 9 at 19:52 | comment | added | Gallagher |
@Alex: thank you so much, but I can't see the plot well, can you improve it please? A precision, for k<<1 Sol2 verifies Re[Sol2]<<<1 and not greater than 1.
|
|
Mar 9 at 19:29 | comment | added | Alex Trounev | @Gallagher Please see update to my answer. | |
Mar 9 at 19:28 | history | edited | Alex Trounev | CC BY-SA 4.0 |
added 1924 characters in body
|
Mar 9 at 17:01 | comment | added | Gallagher |
@Alex ContourPlot gives only two roots for a given k , please how to plot from selected roots all roots Re[Sol2(k)] and Im[Sol2(k)] for 0<k<20 ?
|
|
Mar 9 at 15:54 | comment | added | azerbajdzan | @Gallagher: How precise must these roots be? Extracting roots from plots is not very precise. The left roots are quite off in both cases. Try to substitute them in the original function. | |
Mar 9 at 15:38 | comment | added | Gallagher | How to plot these Re and Im roots please? | |
Mar 9 at 15:11 | comment | added | Alex Trounev |
@Gallagher We don't need large range. At k>3 all roots are same {0.0328947, -1.11022*10^-16} .
|
|
Mar 9 at 14:38 | comment | added | Gallagher |
Thank you @Alex Trounev so much for the answer, please for question 2, how to plot all Re[Sol2(k)] and Im[Sol2] versus k for 0<k<20 ? Many thanks.
|
|
Mar 9 at 11:00 | history | answered | Alex Trounev | CC BY-SA 4.0 |