1

我试图用 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
4

0 回答 0