dsolve1(exp(b_+c_), y_,x_,p_) := if(p<=1, if(has(c,y) and hasnot(b,y), int(exp(-c),y,p)=int(exp(b),x,p)*p!+C_1, if(has(b,y) and hasnot(c,y), int(exp(-b),y,p)=int(exp(c),x,p)*p!+C_1 ))); dsolve1(a_*b_,y_,x_,p_):= if(p>1 and p<=2 and has(b,y) and isconstant(a), int(1/sqrt(2a*int(b,y)),y,p-1)=C_1+x, if(hasnot(a,y) and hasnot(b,x), solve(int(1/b,y,p)=p!*int(a,x,p)+gsolution(0,y,x,p),y), if(has(a,y) and hasnot(a,x), if(hasnot(b,y), solve(int(1/a,y,p)=p!*int(b,x,p)+gsolution(0,y,x,p),y), int(1/a/b,y,p)=x^p+gsolution(0,y,x,p) )))); dsolve1(a_*b_,y_,x_,-1):= if(hasnot(a,y) and hasnot(b,x), solve(d(1/b,y)=d(a,x)+C_1,y), if(hasnot(b,y) and hasnot(a,x), solve(d(1/a,y)=d(b,x)+C_1,y) )); dsolve1(a_*b_,y_,x_,1):= if(hasnot(a,y) and hasnot(b,x), solve(int(1/b,y)=int(a,x)+C_1,y), if(hasnot(b,y) and hasnot(a,x), solve(int(1/a,y)=int(b,x)+C_1,y) )); #dsolve1(b_*y_^n_, y_,x_,q_) := If(isfree(b,y),If(isfree(b,x), if(n==-1 and q==2, sqrt(-b)*exp(-inverseerf(sqrt(2)/sqrt(pi)*x+C_1)^2) and -sqrt(-b)*exp(-inverseerf(sqrt(2)/sqrt(pi)*x+C_1)^2), block(f1:=(1/b*fallingfactorial(q/(1-n),q))^(1/(n-1)),f2:=(C_1+x)^(q/(1-n)), if(iseven(q), f1*(C_1-x)^(q/(1-n)) and f1*f2, f1*f2 and if(isodd(n), -f1*f2 )))), if(n==-1, block(k:=d(b,x,q),if(k<>0 and hasnot(k,x), b/sqrt(k) and -b/sqrt(k) )), block(f2:=int(simplify(1/b),x,q),pp:=simplify(b^2*f2^n),if(pp==1,f2,if(pp==-1,-f2 ))) ))); dsolve1((c_+x_)*z_,y_,x_,p_):=if(hasnot(c,z,x),block(f1:=dsolve(x*z,y,x,p), replace(f1,x,c+x)) ); dsolve1((c_+x_)^n_*z1_,y_,x_,p_):=if(hasnot(c,x),block(f1:=dsolve(x^n*z1,y,x,p), replace(f1,x,c+x)) ); dsolve1(b_*(c_+y_), y_,x_,p_) := if(d(c,x,p)==0, if(hasnot(b,y), block(f1:=dsolve(b*y,y,x,p), if(-left(f1)==right(f1), left(f1)-c and right(f1)-c,f1-c )), -c)); dsolve1(b*(c_+a_*y_), y_,x_,p_) := if(isconstant(a) and d(c,x,p)==0, if(hasnot(b,y), block(f1:=dsolve(b*y,y,x,p), if(-left(f1)==right(f1), left(f1)/sqrt(a)-c/a and right(f1)/sqrt(a)-c/a,f1/sqrt(a)-c/a )), -c/a)); dsolve1(b_*(c_+y_)^n_, y_,x_,p_) := if(d(c,x,p)==0, if(hasnot(b,y), block(f1:=dsolve(b*y^n,y,x,p), if(-left(f1)==right(f1), left(f1)-c and right(f1)-c,f1-c )), if(n>0,-c))); dsolve1(b_*(c_+a_*y_)^n_, y_,x_,p_) := if(isconstant(a) and d(c,x,p)==0, if(hasnot(b,y), block(f1:=dsolve(b*a^n*y^n,y,x,p), if(-left(f1)==right(f1), left(f1)-c/a and right(f1)-c/a,f1-c/a )), if(n>0,-c/a))); dsolve1(a_*(b_+c_+f1_),y_,x_,p_):= if(isconstant(a),dsolve(a*b+a*c+a*f1,y,x,p) ); dsolve1(m_/n_,y_,x_,q_) := if(abs(q)<=1 and has(n,y), if(hasnot(m,x),dsolve(expand(replace(n,x,zz)/m),zz,y,q)=x, block(f2:=(d(m,y)+d(n,x)), if(f2==0,block(p:=int(n,y),p-int(m+d(p,x),x)=C_1), if(hasnot(simplify(-f2/n),y),block(f1:=exp(int(simplify(-f2/n),x)),p:=int(f1*n,y), expand(p-int(f1*m+d(p,x),x))=-C_1), if(hasnot(simplify(-f2/m),x),block(f1:=exp(int(simplify(-f2/m),y)),p:=int(f1*n,y), expand(p-int(f1*m+d(p,x),x))=-C_1) )) )))); dsolve1(n_/m_,y_,x_,q_) :=if(abs(q)<=1 and has(m,x) and has(m,y), if(hasnot(n,x), dsolve(expand(replace(m,x,zz)/n),zz,y,q)=x, block(f2:=(d(n,y)+d(m,x)), if(f2==0,block(p:=int(m,y),p-int(n+d(p,x),x)=C_1), if(hasnot(simplify(-f2/m),y),block(f1:=exp(int(simplify(-f2/m),x)),p:=int(f1*m,y), expand(p-int(f1*n+d(p,x),x))=-C_1), if(hasnot(simplify(-f2/n),x),block(f1:=exp(int(simplify(-f2/n),y)),p:=int(f1*m,y), expand(p-int(f1*n+d(p,x),x))=-C_1) )) )))); dsolve1(y_/b_, y_,x_,q_) := if(abs(q)<=1 and has(b,y),if(has(b,x), dsolve(replace(b/y,x,zz),zz,y,q)=x )); dsolve1(1/b_, y_,x_,q_) := if(abs(q)<=1 and has(b,y),if(has(b,x), dsolve(replace(b,x,zz),zz,y,q)=x )); dsolve1(b_*y_^n_, y_,x_,q_) := If(isfree(b,y),If(isfree(b,x), if(n==-1 and q==2, -sqrt(-b)*exp(-inverseerf(sqrt(2)/sqrt(pi)*x+C_1)^2) and sqrt(-b)*exp(-inverseerf(sqrt(2)/sqrt(pi)*x+C_1)^2), block(f1:=(1/b*fallingfactorial(q/(1-n),q))^(1/(n-1)),f2:=(C_1+x)^(q/(1-n)), if(iseven(q), f1*(C_1-x)^(q/(1-n)) and f1*f2, f1*f2 and if(isodd(n), -f1*f2 )))), if(n==-1, block(dd:=d(b,x,q),if(dd<>0 and hasnot(dd,x), -b/sqrt(dd) and b/sqrt(dd) )), block(f2:=int(simplify(1/b),x,q),pp:=simplify(b^2*f2^n),if(pp==1,f2,if(pp==-1,-f2 ))) ))); #dsolve1(m_/n_,y_,x_,p_) :=if(p>0 and p<=1 and has(n,x) and has(n,y), block(f2:=(d(m,y,p)+d(n,x,p)), if(f2==0,block(f1:=int(n,y,p),f1-int(m+d(f1,x,p),x,p)=C_1), if(hasnot(simplify(-f2/n),y),block(f1:=exp(int(simplify(-f2/n),x,p)),pp:=int(f1*n,y), pp-int(f1*m+d(pp,x,p),x,p)=C_1), if(hasnot(simplify(-f2/m),x),block(f1:=exp(int(simplify(-f2/m),y,p)),pp:=int(f1*n,y), pp-int(f1*m+d(pp,x,p),x,p)=C_1) )) ))); #dsolve1(n_/m_,y_,x_,p_) :=if(p>0 and p<=1 and has(m,x) and has(m,y), block(f2:=(d(n,y,p)+d(m,x,p)), if(f2==0,block(f1:=int(m,y,p),f1-int(n+d(f1,x,p),x,p)=C_1), if(hasnot(simplify(-f2/m),y),block(f1:=exp(int(simplify(-f2/m),x,p)),pp:=int(f1*m,y), pp-int(f1*n+d(pp,x,p),x)=C_1), if(hasnot(simplify(-f2/n),x),block(f1:=exp(int(simplify(-f2/n),y,p)),pp:=int(f1*m,y), pp-int(f1*n+d(pp,x,p),x)=C_1) )) ))); #dsolve1(a_+exp(c_+y_), y_,x_,p_) := if(hasnot(a,y) and d(c,x,p)==0, dsolve(a+exp(y),y,x,p)-c ); #dsolve1(a_+b_*exp(c_+y_), y_,x_,p_) := if(hasnot(a,b,y) and d(c,x,p)==0, dsolve(a+b*exp(y),y,x,p)-c ); #dsolve1(exp(c_+y_)*z_, y_,x_,p_) := if(hasnot(z,y) and d(c,x,p)==0, dsolve(exp(y)*z,y,x,p)-c ); #dsolve1(exp(c_+x_)*z_, y_,x_,p_) := if(hasnot(z,x), replace(dsolve(exp(x)*z,y,x,p),x,x+c) ); #dsolve1(b_/y_, y_,x_,2) := if(isconstant(b), -sqrt(-b)*exp(-inverseerf(sqrt(2)/sqrt(pi)*x+C_1)^2) and sqrt(-b)*exp(-inverseerf(sqrt(2)/sqrt(pi)*x+C_1)^2) ); #3x; dsolve1(a_*(c_+y_)*z_,y_,x_,q_) := if(isconstant(c),dsolve(a*y*z,y,x,q)-c); dsolve1(a_*(c_+b_*y_)*z_,y_,x_,q_) := if(isconstant(b,c),dsolve(a*b*y*z,y,x,q)-c/b); dsolve1(a_*(c_+y_)^n_*z_,y_,x_,q_) := if(isconstant(c),dsolve(a*y^n*z,y,x,q)-c); dsolve1(a_*(c_+b_*y_)^n_*z_,y_,x_,q_) := if(isconstant(b,c),dsolve(a*b^n*y^n*z,y,x,q)-c/b); dsolve1(a_*y_^n_/(b_+z_),y_,x_,1) := if(isconstant(a) and has(b+z,x) and has(b+z,y) and d(b+z,x,2)==0, dsolve(expand(b/a/y^n+z/a/y^n),x,y,1) ); dsolve1(a_*y_/(b_+z_),y_,x_,q_) := if(isconstant(a) and has(b+z,x) and has(b+z,y) and d(b+z,x,2)==0 and abs(q)<=1, dsolve(expand(b/a/y+z/a/y),x,y,q) ); dsolve1(1/x_*y_/(c_+y_),y_,x_,1):= if(isconstant(c), c*W(C_1*x^(1/c)) ); dsolve1(b_*y(p_,x_)^n_,y_,x_,q_):= if(isfree(b,y),if(isfree(b,x), if(n== -1, gsolution(0,y,x,p)+sqrt(b)/sqrt(fallingfactorial((p+q)/2,p)*fallingfactorial((p+q)/2,q))*(C_1+x)^((p+q)/2), if(q-p==1,block(p:=int((C_1-(n-1)*integrate(b,x))^(1/(1-n)),x,p), if(isodd(n), -p and p, p)+gsolution(0,y,x,p)), int(dsolve(b*y^n,y,x,q-p),x,p)+gsolution(0,y,x,p))), if(hasnot(b,x) and n<>2, int(((2-n)*int(b,y,q-p)+C_1)^(1/(n-q)),y,p)=(C_2+x) ))); dsolve1(b_/y(p_,x_),y_,x_,q_) := if(has(b,y) and hasnot(b,x), int(1/cbrt(C_1+3int(b,y,p)),y)=x+C_1, if(hasnot(b,y), if(q-p==1, gsolution(0,y,x,p)-int(sqrt(C_1+2int(b,x)),x,p) and gsolution(0,y,x,p)+int(sqrt(C_1+2int(b,x)),x,p), block(f2:=int(dsolve(b/y,y,x,q-p),x,p), gsolution(0,y,x,p)+f2) ))); dsolve1(b_/y(1,x_),y_,x_,2) := if(has(b,y) and hasnot(b,x), int(1/cbrt(C_1+int(b,y)),y)=cbrt(3)*x+C_1, if(has(b,x) and hasnot(b,y), C_1-int(sqrt(C_1+2int(b,x)),x) and C_1+int(sqrt(C_1+2int(b,x)),x) )); dsolve1(b_*y(1,x_)^2,y_,x_,2):=if(hasnot(b,y),if(hasnot(b,x), C_2 - log(C_1 - b*x)/b and C_2 - log(C_1 + b*x)/b, C_1 and -int(1/int(b,x),x)+C_1) ); #dsolve1(a_*b_*c_,y_,x_,1):=if(hasnot(a,y) and has(b,c,y) and hasnot(b,c,x), int(1/b/c,y)=int(a,x)+C_1, if(has(a,y) and hasnot(a,x) and has(b,x) and hasnot(b,c,y), int(1/a,y)=int(b*c,x)+C_1 )); #2+; dsolve1(a_+z_, x_,y_,q_) := if(hasnot(z,x) and d(a,x,2)==0, x=gsolution(d(a,x),x,y,q)+psolution(d(a,x),z,x,y,q), if(hasnot(a,x) and d(z,x,2)==0, x=gsolution(d(z,x),x,y,q)+psolution(d(z,x),a,x,y,q) )); dsolve1(a_*x_+z_, x_,y_,q_) := if(hasnot(z,x), x=gsolution(a,x,y,q)+psolution(a,z,x,y,q)); dsolve1(c_+y_^m_, y_,x_,p_) := if(p>1 and has(c,x),block(s:=solve(y^m+c,y), if(hasnot(d(s,x,round(p-0.6)),x), s))); dsolve1(c_+b_*y_^m_, y_,x_,p_) := if(p>1 and has(c,x),block(s:=solve(y^m+c/b,y), if(hasnot(d(s,x,round(p-0.6)),x), s))); dsolve1(a_+y_, y_,x_,q_) := if(hasnot(a,y), gsolution(1,y,x,q)+If(q>0 and isfree(a,x),-a,psolution(1,a,y,x,q)) ); dsolve1(a_+b_*y_, y_,x_,q_) := if(hasnot(a,y), gsolution(b,y,x,q)+psolution(b,a,y,x,q)); dsolve1(a_*z_+y_*z_, y_,x_,q_) := if(hasnot(a,y), gsolution(z,y,x,q)+psolution(1,a,y,x,q)); dsolve1(a_*z_+b_*y_*z_, y_,x_,q_) := if(hasnot(a,y), gsolution(b*z,y,x,q)+psolution(b,a,y,x,q)); dsolve1(a_*y_+y_, y_,x_,q_) := If(isfree(a,y), C_1*mittag(q,int(a+1,x,q)*q!) ); dsolve1(a_+(c_+x_)*z_,y_,x_,p_):=if(hasnot(a,c,z,x),block(f1:=dsolve(a+x*z,y,x,p), replace(f1,x,c+x)) ); #3+; dsolve1(x_+xx_+z_,y_,x_,p_):=if(has(xx,y) and hasnot(z,y), block(f:=solve(xx+x,y),if(d(f,x,p)==z,f)), if(has(z,y) and hasnot(xx,y), block(f:=solve(z+x,y),if(d(f,x,p)==xx,f)) )); dsolve1(c_*x_+xx_+z_,y_,x_,p_):=if(has(xx,y) and hasnot(z,y), block(f:=solve(xx+c*x,y),if(d(f,x,p)==z,f)), if(has(z,y) and hasnot(xx,y), block(f:=solve(z+c*x,y),if(d(f,x,p)==xx,f)) )); dsolve1(a_+x_+z_,y_,x_,p_):=if(has(a,y) and hasnot(z,y), block(f:=solve(a+x,y),if(d(f,x,p)==z,f)), if(has(z,y) and hasnot(a,y), block(f:=solve(z+x,y),if(d(f,x,p)==a,f)) )); dsolve1(a_+b_+x_,y_,x_,p_):=if(has(a,y) and hasnot(b,y), block(f:=solve(a+x,y),if(d(f,x,p)==b,f)), if(has(b,y) and hasnot(a,y), block(f:=solve(b+x,y),if(d(f,x,p)==a,f)) )); dsolve1(a_+b_+c_*x_,y_,x_,p_):=if(has(a,y) and hasnot(b,y), block(f:=solve(a+c*x,y),if(d(f,x,p)==b,f)), if(has(b,y) and hasnot(a,y) and isconstant(c), block(f:=solve(b+c*x,y),if(d(f,x,p)==a,f)) )); dsolve1(a_+c_*x_+z_,y_,x_,p_):=if(has(a,y) and hasnot(z,y), block(f:=solve(a+c*x,y),if(d(f,x,p)==z,f)), if(has(z,y) and hasnot(a,y) and isconstant(c), block(f:=solve(z+c*x,y),if(d(f,x,p)==a,f)) )); #y; dsolve1(y(p_,x_)^m_+b_,y_):= if(hasnot(b,y), block(f1:=int((-b)^(1/m),x,p)+gsolution(0,y,x,p), f1 and if(iseven(m), -f1)), dsolve((-b)^(1/m),y,x,p) ); dsolve1(a_*y(p_,x_)^m_+b_,y_):= if(hasnot(a,b,y), block(f1:=int((-b/a)^(1/m),x,p)+gsolution(0,y,x,p), f1 and if(iseven(m), -f1)), dsolve((-b/a)^(1/m),y,x,p) ); dsolve1(a_+y(q_,x_),y_):= dsolve1(-a,y,x,q); dsolve1(y(p_,x_)^m_+b_*y(p_,x_)+cc_,y_):=if(hasnot(b,y),int(solve(y^m+b*y+cc,y),x,p)); #dsolve1(y(p_,x_)^2+b_*y(p_,x_)+c_,y_):= if(hasnot(b,c,y),C_1-int(b/2+sqrt(b*b/4-c),x,p) and C_1+int(-b/2+sqrt(b*b/4-c),x,p), expand(dsolve(-b/2-(b*b/4-c)^0.5,y,x,p)) ); dsolve1(y_+x_*y(1,x_)+c_, y_):= if(hasnot(c,y),C_1/x-int(c,x)/x, if(has(c,x*y),replace(int(1/replace(c,x*y,z),z),z,x*y)=C_1-x )); dsolve1(yy1_+yy2_+y_+f_,y_):= if(isconstant(f), dsolve(yy1+yy2+y,y)-f ); dsolve1(yy1_+yy2_+c_*y_+f_,y_):= if(isconstant(c,f), dsolve(yy1+yy2+c*y,y)-f/c ); dsolve1(a_=b_,y_):=dsolve1(replace(toy(a-b),y(x),y),y); dsolve1(a_):=dsolve1(replace(toy(a),y(x),y),y);