how to solve this equation?

how to solve this equation?

just as below
syms a,b,f
and I have got the expression of f
that is f=f(a,b)
I want to get the solution of a=a(b) from the equation f=0

With the program
a=solve(f,a)
I can't get the solution

but if it is a=solve(f,b) I can get that b=b(a).

how to get the expression of a=a(b)?

thanks!!

I have to solve this two equation for 50 times.But when the programme
compute for some times,it will report a error. I don't know how to
deal
with it.

If you know,tell me and I will thank you.
I post the program and the error in the
following.

??? Error using ==> maple
Error, integer too large in context

On line 33 ==> v = maple('indets', sc ,'symbol');

Error in ==> G:\Matlab6.5\toolbox\symbolic\solve.m
On line 121 ==> total_vars = length(sym([ '[' findsym(seqns) ']'
]));

On line 49 ==> [varargout{1:max(1,nargout)}] = solve(S{:});

Error in ==> D:\Fanxp\Thesis\Papers\Matlab\test.m
On line 54 ==> ll1=solve(tequ1);

tic;
ST=50;
N=100;
m=1000;

Roots=zeros(5,ST);
equ1='(N-1)*(1-(1-x)^(1/N))/x=f';
equ2='1-exp(-z*x)=x';

NN=num2str(N);
equ1=subs(equ1,'N',NN);
init=1.01;
for i=1:ST
maple clear;
disp('time');
disp(i);
Roots(1,i)=init;
Roots(2,i)=log(Roots(1,i)./m)./(Roots(1,i)./m - 1);

%zz1=num2str(Roots(1,i));
%zz2=num2str(Roots(2,i));
f=Roots(1,i);
z=Roots(2,i);
disp('solve equ1');
tequ1=subs(equ1,'f',f);
tequ2=subs(equ2,'z',z);
ll1=solve(tequ1);
ll2=solve(tequ2);

xx1=numeric(ll1);
xx2=numeric(ll2);
for j=1:length(xx1)
if(xx1(j)~=0)
Roots(3,i)=xx1(j);
end
end
for j=1:length(xx2)
if(xx2(j)~=0)
Roots(4,i)=xx2(j);
end
end
Roots(5,i)=Roots(3,i).*Roots(4,i);
init=init+0.1;
end