If all parameters $a,z_s,z_h,c$ are real, then we have constrainsconstraints dictated by existence of integral $a(z_s,z_h,c)$. As an example let put $d=3, z_h=3/2, a=1/10$, from this data we can compute $c(z_s)$ as follows (we made substitution $y=x^{d+1})$:
Now we can extend this research for general case when a
follows a list, for example
d = 3; zh = 3/2; a0 = {1/20, 1/10, 1/5};
a[zs_?NumericQ, c_?NumericQ] :=
c zs^(d + 1)/(d + 1) NIntegrate[
Sqrt[1/(1 - (zs/zh)^(d + 1) y)/(1 -
c^2 zs^(2 d) y^(2 d/(d + 1)))], {y, 0, 1}];
Table[plot[i] =
ContourPlot[(a[zs, c] - a0[[i]]) Boole[c^2 zs^(2 d) <= 1] == 0, {zs,
0, zh}, {c, 0, 1}, PlotPoints -> 50,
FrameLabel -> {"\!\(\*SubscriptBox[\(r\), \(s\)]\)", "c"},
PlotLabel -> a0[[i]]], {i, 3}]
We can extract data directly from plot[i]
as follows
point = Table[
plot[i] //
Cases[#, GraphicsComplex[points_, ___] :> points, Infinity] &, {i,
Length[a0]}];
Using point
we can define c=f[i][rs]
and S[rs,i]
, and plot it as
Table[f[i] = Interpolation[point[[i]] // First], {i, Length[a0]}];
x0[i_] := Last[point[[i]] // First] // First
S[zs_?NumericQ, i_] :=
NIntegrate[
x^-d/Sqrt[(1 - (x/zh)^(d + 1)) (1 - f[i][zs]^2 x^(2 d))], {x, x0[i],
zs}]
Table[Plot[S[zs, i], {zs, x0[i], zh},
AxesLabel -> {"\!\(\*SubscriptBox[\(z\), \(s\)]\)", "S"},
PlotLabel -> a0[[i]]], {i, Length[a0]}]
Note, this solution is available due to constraints follow from the suggestion that a, rh,rs,c
are real only.