其实楼主的方法基本没有问题,只是solve函数这块表达有问题,直接把求导后的式子s传过来就行了,默认是整个式子为0。‘s=0’反而给弄错了。改成这样:
syms y
s=(y^(-1)/(y^(-1)+y^0+y^4))*log(y^(-1)/(y^(-1)+y^0+y^4))+(y^0/(y^(-1)+y^0+y^4))*log(y^0/(y^(-1)+y^0+y^4))+(y^4/(y^(-1)+y^0+y^4))*log(y^4/(y^(-1)+y^0+y^4));
s=diff(s)
a=solve(s,'y')
b=double(a)
就可以正确运行了。