我试图用 wxMaxima 代替方程中一阶导数的值。替换步骤适用于简单代数,但不适用于导数。它也替代了二阶导数,但我只想看到一阶导数被替换。我在哪里做错了?
(%i5) kill(all);
(%o0) done
(%i5) eq1:diff(y(x),x)+(a*x+b*y(x))=0;
(eq1) 'diff(y(x),x,1)+b*y(x)+a*x=0
(%i6) eq2:diff(eq1,x);
(eq2) 'diff(y(x),x,2)+b*('diff(y(x),x,1))+a=0
(%i7) eq3:solve(eq1,diff(y(x),x));
(eq3) ['diff(y(x),x,1)=-b*y(x)-a*x]
(%i9) eq5:subst(eq3,eq4),derivsubst=true;
(eq5) ['diff((-(b*y(x)+a*x+c)/(%beta*y(x)+%alpha*x+%gamma)),x,1)=-(-(((%alpha*b-%beta*a)*x-%beta*c+%gamma*b)*(b*y(x)+a*x+c)/(%beta*y(x)+%alpha*x+%gamma)+ (%beta*a-%alpha*b)*y(x)-%alpha*c+%gamma*a)/(%beta^2*y(x)^2(2*%alpha*%beta*x+2*%gamma*%beta)*y(x)+%alpha^2*x^2+2*%gamma*%alpha*x+%gamma^2)]('diff(y(x),x,1))+a=0)
(%i5) test:a-2*v=v+2-a;
(test) a-2*v=v-a+2
(%i6) test2:solve(test,a);
(test2) [a=(3*v+2)/2]
(%i7) subst([test2], a+b);
(%o7) (3*v+2)/2+b