# Solving a formula in Matlab

3 views (last 30 days)
Belal Abboushi on 6 Mar 2015
Commented: Roger Stafford on 6 Mar 2015
Hello everyone,
In the following formula : X= 2y + 10 log(1+ E/S)
I want the user to input X, y, and S. Is there anyway i can get matlab to give me the value of E without having to rewrite the formula?
Thank you so much!
Torsten on 6 Mar 2015
Maybe by using MATLAB's "solve" ?
Best wishes
Torsten.
Roger Stafford on 6 Mar 2015
It seems a shame not to use such a simple inverse formula as:
E = S*(exp((X-2*y)/10)-1);
assuming your log is the natural logarithm. Otherwise:
E = S*(10^((X-2*y)/10)-1);

Giorgos Papakonstantinou on 6 Mar 2015
Edited: Giorgos Papakonstantinou on 6 Mar 2015
x = input('Enter the value of x: '); % request user input
y = input('Enter the value of y: ');
S = input('Enter the value of S: ');
f = @(E) 2.*y + 10*log(1+ E./S) - x; % create an anonymous function
[Eval, fval]= fsolve(f, 1); % solve your equation
or you can also:
syms E
f = 2.*y + 10*log(1+ E./S) == x;
solve(f, E)
If log refers to the base of 10 rewrite f by replacing log with log10.