One simple way to get b1 out is just to do
subs(sols,b1)
and so on.

Use the view option; see ?plot,options for details.

In general, when solving polynomials, the index= mechanism of RootOf is meant to solve this problem. So
ans2:=RootOf(E1*_Z^4 - _Z^2*(2*E1^2) + E1^3 - E1*E2^2,index=2);
evalf(subs(E1=5,E2=3,ans2));
should always give the second root (whatever that means).
Actually in your case you could just solve the quartic once and for all and then substitute in the E1 and E2 values afterwards because the solutions are very simple:
eqn:=E1*NZ^4 - NZ^2*(2*E1^2) + E1^3 - E1*E2^2=0:
solve(eqn,NZ);
gives
(E1-E2)^(1/2), -(E1-E2)^(1/2), (E1+E2)^(1/2), -(E1+E2)^(1/2)

There are three solutions for x, found by
ans:=solve(t*x^3-q*x-2*q^2=0,x):
Then to evaluate your second expression at the first of these:
y:=eval(-x/2 -(x+2*q)^2/(8*t*x^2),x=ans[1]);
and likewise for the second and third.
(You were missing some multiplication signs).

In general, getting things in the form you want can be difficult. If I need to verify a solution, or check two things equal, rather than manipulating one into the other, I simplify(a-b) and see if it is zer. You may have to use the assume facility to get it to work.

To get the output written with primes, try
with(PDEtools):
declare(y(t), prime=t);
diff(y(t),t)+3*y(t);

The mtaylor commnad can probably do what you want, but you want to be careful about what you mean by nonlinear terms.

f:=sin(x^2/(x^10+2))*exp(2*x);
eval(diff(f,x$8),x=0);
Note that you need exp(2*x) instead of e^(2*x).

Not quite clear what you want here; an example of your equation would help. What do you mean by an equation that is a function of x,y,t - because f(x,y,t) requires a 4-D plot. Or is it f(x,y,t)=0, or y=f(x,t)? The last ones can be done with a series of spacecurves, if I understand correctly what you want, e.g.,
with(plots):spacecurve({[cos(t),sin(t),0],[2*cos(t),2*sin(t),1],[3*cos(t),3*sin(t),3]},t=0..8*Pi,axes=boxed);

I think you don't want to differentiate with respect to the Lagrange multiplier. Also, you want things in terms of x, so solve for lambda, y, z rather than x, y, z. Then you get your hand calculated answer:
> L:= x*y*z + lambda* (U - (10-x)*(10-y)*(10-z)):
> solve( {diff(L, x)=0, diff(L,y)=0, diff(L,z)=0},{lambda,y,z} );
gives
{lambda = 0, y = 0, z = 0}, {y = x, lambda = -x^2/(100-20*x+x^2), z = x}
Cheers,
David.

The DEplot command has arrows=arrowtype with arrowtype equal to 'SMALL', 'MEDIUM', 'LARGE', 'LINE', or 'NONE'. I tried this with fieldplot and it can do at least the 'LARGE' ones, though they are kind of clunky.
Cheers,
David.

Not sure which equations you want to solve here, but x*y*z gives empty plot for me (v 9.5)(presumably meaning x*y*z=0). For x*y*z=1 it works and two plots can be combined: implicitplot3d({x*y*z=1,(10-x)*(10-y)*(10-z)^2=1}, x=0..10,y=0..10,z=0..10);

Use a list of functions rather than a set, e.g., plot([x^2,x^3,x^4],x=0..1,legend=["x^2","x^3","x^4"]);

Interesting question. I'm not sure if this is the exact answer, but I'm guessing it relates back to the following example assume(z,real); type(z,real); #error - type real does not exist is(z,real); #true So in your more complicated example, the is(f,complex(extended_numeric) checks that both the real and imaginary parts of f are real and finds this to be the case, but type fails to find this because neither are of type real. Not sure why real wouldn't be a type though.

A bit low tech, and not using the units package
deg:=evalf(180/Pi); #force floating point (like your calculator)
sin(15*deg)