# how to use the 'solve' function?

10 views (last 30 days)
Dany on 27 Mar 2013
hello, im having problem trying to use the solve problem. it's not my first time using it but thata the first time its not working. i have this code line:
tmp = solve('x/L = (1-(h+eta)/ho) - A*log(((h+eta)/ho - A)/(1-A))','eta');
all the parameters are known except 'eta', still it does not provide a solution.
how can i fix it? any sugestions? thank you

Carlos on 27 Mar 2013
Doing
>> tmp = solve('x/L = (1-(h+eta)/ho) - A*log(((h+eta)/ho - A)/(1-A))','eta')% no semicolon here
tmp =
A*ho - h + (ho - A*ho)/(exp(wrightOmega(log((ho - A*ho)/(A*ho)) - (x/L + h/ho - (h - A*ho)/ho - 1)/A))*exp((x/L + h/ho - (h - A*ho)/ho - 1)/A))
It does give a solution.

Dany on 27 Mar 2013
thats what im getting too. but i supose to have a numeric answer. i cant use the 'eval' function because it does not recognize 'wrightOmega'.
thats the problem.

Carlos on 27 Mar 2013
Using arbitrary values for x, h, h0, A and L
>> syms eta;
>> x=1;h=1;ho=1;A=0.1;L=1;
>> f=x/L -(1-(h+eta)/ho) - A*log(((h+eta)/ho - A)/(1-A));
>> eval(solve(f,eta))
ans =
-1.1068 - 0.2302i

Dany on 27 Mar 2013
ok, thank you Carlos.
i'll give it a try
##### 1 CommentShowHide None
Carlos on 27 Mar 2013
Edited: Carlos on 27 Mar 2013
I think it should work, just remember to change the values of x,h... Please comment if something does not work by trying my approach to the problem.

Dany on 27 Mar 2013
sorry Carlos, it still does not work.
i try it with this values (real ones): h = 1.3721, ho = 500, L = 20000, x = 54.8828, A = -1.6452e-008.
and i still get the 'wrightOmega' and no answer .....

Dany on 27 Mar 2013
ok it works..... thank you
##### 1 CommentShowHide None
Carlos on 27 Mar 2013
You are welcome, please mark my answer so people know the answer is correct and can use my answer for their problems.