After that I'd like to solve the last 4 equation for A2, C1, and C2 in terms of A1. However, I already have an error for the last 2 expressions [ ev(...) = ev(...) ].

Judging from the error message:

diff: second argument must be a variable; found -a/2
#0: Ax(x=-a/2)
-- an error. To debug this try: debugmode(true);
diff: second argument must be a variable; found a/2
#0: Bx(x=a/2)
-- an error. To debug this try: debugmode(true);

I think the error comes from how I defined Ax(x), Bx(x), and Cx(x).

But I still cannot figure out how to fix it. Any help would be appreciated.

@Dickfore: Maxima is one of the more common opensource computer algebra systems out there.

@HotMintea: I've never really used Maxima much - apart from via Sage.
The problem in your code is that the right hand side does not get evaluated until the definition is used. This is a problem because it has to recalculate the derivative everytime AND it gives an error when called with a number:
Fx(2) --> diff(F(2), 2) --> error

The second issue (the error) can be solved by localizing the derivative variable then substituting in the value, e.g.
Fx(x):=block([y], subst([y=x], diff(F(y),y)));

But then Maxima has to go through that whole mess everytime the derivative Fx is called. A better solution is to use the construct:

Fx(x) := ''(diff(F(x),x));

I found most of this on the thread
http://www.math.utexas.edu/pipermail/maxima/2007/004706.html [Broken]

The problem in your code is that the right hand side does not get evaluated until the definition is used. This is a problem because it has to recalculate the derivative everytime AND it gives an error when called with a number:
Fx(2) --> diff(F(2), 2) --> error