# Interpolate the following implicit function?

Posted 7 months ago
1252 Views
|
5 Replies
|
1 Total Likes
|
 Hi, I have a problem with solve. I need to define this function b of two variables, which is implicitly defined. I need it later to enter it into some other really nasty equations, which then again have to be solved numerically. So I wanted to define a grind of x and ss and then use an interpolation to get a smooth function version of b. However, I cannot even get a solution at a single point. (Maple does that without problems, so it shouldn't be a mathematical problem, but more of my stupidity). Below find the code an error text. If I use "NSolve" I even get no output. Any ideas?BestChristian  b[x_, ss_] := Solve[b == x - ss*Quantile[NormalDistribution, b], b, Reals] b[0.3,0.1] Solve::inex: Solve was unable to solve the system with inexact coefficients or the system obtained by direct rationalization of inexact numbers present in the system. Since many of the methods used by Solve require exact input, providing Solve with an exact version of the system may help. 
5 Replies
Sort By:
Posted 7 months ago
 Last my correct answer don't work for you ?Solve can't solve transcentental equation and is a mathematical problem.Maple gave you solution by RootOf function.It is eqivalent to Mathematica Root,but in MMA works only for polynomial equation. In Maple works for all equation. See in Maple Online Help.
Posted 7 months ago
 Dear Mariusz, The first answer did not work, as I wrote. Unfortunately, I don't know why. I didn't manage to transform the second one to a function definition, so that I can call it in other functions (including again NSolve or FindRoot and Integrals, so I need it quite often) later on. Best, Christian
Posted 7 months ago
 I checked my code on Mathematica 10.2 and 11.3 and works fine.In Mathematica help says: "NSolve deals primarily with linear and polynomial equations".
 If I am not wrong, the equation b == x - ss*InverseCDF[NormalDistribution[0, 1], b][[1]] should be equivalent to 2 b == Erfc[(b - x)/(Sqrt[2] ss)] and this one Mathematica can do: b[x_, ss_] := Solve[2 b == Erfc[(b - x)/(Sqrt[2] ss)] && 0 <= b <= 1, b, Reals] b[3/10, 1/10]