Im trying to solve an equation that have variable on left and right side

9 views (last 30 days)
How do I solve this equation? I'm giving the important information also.
depth= 1385.33
por=0.153
Qv=0.980
B=3200
Rw=0.265
m=1.86
n=2.2
Rt=4.05
Sw=(Rw/((por^m)*Rt*(1+(B*Qv*Rw)/Sw)))^(1/n)

Accepted Answer

John D'Errico
John D'Errico on 23 May 2020
Edited: John D'Errico on 23 May 2020
How is depth relevant to anything here? It does not appear in the expression. Maybe I'm just not thinking very "deeply" today.
If Sw appears on both sides of the equality, surely you can subtract Sw? Just move everything to the same side. WTP?
por=0.153;
Qv=0.980;
B=3200;
Rw=0.265;
m=1.86;
n=2.2;
Rt=4.05;
fun = @(Sw) Sw - (Rw./((por^m)*Rt*(1+(B*Qv*Rw)./Sw))).^(1/n);
Note that for Sw <= 0, you either have a divide by zero at Sw == 0, or a complex result. So If any real solution exists, it must be for positive Sw.
Also note the use of ./ and .^ where necessary in fun. Does a solution exist? PLOT IT!
fplot(fun,[0,0.01])
yline(0);
It looks like a positive solution exists near 0.007.
[Swsol,fval] = fzero(fun,0.007)
Swsol =
0.00698017018548943
fval =
8.67361737988404e-19
We could also do this using symbolic tools. No analytical solution will exist because of the non-integer power.
syms Sw
vpasolve(fun(Sw))
ans =
0.006980170185489425081287353
No other positive root will exist. That should be not too difficult to prove.
  2 Comments
Hamid Hamdi
Hamid Hamdi on 28 May 2020
Edited: Hamid Hamdi on 28 May 2020
Yes the depth is no use it is just in my assignment. Actually the Rt has table. It has a lot of values.btw how do you determine the value of 0.01 at the fun? Thank you for you solution!
Walter Roberson
Walter Roberson on 28 May 2020
If this is a fitting process to determine the optimal Sw, then you would use different code.
You indicate that you have multiple Rt values; for a fitting you would also need multiple values of some other variable -- you need one more more independent variables and one or more dependent variables.

Sign in to comment.

More Answers (3)

Ameer Hamza
Ameer Hamza on 23 May 2020
Edited: Ameer Hamza on 23 May 2020
This is one of the methods
syms Sw
depth= 1385.33;
por=0.153;
Qv=0.980;
B=3200;
Rw=0.265;
m=1.86;
n=2.2;
Rt=4.05;
eq = Sw==(Rw/((por^m)*Rt*(1+(B*Qv*Rw)/Sw)))^(1/n);
sol = vpasolve(eq, Sw)
  1 Comment
Hamid Hamdi
Hamid Hamdi on 28 May 2020
Hi Ameer. Thanks for the answer. This is the simple way to understand it. The Rt actually have a lot of values and I'll try to adjust the equation. And I'll try to understand the function u show. Thank you again!

Sign in to comment.


Walter Roberson
Walter Roberson on 23 May 2020
depth= 1385.33
por=0.153
Qv=0.980
B=3200
Rw=0.265
m=1.86
n=2.2
Rt=4.05
F = @(Sw) (Sw) - ((Rw/((por^m)*Rt*(1+(B*Qv*Rw)/Sw)))^(1/n));
Sw = fsolve(F, 1.234)
  2 Comments
Hamid Hamdi
Hamid Hamdi on 28 May 2020
I tried this before but it doesn't work.is it because I used the syms fucntion and then used the F. Then I fixed by removing the syms after saw your solution and it gives NaN as answer. Btw how you determine the value of 1.234? Is it random or there is a way to determine it?

Sign in to comment.


N Sudharshan
N Sudharshan on 22 Aug 2023
Edited: Torsten on 22 Aug 2023
clear all %% solve for SN %%
Z=-1.282;
S=0.5;
PSI=1.9;
M=1000;
W=1000000;
syms SN
eqn = log10(W)==Z*S+9.36*log10(SN+1)-0.20+((log10(PSI/(4.2-1.5)))/(0.40+(1094/(SN+1)^5.19)))+2.32*log10(M)-8.07
eqn = 
solve(eqn)
Warning: Unable to solve symbolically. Returning a numeric solution using vpasolve.
ans = 
6.7204987373948491848493261537531

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!