@EvgenyApMr

Как нарисовать кривую Лагранжа через полином?

Есть задание: нарисовать кривую catmull-rom с помощью полинома n-го порядка.
На странице есть вариант реализации формулы, алгоритм Эйткена.
Код от источника
for (i = 0; i < N; i++){
     P = 1;
     for (j = 0; j < N; j++)
       if (j != i) P = P*(t-ti[j])/(ti[i] - ti[j]);
   }

Моя реализация на delphi c циклом для рисования, но без итоговой формулы.
while a <> 100 do begin
  Inc( a );
  for i:= 0 to Length( xArray ) do begin
    p:=1;
    for j:= 0 to Length(xArray) do begin
      if j <> i then begin
        p:= p+(a/100-yArray[j])/(yArray[i] - yArray[j]);
      end
    end
  end;
  xt:= //тут должна быть формула для расчёта координаты с применением полинома?
  yt:= //тут должна быть формула для расчёта координаты с применением полинома?
  chart1.SeriesList[1].AddXY(xt, yt);
end;

Как должна выглядеть формула для построения точек?
Чтобы получилась что-то похожее на зеленую линию
63b951e9f1c98950485768.png
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега Математика
Разработчик на С++, экс-олимпиадник.
Надо на P домножать координаты i-ой точки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы