I have been struggling with the following ode for several weeks, but I fail to solve it. So I post this question and my attempts and expect someone here could give some suggestions.
First, define an operator and a function:
op[r_] = (D[#, {r, 2}] - 1/r*D[#, r]) &; f0[r_] = 1/2*(2 r^2 Log[r/b] - r^2 + b^2); Next, the ode and 4 boundary conditions:
eqn = op[r][op[r][f1[r]]] == -I*(4 - 2*G*(1 + b)^2*Log[r/b] + G/2*(r^2 - b^2)*(1 + (1 + b)^2/r^2)); f1[b] == 0; f1'[b] == 0; bc3 = f1''[r] - 1/r*f1'[r] + G*(c*f0[r] - f1[r]); bc4 = f0'[r] - I*(f1'''[r] - 1/r*f1''[r] + 1/r^2*f1'[r]) + f0[r]/(1 + b)^2; where both G and b are related to a constant g (0<g<1, see below), bc3 and bc4 are the left-hand sides of the actual boundary conditions both of which vanish at r=1+b (b>0, see below). Note that c in bc3 is an unknown constant (maybe complex-valued) to be determined. There are also 2 simple bcs at r=b, please see below. The ode is defined from r=b=g/(1 - g) to r=b+1=1/(1 - g).
My goal is to find c and f1[r]. At the very least, I need to find the unknown parameter c. And this is the answer for checking
c=I*G/4(G/192*(1+2*b)^2*(41+82*b+30*b^2)-1/8*(1+2*b+5*b^2)*(3+6*b+2*b^2)-3/4*(1+b)^2*(1+2*b)*Log[(1+b)/b]+(1+b)^4*(Log[(1+b)/b])^2)-I/(2*(1+b))*(1/8*((1+2*b)/(1+b))^2-1/G) Method 1: direct method
sol1 = DSolve[{eqn /. G -> (4*(1 - g)^2)/(g^2 - 2 Log[g] - 1) /. b -> g/(1 - g), (f1[b] /. b -> g/(1 - g)) == 0, (f1'[b] /. b -> g/(1 - g)) == 0, (bc3 /. r -> (1 + b) /. b -> g/(1 - g) /. G -> (4*(1 - g)^2)/(g^2 - 2 Log[g] - 1)) == 0, (bc4 /. r -> (1 + b) /. b -> g/(1 - g)) == 0}, f1, (*{r, g/(1 - g), 1/(1 - g)}*) r, Assumptions -> g > 0 && g < 1 && c != 0] I got an error with the unsolved system returned:
DSolve::alliv: The function f1[r] was specified without dependence on all the independent variables. Each function must depend on all the independent variables.
Update on Feb 4 according to Michael's suggestion: The warning might arise from specifying a range of independent. By replacing {r, g/(1 - g), 1/(1 - g)} by r, method 1 produces a solution.
Method 2: find a general solution firstly, then use the bcs to determine the unknown constants
f1genesol = DSolve[eqn, f1, r, Assumptions -> b > 0 && {b, G} \[Element] Reals] //FullSimplify (*{{f1 -> Function[{r}, C[4] - 1/384 I r^2 (12 b^2 G + 24 b^3 G + 12 b^4 G - 120 r^2 - 66 G r^2 - 132 b G r^2 - 51 b^2 G r^2 + G r^4 + 192 I C[1] - 96 I C[2] + 96 I r^2 C[3] + 12 ((8 + G + 2 b G) r^2 + 16 I C[2]) Log[r] + 24 b^2 (1 + b)^2 G Log[r]^2 + 60 (1 + b)^2 G r^2 Log[r/b] - 24 (1 + b)^2 G r^2 Log[r/b]^2)]}}*) evaluating the boundary conditions with the general solution and storing in bcs
BCs = {f1[b], f1'[b], (bc3 /. r -> 1 + b), (bc4 /. r -> 1 + b)}; bcs = BCs /. f1genesol[[1]]; using the bc3 in bcs to determine the parameter c
csol = Simplify[Solve[bcs[[3]] == 0, c], b > 0] (*{{c -> (-384 I - 768 I b - 384 I b^2 + 96 I b^2 G + 192 I b^3 G + 96 I b^4 G + 65 I G^2 + 390 I b G^2 + 948 I b^2 G^2 + 1192 I b^3 G^2 + 813 I b^4 G^2 + 282 I b^5 G^2 + 38 I b^6 G^2 + 192 G C[1] + 384 b G C[1] + 192 b^2 G C[1] - 384 C[2] - 96 G C[2] - 192 b G C[2] - 96 b^2 G C[2] - 768 C[3] - 1536 b C[3] - 768 b^2 C[3] + 96 G C[3] + 384 b G C[3] + 576 b^2 G C[3] + 384 b^3 G C[3] + 96 b^4 G C[3] + 384 G C[4] - 12 I (1 + b)^4 G (-16 + 5 (1 + b)^2 G) Log[1 + 1/b] + 24 I (1 + b)^4 G (-8 + (1 + b)^2 G) Log[1 + 1/b]^2 - 12 I (1 + b)^2 (-64 + (1 + b)^2 (1 + 2 b) G^2 + 16 I G C[2]) Log[1 + b] - 24 I b^2 (1 + b)^4 G^2 Log[1 + b]^2)/(192 G (-1 - 2 b + 2 (1 + b)^2 Log[1 + 1/b]))}}*) Substituting c into bc3 and solving for the constants C[i] together with the remaining bcs
Solve[bcs[[1]] == 0 && bcs[[2]] == 0 && (bcs[[3]] /. csol[[1]]) == 0 && bcs[[4]] == 0, {C[1], C[2], C[3], C[4]}] But, it gives null.
Method 3: find solution with first 2 bcs, then solve the remaining two unknown constants with Resolve:
sol3 = DSolve[{eqn /. G -> (4*(1 - g)^2)/(g^2 - 2 Log[g] - 1) /. b -> g/(1 - g), (f1[b] /. b -> g/(1 - g)) == 0, (f1'[b] /. b -> g/(1 - g)) == 0}, f1, r, Assumptions -> g > 0 && g < 1] // Simplify (*Not show the long solution, which includes unknowns C1, C2, C3, C4*) next, using Resolve with Exists (Note it runs more than 6 hours before manually aborting)
Resolve[Exists[{C[1], C[2]}, Simplify[(bc3 /. r -> (1 + b) /. b -> g/(1 - g) /. G -> (4*(1 - g)^2)/(g^2 - 2 Log[g] - 1)) /. sol3[[1]]] == 0 && Simplify[(bc4 /. r -> (1 + b) /. b -> g/(1 - g)) /. sol3[[1]]] == 0], Complexes] Any suggestions are welcome!

rinstead of{r, g/(1 - g), 1/(1 - g)}that is interpreted as specifying three variable (I think), gives me a solution. Can you use it? $\endgroup$ccould be specified from some condition likeNorm[f1]<Infinityfor any0<g<1. In this regards could you provide some link to the original problem explanation? $\endgroup$c. Please see my update. $\endgroup$DSolvereturns a solution such thatbc3simplifies to0; that is, it satisfies the boundary condition. Thus solvingbc3 == 0is thus equivalent to solving0 == 0when the solution is plugged in, and all values ofcsatisfy it. That is whatSolve[]indicates by returning{{}}. (No solution is indicated by{}. Technically{{}}indicates the "solution set is full dimensional" according to the docs, not necessarily that all values are solutions.) $\endgroup$