Finding intersection of polyfit and line

1 Ansicht (letzte 30 Tage)
Nicholas
Nicholas am 16 Sep. 2015
Kommentiert: Jan Ulbrich am 18 Sep. 2020
I am trying to find the intersection between the polyfit of a line and the line y=1. I have the following code:
polyfit(l,FS,3)
int=roots(polyfit(l)-1)
Essentially, I want the value of length when the Factor of safety is 1:

Antworten (2)

dpb
dpb am 16 Sep. 2015
Doesn't do any good to fit the data but not save the coefficients of the resulting fit...
b=polyfit(l,FS,3); % Get coefficients of polynomial
[~,ix]=min(abs(FS-1)); % Nearest observed point to 1 is
L0=l(ix); % good guess for starting point
LOne=fsolve(@(b,x) polyval(b,x)-1,L0); % Solve for x where == 1

Walter Roberson
Walter Roberson am 16 Sep. 2015
b = polyfit(l,FS,3); % Get coefficients of polynomial
LOne = roots(b - [0 0 0 1]);
LOneReal = LOne(imag(LOne==0));
LOneInRange = LOneReal >= min(l) && LOneReal <= max(l);
This would be empty if there are no real roots in the range.
  1 Kommentar
Jan Ulbrich
Jan Ulbrich am 18 Sep. 2020
I think there is a typo and it should be "LOneReal = LOne(imag(LOne)==0);"

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by