Finding intersection of polyfit and line

15 Ansichten (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.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by