1

I have a function that is shown in the image, below. The point I am interested in extracting (numeric fine) is, in this case, 200. This appears to be the point at which one derivative is infinite.
It is also possible this is the inflection point?

What would be the best way(s) to tackle this in MMA?

Update 1: The point on the surface of this function I wish to obtain is {0.2,200}.It appears from the shape of the function it is easiest to first find the y point which always seems to have the 'features' shown in the plot.

Update 2: The following constraints always hold: a>0 and b>0

Plot3D[f[a,b], {a, 0, 400}, {b, 0, 0.5}]

Function soln: 200

    f[a_, b_] = 
 1/b 30.` (-7.681373803360649` + 
    0.011809163818525368` a (-((
        20.60129077457011` E^(-((
          0.03333333333333333` (-4.605170185988092` + 
             15.` (0.05` - b^2/2) + Log[a])^2)/b^2)))/(a b)) + (
       0.2060129077457011` E^(
        7.5` b^2 + 15.` (0.05` - b^2/2) - (
         0.03333333333333333` (-4.605170185988092` + 15.` b^2 + 
            15.` (0.05` - b^2/2) + Log[a])^2)/b^2))/b + 
       E^(7.5` b^2 + 
         15.` (0.05` - b^2/2)) (1 + 
          Erf[(0.18257418583505533` (-4.605170185988092` + 15.` b^2 + 
              15.` (0.05` - b^2/2) + Log[a]))/b])) - 
    0.0033333333333333335` (-3.54274914555761` (-100.` (1 + 
             Erf[(0.18257418583505533` (-4.605170185988092` + 
                 15.` (0.05` - b^2/2) + Log[a]))/b]) + 
          a E^(7.5` b^2 + 
            15.` (0.05` - b^2/2)) (1 + 
             Erf[(0.18257418583505533` (-4.605170185988092` + 
                 15.` b^2 + 15.` (0.05` - b^2/2) + Log[a]))/b])) + 
       0.23618327637050734` (-((
           309.01936161855167` E^(-((
             0.03333333333333333` (-4.605170185988092` + 
                15.` (0.05` - b^2/2) + Log[a])^2)/b^2)))/b) + (

          3.090193616185517` a E^(
           7.5` b^2 + 15.` (0.05` - b^2/2) - (
            0.03333333333333333` (-4.605170185988092` + 15.` b^2 + 
               15.` (0.05` - b^2/2) + Log[a])^2)/b^2))/b + 
          15.` a E^(
           7.5` b^2 + 
            15.` (0.05` - b^2/2)) (1 + 
             Erf[(0.18257418583505533` (-4.605170185988092` + 
                 15.` b^2 + 15.` (0.05` - b^2/2) + Log[a]))/b]))) + 
    0.11809163818525367` a^2 b^2 ((
       20.60129077457011` E^(-((
         0.03333333333333333` (-4.605170185988092` + 
            15.` (0.05` - b^2/2) + Log[a])^2)/b^2)))/(a^2 b) + (
       0.2060129077457011` E^(
        7.5` b^2 + 15.` (0.05` - b^2/2) - (
         0.03333333333333333` (-4.605170185988092` + 15.` b^2 + 
            15.` (0.05` - b^2/2) + Log[a])^2)/b^2))/(a b) + (
       1.3734193849713405` E^(-((
         0.03333333333333333` (-4.605170185988092` + 
            15.` (0.05` - b^2/2) + Log[a])^2)/
         b^2)) (-4.605170185988092` + 15.` (0.05` - b^2/2) + 
          Log[a]))/(a^2 b^3) - (1/(a b^3))
       0.013734193849713406` E^(
        7.5` b^2 + 15.` (0.05` - b^2/2) - (
         0.03333333333333333` (-4.605170185988092` + 15.` b^2 + 
            15.` (0.05` - b^2/2) + Log[a])^2)/
         b^2) (-4.605170185988092` + 15.` b^2 + 15.` (0.05` - b^2/2) +
           Log[a])))
Hedgehog
  • 624
  • 3
  • 15

1 Answers1

1

@michael-e2, yes it is difficult.

Warning: If you play with this function you'll likely be bitten by one or more of the issues described here - one of which (FindInstance) required a forced restart. Or you might encounter something new...?

So far this is the most general work around - general in the sense it works when the function returns a value. Outline: - Take a 'slice'/snapshot of the function near the origin. - Solve for a.

A picture is worth a thousand words:

ll=0
ul=25000

fa[a_] = f[a, b] /. {b -> 0.00001};
dataa = {#, fa[#]} & /@ Range[ll, ul, IntegerPart[(ul - ll)/100]];
imagea = Plot[fa[a], {a, 0, ul}, Epilog -> {Red, PointSize[0.001], Point[dataa]}];
imagea

Function illustration

FindRoot is then able to find a root - when searching from above. As warned above FindInstance required a restart for me.`

This is a workaround, so I'm happy to change the answer to something more rigorous.

Hedgehog
  • 624
  • 3
  • 15