Finding domain and range with polyfit/polyval

I have coefficients to an 17th order polynomial that fits my data well. When I zoom into the graph from y=0 to y=15 this is what I see. I want MatLab to tell me the time it takes the top curve to go from y=0 to y=15.
Someone told me to use polyval(coef,15) - polyval(coef,0) But that gave me 5.9235e+09 when it should be something like 3.8 seconds.

Answers (1)

Matt J
Matt J on 17 Jan 2021
Edited: Matt J on 17 Jan 2021
In theory, you would do,
[c1,c2]=deal(coef);
c2(end)=c2(end)-15;
r1=roots(c1);
r2=roots(c2);
time=r2(r2>43 & r2<45) - r1(r1>37 &r1<39);
However, in practice, root finding operations for polynomials of super-high order are mumerically unstable, see

Categories

Products

Release

R2020b

Asked:

on 17 Jan 2021

Edited:

on 17 Jan 2021

Community Treasure Hunt

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

Start Hunting!