diff: variable must not be a number; found: | bug??



I take it back...

>
>
> So, the basic syntax and sequence of steps is identical.
> So, if in the original code I use m1, m2 and m3 instead of f1, f2 and 
> f3, everything works:
>
> base : 
> matrix([m1*gam,m2*gam,m3*gam,0,0],[0,0,0,S*eps1,0],[0,0,0,0,S*eps2],[m1*(1-gam),m2*(1-gam),m3*(1-gam),0,0],[0,0,0,S*(1-eps1),S*(1-eps2)]);
> cp_base : charpoly(base,lambda);
> depends(lambda,m1);
> deriv : diff(cp_base,m1);
> lls_m1: solve(deriv,'diff(lambda,m1));
> lls_m1 : 
> subst([m3=18,m2=12,m1=8,gam=0.0725,S=0.4,eps1=0.1,eps2=0.02,lambda=1.065], 
> lls_m1);
>


This code doesn't work either. It worked *the first time* I mde th 
substitutions from f1 -> m1, and so on, but now, each time it gets run 
it give the same error:

diff: variable must not be a number; found: 8.0



So, I'm back to completely stumped.