Solving for unknown iteratively, guess and check

3 views (last 30 days)
Mark
Mark on 17 Oct 2013
Edited: Jonathan LeSage on 17 Oct 2013
Hi,
I'm hoping to solve for an unknown in an equation that cann't be solved for directly. Instead, I have measured values (from data), and an equation relating my unknown to the theoretical calculated value.
I have 1000+ data points of F_measured and an equation that looks something like this
F_calc = a(b*sqrt(c*(1 - x/d)^k)) + x*e
where a, b, c, d, and k are constants and x is my unknown.
What I need to do is iterate through possible values of x until the % difference between F_calc and F_measured is < 10e-5... and x values can be quite large so thousands of tiny steps is very impractical if not impossible. Any ideas how to do this more efficiently?

Answers (1)

Jonathan LeSage
Jonathan LeSage on 17 Oct 2013
Edited: Jonathan LeSage on 17 Oct 2013
Perhaps a better way of formulating the problem is to solve for the zeros of the nonlinear function.
F - a*(b*sqrt(c*(1 - x/d)^k)) + x*e = 0
To learn more:
doc fzero

Community Treasure Hunt

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

Start Hunting!