# Solve a symbolic equation in more than one variables

2 views (last 30 days)
Lu Zhao on 12 Apr 2021
Answered: Chaitanya Mallela on 25 Jun 2021
Hi,
There is an ODE equation in terms of "u(r)". And there are several other variables in the equation, one of them is called "m" which could be zero.
The problem is, the "Solve" command gives me a symbolic solution which is great, but with "m" in the denominator, namely, I cannot substitute m with zero later.
Is there anyway I could rewrite the solution without m in the denominator, or define "m" to be a possible zero value (I tried "assume(m>=0)" and it's not working) ?
Here is the equation:
clc
clear
syms u(r) alpha r m omega Omega U_j0 Uinf R0
syms U W(r)
eqn=diff(u, r, r)*(omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r)^2 == r^2*diff(u, r)*(((2*Omega*R0*(omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r)^2*(2*Omega*R0 - 3*Omega*r - m*omega*r - Omega*R0*m^2 + Omega*m^2*r + U_j0*alpha*m*r))/(r^5*((omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r)^2/r^2 - (2*Omega^2*(R0 - r)*(R0 - 2*r))/r^2)^2) + (Omega*m*(R0 + 2*r)*(omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r))/(r^3*((omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r)^2/r^2 - (2*Omega^2*(R0 - r)*(R0 - 2*r))/r^2)))*((omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r)^2/r^2 - (2*Omega^2*(R0 - r)*(R0 - 2*r))/r^2) - (omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r)^2/r^3 + (Omega*m*(R0 - 2*r)*(omega*r + Omega*R0*m - U_j0*alpha*r - Omega*m*r))/r^3);
sol=dsolve(eqn);
u2_exp=simplify(sol);
(By the way, since "m" could be any real value for my problem, i.e., -1, 0, 1 , 2 ....., it would be great to get a geneal solutions rather than just defining m = 0. )

Chaitanya Mallela on 25 Jun 2021
If you do not want m to be in the denominator then try giving a non zero value of m as m is present in the denominator it cannot take zero value or consider u2_exp as a symbolic function with m as argument to get general solution.