Сплайн-интерполяция Matlab Найдите X из Y

Мне нужно найти значение x, когда y = 0.

Это мой код:

x=[2,3,4,5,6]; 
y=[10,8,4,1,-2]; 
xi=linspace(2,6,100); 
yi=interp1(x,y,xi,'spline'); 
plot(x,y,'o',xi,yi,'-') 
xlabel('x')
 ylabel('y') 
title('Data')

Я пытался использовать fzero, но не смог понять правильный синтаксис.

У меня нет функции f(x) для использования, только заданные точки.


person Erica    schedule 10.11.2012    source источник


Ответы (1)


Несколько замечаний:

  1. 'spline' относится к кубическому сплайну. Будьте абсолютно уверены, что это именно тот метод интерполяции, который вам нужен. Повторно запустите свой код с помощью xi=linspace(0,6,100);
  2. Функцию fzero можно вызвать для функции интерполяции:

    fzero(@(xi)interp1(x,y,xi,'spline'),5)
    
person Rasman    schedule 10.11.2012