I have a function `functionSL`

as a function of `t`

(`t<0`

) where I want to find the * extremum* of the function and also find at which

`t`

it occurs. I took the derivative of `functionSL`

with `t`

which I wrote it as the function `functionSLD`

.`d = 3; torootL[a_?NumericQ, t_?NumericQ, zl_?NumericQ, zh_?NumericQ] := a - NIntegrate[(zl y^d)/Sqrt[(1 - (zl/zh)^(d + 1) y^(d + 1)) (1 + t^2 (1 - (zl/zh)^(d + 1))^-1 - y^(2 d))], {y, 0, 1}, PrecisionGoal -> 6, Method -> "GlobalAdaptive"] zs[a_?NumericQ, t_?NumericQ, zh_?NumericQ] := zl /. FindRoot[torootL[a, t, zl, zh], {zl, 0.5, 0, 1}] intSL[a_?NumericQ, t_?NumericQ, zh_?NumericQ] := NIntegrate[With[{b = zs[a, t, zh]/zh}, (((-1)/(d - 1)) (zs[a, t, zh]^(2 d) (1 + t^2 (1 - (zs[a, t, zh]/zh)^(d + 1))^-1))^-1 zs[a, t, zh]^(2 d)) x^d ((1 - (b x)^(d + 1))/(1 - (zs[a, t, zh]^(2 d) (1 + t^2 (1 - (zs[a, t, zh]/zh)^(d + 1))^-1))^-1 (zs[a, t, zh] x)^(2 d)))^(1/2) - ((b^(d + 1) (d + 1))/(2 (d - 1))) x ((1 - (zs[a, t, zh]^(2 d) (1 + t^2 (1 - (zs[a, t, zh]/zh)^(d + 1))^-1))^-1 (zs[a, t, zh] x)^(2 d))/(1 - (b x)^(d + 1)))^(1/2) + (b^(d + 1)x)/((1 - (b x)^(d + 1)) (1 - (zs[a, t, zh]^(2 d) (1 + t^2 (1 - (zs[a, t, zh]/zh)^(d + 1))^-1))^-1 (zs[a, t, zh] x)^(2 d)))^(1/2)], {x, 0, 1}, MinRecursion -> 20, MaxRecursion -> 20, AccuracyGoal -> 12, PrecisionGoal -> 10, Method -> {"GlobalAdaptive", "SingularityHandler" -> Automatic}] functionSL[a_?NumericQ, t_?NumericQ, zh_?NumericQ] := ((-((1 - (zs[a, t, zh]^(2 d) (1 + t^2 (1 - (zs[a, t, zh]/zh)^(d + 1))^-1))^-1 zs[a, t, zh]^(2 d)) (1 - (zs[a, t, zh]/zh)^(d + 1)))^(1/2)/(d - 1)) + intSL[a, t, zh] + 1)/(4 zs[a, t, zh]^(d - 1)) functionSLD[t_] := Evaluate[Derivative[0, 1, 0][functionSLL][0.01, t, 1]] `

I took some sample values of `functionSLD`

for some `t`

,

`In[44]:= functionSLD[0] Out[44]= -3.58024*10^-12 In[48]:= functionSLD[-10] Out[48]= 0.15527 In[90]:= functionSLD[-15] Out[90]= 0.0477369 In[91]:= functionSLD[-16] Out[91]= 0.041289 In[93]:= functionSLD[-16.5] Out[93]= 0.039934 In[59]:= functionSLD[-17] // Quiet Out[59]= 0.0424448 In[60]:= functionSLLP[-17.5] Power::infy: Infinite expression 1/0. encountered. NIntegrate::izero: Integral and error estimates are 0 on all integration subregions. Try increasing the value of the MinRecursion option. If value of integral may be 0, specify a finite value for the AccuracyGoal option. NIntegrate::izero: Integral and error estimates are 0 on all integration subregions. Try increasing the value of the MinRecursion option. If value of integral may be 0, specify a finite value for the AccuracyGoal option. Power::infy: Infinite expression 1/0. encountered. NIntegrate::izero: Integral and error estimates are 0 on all integration subregions. Try increasing the value of the MinRecursion option. If value of integral may be 0, specify a finite value for the AccuracyGoal option. General::stop: Further output of NIntegrate::izero will be suppressed during this calculation. Power::infy: Infinite expression 1/0. encountered. General::stop: Further output of Power::infy will be suppressed during this calculation. FindRoot::lstol: The line search decreased the step size to within tolerance specified by AccuracyGoal and PrecisionGoal but was unable to find a sufficient decrease in the merit function. You may need more than MachinePrecision digits of working precision to meet these tolerances. FindRoot::lstol: The line search decreased the step size to within tolerance specified by AccuracyGoal and PrecisionGoal but was unable to find a sufficient decrease in the merit function. You may need more than MachinePrecision digits of working precision to meet these tolerances. FindRoot::lstol: The line search decreased the step size to within tolerance specified by AccuracyGoal and PrecisionGoal but was unable to find a sufficient decrease in the merit function. You may need more than MachinePrecision digits of working precision to meet these tolerances. General::stop: Further output of FindRoot::lstol will be suppressed during this calculation. FindRoot::jsing: Encountered a singular Jacobian at the point {zl} = {0.825567}. Try perturbing the initial point(s). FindRoot::jsing: Encountered a singular Jacobian at the point {zl} = {0.825567}. Try perturbing the initial point(s). FindRoot::jsing: Encountered a singular Jacobian at the point {zl} = {0.825567}. Try perturbing the initial point(s). General::stop: Further output of FindRoot::jsing will be suppressed during this calculation. In[61]:= functionSLD[-17.5] // Quiet Out[61]= $ Aborted `

I expect `functionSL`

to have an extremum for * at least two values* (looking only at

`t<0`

) so that `functionSLD`

has at least two roots, I think I got one root at `t=0`

which is clear in the plot of $ \frac{dS}{dt}$ and it really confirms my expectations, the other is located somewhere else (it seems clear in the plot).You can see that at `t=0`

, `functionsSLD = -3.58024*10^-12`

which is essentially zero, as `t`

goes to lower values `functionSLD`

rises and then goes down again and it looks like it is going to be essentially zero again but as you can see at `t=-17.5`

I aborted the calculation (in the sample values of `functionSLD`

) because it just takes so long and it seems like there is a problem.

In the end, what I want to see is a plot of `functionSLD[t]`

vs. `t`

($ \frac{dS}{dt}$ ).

I would also like somebody to check my `NIntegrate Rules`

if there is something wrong with it, or can it be improved. I added a singularity handler because an error occurred which I pasted in the above sample values code.