2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 InterpolatingPolynomial Математика (как задана эта ф-ция)
Сообщение30.10.2011, 01:49 
InterpolatingPolynomial [{$f_1,f_2,...$},x]
"constructs an interpolating polynomial in x which reproduces the function values at successive integer values 1, 2, ... of x"

конструируем полином по х который воспроизводит значения функций на целых величинах 1,2,... из х


Забиваем это в Математику

InterpolatingPolynomial[{1, 4, 9, 16}, x]
получаем на выходе

$1 + (-1 + x^2) (1 + x^2)$


поясните пожалуйста, а как это мы получаем и что это вообще такое ?
(т.е. какие мы начальные условия задаём ? что это за 1,4,9,16? Где функция, которую мы хотим описать ? ( я полагаю, что типо нам даны значения функции, но опять же в каких точках?)
и почему получаем такой странный полином ?
Спасибо

-- 30.10.2011, 03:09 --

Наш препод дал нам код для построения полинома
f[x_] := Exp[x];
X[n_] := Table[{-1 + 2/n*k, f[-1 + 2/n*k]}, {k, 0, n}];
Polinómio de Lagrange


p[x_, n_] :=
Sum[X[n][[k, 2]]*
Product[If[l =!= k, (x - X[n][[l, 1]]), 1], {l, 1, n + 1}]/
Product[If[l =!= k, X[n][[k, 1]] - X[n][[l, 1]], 1], {l, 1,
n + 1}], {k, 1, n + 1}]

p[x, 25];
Plot[{%, f[x]}, {x, -1, 1}]
Plot[Abs[%% - f[x]], {x, -1, 1}, PlotRange -> All]
Кстати можете пояснить пожалуйста


X[n_] := Table[{-1 + 2/n*k, f[-1 + 2/n*k]}, {k, 0, n}];

когда мы составлям таблицу, зачем мы пишем вот это
-1 + 2/n*k

и второй вопрос
If[l =!= k, (x - X[n][[l, 1]]), 1], {l, 1, n + 1}]

тут мы описываем числитель ждя формулы лагранджа
http://mathworld.wolfram.com/LagrangeInterpolatingPo...

зачем в цикле мы пишем
l =!= k
?
ну и крайний вопрос: Можно ли то же самое описать используя просто функцию

InterpolatingPolynomial?

 
 
 
 Re: InterpolatingPolynomial Математика (как задана эта ф-ция)
Сообщение01.11.2011, 01:30 
Аватара пользователя
Вы поставили программе такую задачу: найти полином (наименьшей степени) $P(x)$, такой что: $P(1)=1$, $P(2)=4$, $P(3)=9$, $P(4)=16$.

У Вас опечатка: Математика на команду InterpolatingPolynomial[{1, 4, 9, 16}, x] выдает ответ $1 + (-1 + x) (1 + x)$, а не $1 + (-1 + x^2) (1 + x^2)$. Почему ответ имеет такую странную форму - это особый вопрос к к разработчикам программы. Но этот ответ совершенно верный, потому что $1 + (-1 + x) (1 + x)=x^2$ :-).

Чтобы сразу получить $x^2$ надо использовать команду Simplify[InterpolatingPolynomial[{1, 4, 9, 16}, x]].

Что касается интерполяционного полинома Лагранжа (и других форм: Ньютона и пр.), то команда InterpolatingPolynomial [{$f_1,f_2,\dots,f_n$},x] и решает эту задачу для $P(x_1)=f_1, P(x_2)=f_2,\dots, P(x_n)=f_n$ со стандартными "узлами интерполяции" $x_1=1, x_2=2,\dots,x_n=n$. Другое дело, что преподаватель, возможно, хочет чтобы Вы сами написали программу для полинома Лагранжа и увидели тот самый ответ, кторый выдается коротким запросом InterpolatingPolynomial.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group