У меняPolyfit и polyval для выполнения интерполяции
x = linspace(-5,5,256) y = 1./(1+x.^2) plot(x,y,'...') %plot of (x,y)
Хочу оценить это с помощью полинома порядка 10, таким образом, что полином пересекает график в 11 точках.
Итак, я сделал это:
x2 = linspace(-5,5,11) y2 = 1./(1+x2.^2) p = polyfit(x2,y2,10) %finds coefficients of polynomial of degree 10 that fits x2,y2 y3 = polyval(p,x2) plot(x,y,x2,y3,'...')
Я думал, что polyfit дал бы мне коэффициенты для многочлена до порядка 10, которая пересекает точку (x2,y2)
(т.е. 11 баллов) то y3
является по существу, только значения y
, где полиномы 10-го порядка приземляются, поэтому их полное отображение даст мне полином 10-го порядка, пересекающий мой исходный граф в 11 уникальных точках?
Что я сделал не так?
Моего результат:
Вы должны оценить 'p' не только при интерполяции точек' x2', но вместо того, чтобы более плотно: 'x3 = LINSPACE (-5, -5500); y3 = поливал (p, x3); участок (x3, y3); '. Поскольку вы оцениваете только точки интерполяции, график выводится с сегментами синей линии между этими оценками. – knedlsepp
эй, спасибо! что сработало – elbarto
Хотя вопрос и, следовательно, ответ пограничный тривиальный, просто для того, чтобы следовать протоколу;), @knedlsepp, вы ответили бы из своего комментария, чтобы elbarto мог его принять? –