Интерполяционные многочлены Лагранжа - Fortran
Добавлено: 07 июл 2017, 10:02
Здравствуйте уважаемые пользователи форума.
У меня возникла одна небольшая проблема.
Передо мной стояла следующая задача: найти зависимость скорости частицы(или любого другого объекта) в произвольной точке.
Значение в узлах сетки я считываю из предварительно данных мне файлов.
То есть у меня есть функция в трёх переменных в трёхмерном пространстве, которую нужно интерполировать с помощью полиномов Лагранжа
по заданным значениям в узлах сетки.
Случай интерполяции функции одной переменной не вызвал у меня затруднений. А вот здесь я немного сел в лужу.
http://stu.sernam.ru/book_dig_m.php?id=15
Это ссылка на формулу многочленов Лагранжа в двухмерном случае.
http://pmpu.ru/vf4/interpolation
А здесь случай произвольной размерности.
В трёхмерном случае узлы интерполяции, не должны лежать в одной плоскости. И здесь я поэтому запутался немного с циклами. Если кто-то найдёт ошибку или уже сталкивался с подобной проблей, то сообщите пожалуйста.
Уже месяц периодически мучаюсь с этой программой, которую писал сам, так что сразу извиняюсь за корявость кода.
Немного поясню суть метода Лагрнажа.
Пусть у нас есть область. В данном случае это прямоугольный параллелепипед. Мы разбиваем его на одинаковые маленькие прямоугольные паралеллепипеды. То есть получается такая трёхмерная сетка. В каждом узле сетки заданы значение функции. Теперь с помощью интерполяционных полиномов Лагранжа следует найти значение функции в произвольной точке.
Привожу код моей программы. Программа написана на языке Fortran.
У меня возникла одна небольшая проблема.
Передо мной стояла следующая задача: найти зависимость скорости частицы(или любого другого объекта) в произвольной точке.
Значение в узлах сетки я считываю из предварительно данных мне файлов.
То есть у меня есть функция в трёх переменных в трёхмерном пространстве, которую нужно интерполировать с помощью полиномов Лагранжа
по заданным значениям в узлах сетки.
Случай интерполяции функции одной переменной не вызвал у меня затруднений. А вот здесь я немного сел в лужу.
http://stu.sernam.ru/book_dig_m.php?id=15
Это ссылка на формулу многочленов Лагранжа в двухмерном случае.
http://pmpu.ru/vf4/interpolation
А здесь случай произвольной размерности.
В трёхмерном случае узлы интерполяции, не должны лежать в одной плоскости. И здесь я поэтому запутался немного с циклами. Если кто-то найдёт ошибку или уже сталкивался с подобной проблей, то сообщите пожалуйста.
Уже месяц периодически мучаюсь с этой программой, которую писал сам, так что сразу извиняюсь за корявость кода.
Немного поясню суть метода Лагрнажа.
Пусть у нас есть область. В данном случае это прямоугольный параллелепипед. Мы разбиваем его на одинаковые маленькие прямоугольные паралеллепипеды. То есть получается такая трёхмерная сетка. В каждом узле сетки заданы значение функции. Теперь с помощью интерполяционных полиномов Лагранжа следует найти значение функции в произвольной точке.
Привожу код моей программы. Программа написана на языке Fortran.