how to solve an exponential equation with one unknown in matlab

2 views (last 30 days)
I have an equation that need to be solved for rs, and I could'nt get the answer in matlab I have values for the other parameters and I need to get rs. But when computing it on MATLAB I dont get a correct answer This is the equation
exp((-pi*ra)/rs)+exp((-pi*rb)/rs)=1
ra=90.82*10^6 rb=90.23*10^6 so only rs in unknown

Accepted Answer

Abraham Boayue
Abraham Boayue on 20 Jul 2018
Try the following code which uses Newton's method to find the root of the f(x) = 0.
close all;
clc;
N = 50;
ra = 90.82e6;
rb = 90.23e6;
a = pi*ra;
b = pi*rb;
tol = 1e-10;
x0 = 0;
x = x0;
xn = x;
for k = 1:N
f = exp(-a*x) + exp(-b*x)-1;
fd = -(a*exp(-a*x) + b*exp(-b*x));
x = x-f/fd;
err = abs(x-xn);
xn = x ;
if err<tol
break;
end
end
rs = 1/xn;
disp(rs)

More Answers (1)

madhan ravi
madhan ravi on 20 Jul 2018
Edited: madhan ravi on 20 Jul 2018
%Try this:
syms rs
ra=90.82*10.^6
rb=90.23*10.^6
rs=vpasolve(exp((-pi.*ra)./rs)+exp((-pi.*rb)./rs)-1,rs)

Community Treasure Hunt

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

Start Hunting!