MATLAB Answers

How to solve exponential equation to find unknown constants

조회 수: 4(최근 30일)
Nidhi 2021년 8월 8일
댓글: Nidhi 2021년 8월 8일
I am trying to find the values of the constants a, b and c from the exponential equation. The data points of x and t needs to be exported from an excel file(given) . I have tried solving it using lsqcurvefit but I am facing problem in finding the initial values of the parameters to solve the problem.
The equation is
Here, x and t are variables. The value of y is constant and equal to 6.

채택된 답변

J. Alex Lee
J. Alex Lee 2021년 8월 8일
data = readtable("Book1.xlsx");
Alternatively, based on my reparameterization above you can as a first pass say everything after looks like saturation, take the average, and declare
mask = data.t < 4;
F = mean(data.x(~mask))
F = 157.1525
Now you can linearize the problem and say
To visualize
z = log(F-data.x);
Warning: Imaginary parts of complex X and/or Y arguments ignored.
hold on
As expected, the plot is pretty linear for , so you can do a linear fit and visualize
lf = polyfit(data.t(mask),z(mask),1)
lf = 1×2
-1.3886 1.7279
Then convert the linear fit parameters back to
H = -lf(1)
H = 1.3886
G = exp(lf(2))
G = 5.6287
And then you're back to the algebra to get back to . This procedure, which now only relies on observing the saturation behavior, results in
hold on
plot(data.t,F - G*exp(-H*data.t),'-')
  댓글 수: 3
Nidhi 2021년 8월 8일
@J. Alex Lee I understood how to find the values now. Thank you so much once again!

댓글을 달려면 로그인하십시오.

추가 답변(1개)

J. Alex Lee
J. Alex Lee 2021년 8월 8일
Do you have an intuition of what the graph of looks like? Hint: it looks like your plot, scaled and shifted roughly only in the y direction, so roughly whatever appears in front of t in the exponential is roughly unity. Next step, simplify your parameterization a bit so you can intuitively scale and shift...say
That makes it even easier to see the link between your data. At , and at , so the scale factor and shift factor is .
Now it's an algebra problem to get from to .

Community Treasure Hunt

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

Start Hunting!

Translated by