Ще ти дам един пример. За целта ще напиша програма, която демонстрира намирането на интерполационен полином.
- Код: Избери целия код
myList = {{-6, 1.50197}, {-5.5,
1.42357}, {-5, -1.30058}, {-4.5, -1.60757},
{-4, 1.07315}, {-3.5, 1.75939}, {-3,
0.824237}, {-2.5, -1.876}, {-2, 0.55883}, {-1.5,
1.95506}, {-1, -0.28224}, {-0.5, -1.99499}, {0, 0}, {0.5,
1.99499}, {1, 0.28224}, {1.5, -1.95506}, {2, -0.558831}, {2.5,
1.876}, {3, 0.824237}, {3.5, -1.75939}, {4, -1.07315}, {4.5,
1.60757}, {5, 1.30058}, {5.5, -1.42357}, {6, -1.50197}};
plotMyList = ListPlot[myList, PlotStyle -> {Blue, PointSize -> 0.0150}]
lp = InterpolatingPolynomial[myList,
x]; (* интерполационен полином на Лагранж *)
Expand[lp];
Simplify[%];
TraditionalForm[%]
plotLP = Plot[lp, {x, -6.5, 6.5}, PlotStyle -> Green]
Show[plotMyList, plotLP]
Разполагаме с
n=25 точки (това е списъкът
myList). Построяваният полином на Лагранж минава през всичките тези точки и степента му е с единица по-малка от броя на точките (вижда се, че
degP=24, когато програмата изпише явния му вид; в линка, който Добромир Глухаров ти е дал, е обяснено доста разбираемо).
При много голям брой на точките е по-интуитивно да построиш такъв полином, който да се "движи" измежду точките и да е близко до тях, а не непременно да минава през тях. В този случай трябва да използваш метода на най-малките квадрати, където вече ти избираш степента на апроксимация с полином.