how to linear interpolate using a for loop
7 views (last 30 days)
say I have a y = x^2 -2;
I want to find out which point of x it crosses y = 0 by linear interpolating. But by showing when the result flipes its signs. (meaning once we narrow out interpolation towards y=0, bottom side of y should be - and top portion of y should be +).Then narrow down until i get y = 0. How would I be able to use linear internpolation to find the exact data when y = 0?
I am getting some suggestion using a for loop. could you please show me an sample code how to linear internpolate such case?
Star Strider on 6 Oct 2021
x = linspace(-50, 50, 250);
y = x.^2 -2;
zx = find(diff(sign(y)))
for k = 1:numel(zx)
idxrng = max(1,zx(k))-2 : min(zx(k)+2, numel(x));
xi(k) = interp1(y(idxrng), x(idxrng), 0);
fprintf('x(y=0) = %10.6f\n', xi)
plot(xi, zeros(size(xi)), 'xr', 'MarkerSize',15)
This is a representative approach to this sort of problem.