# Number of solutions of a differential equation

I am trying to find the solution to a homogenous differential equation of 2rd order. For that I use DSolve[]. What I get is a single expression, which should be the solution. But I am asked to find all the solutions of it. Is there a way in Mathematica to find all the solutions and not simplify all of them into one general solution?

My equation is:

f''[x] - (2*(2x^2 - 1))/(x(x^2 - 1))f'[x] + (4/(x^2 - 1))f[x] = HPL[{4}, x]/(x(1 - x)(1 + x))

I do:

DSolve[f''[x] - (2*(2*x^2 - 1))/(x*(x^2 - 1))*
f'[x] + (4/(x^2 - 1))f[x] == 0, f[x], x]


The result is:

    {{f[x] ->
C[2] + 1/
15 (x^2 (-24 + 18 x^2 + 5 x C[1] - 3 x^3 C[1]) +
3 (2 - 5 x^3 + 3 x^5) Log[1 - x] + (6 + 15 x^3 - 9 x^5) Log[
1 + x])}}


I have one solution, but since this is a differential equation of order 2, I need two solutions. How can I do that?

• There are infinite many solutions depending on the C[i], however, only 3 at a time can be independent. You can pick out solutions by specifying initial values. Jan 22, 2023 at 14:43
• Why do you have f'[3] in there? The ode is of degree 1. Why do you expect more than one general solution? since this is a differential equation of order 3, the order is 2, not 3. Jan 22, 2023 at 14:44
• @Nasser it was a typo. I edit and fixed it Jan 22, 2023 at 14:46
• @DanielHuber And If I do not have initial values and I am trying to execute the following equation, so that I find the particular solution: $$f_p(x)=\sum_{i=1}^n f_{h,i}(x)\int \frac{g(y)W_i(y)}{W(y)}$$ how do I proceed ? Jan 22, 2023 at 14:48
• Then you mean you are looking for the BASIS solutions. Not the general solution. ode of order 2 will have two linearly independent BASIS solutions. Think of it as vector space with 2 dimensions. The general solution is linear combination of the BASIS solutions. These BASIS solutions come from the solution of the homog. part of the ode. You can extract them by collecting on each constant of integration, The formula you have looks like the Variation of Parameters formula to find the particular solution, which requires knowing the BASIS solutions of the homog. part. Jan 22, 2023 at 15:03

First obtain the homog. solution in order to extract the basis functions $$f_1,f_2$$

odeHomog =   f''[x] - (2*(2*x^2 - 1))/(x*(x^2 - 1))*f'[x] + (4/(x^2 - 1)) f[x];
forcingFunction = x;
solH = DSolveValue[odeHomog == 0, f[x], x]


f1 = First@Cases[solH, any_*C[1] :> any]
f2 = First@Cases[solH, any_*C[2] :> any]


Now that we know the basis solution, find Wronskian

wronskian = Det[{{f1, f2}, {D[f1, x], D[f2, x]}}] // Simplify


Find particular solution using the variation of parameters formula. The forcing function is $$f(x)=x$$ in this example. The formula is

yp=-f1*Integrate[f2*forcingFunction/wronskian,x]+f2*Integrate[f1*forcingFunction/wronskian,x]


Add this to the homog. solution to find the general solution

 yg = C[1]*f1 + C[2]*f2 + yp


Verify against Mathematica's

 solbyMMA = DSolveValue[odeHomog == forcingFunction, f[x], x]


 solbyMMA == yg // FullSimplify


• Thank you! While I knew the theory, I didn't know how to implement it in mathematica. I have one question regarding your solution. How was mathematica able to solve the problem, meaning find the particular solution, once you substitute $g(y)$ (in the formula) with $PolyLog[4,x] = HPL[{4},x],$ without any Partial fraction decomposition. Because we need to simplify it, so that mathematica can solve it. Jan 22, 2023 at 15:43
• @imbAF How was mathematica able to solve the problem I assume Mathematica also uses variation of parameters to find particular solutions (unless it detects undetermined coefficients can be used, which is not always the case). As for the rest of your question. I am sorry, I do not follow it. I do not know what HPL[4,x] is. I am using the ode you posted above. But may be someone else will have an idea and answer that part. Jan 22, 2023 at 15:48
• $HPL[4,X]=Li_4(x)$ where i.e $Li_2(x)=-\int_0^x \frac{ln(1-x')}{x'}dx'$ and in general $Li_n(x)=\int_0^x \frac{Li_{n-1}(x')}{x'}dx'$. But thanks once again. Jan 22, 2023 at 15:54
• I am trying to implement your code, but I get the following error: "DSolveValue::deqx: Supplied equations are not differential or integral equations of the given functions." Jan 22, 2023 at 16:58
• @imbAF you must have some error in input. Can you post complete code you used? looks like you used different dependent variable in the call to DSolve than the one in the ode itself Jan 22, 2023 at 17:00