интерполяционный полином Ньютона n-й степени, нужно написать в Delphi |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
интерполяционный полином Ньютона n-й степени, нужно написать в Delphi |
Mystical |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Руслан Репутация: 0 |
Здравствуйте все!
Вобщем сразу к делу. Есть такая задачка: Функция задана таблично (n +1 значение). Разработайте программу, строящую интерполяционный полином Ньютона n-й степени. Вроде что-то нарыл в нете, но не то. Помогите плиз кто может. |
klik1602 |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
я не понимаю((( что у меня должно получиться на выходе??
и ещё...вы можете закомментить вот эти функции?? function Prod(t: double; k: integer): double; // t(t-1)...(t-k) |
Lapp |
Сообщение
#3
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
я не понимаю((( что у меня должно получиться на выходе?? Как что? значение интерполяционного полинома. Если вызвать NewtonPol с параметром x, то вернется значение полинома в точке x. Я не вполне уверен, представляют ли какой-то интерес его коэффициенты, поскольку они стоят перед степенями конечных разностей порядков до n. Так что я беру назад свои слова выше и предлагаю считать конечным продуктом саму программу )).Цитата и ещё...вы можете закомментить вот эти функции?? _Закомментить_ - не рекомендую, работать не будет. А _прокомментить_ - можно.. ))Собственно, я особо не разбираюсь в интерполировании. Просто делал тупо по формулам, а формулы взял в Википедии. function Prod(t: double; k: integer): double; // t(t-1)...(t-k)Тут просто произведение - то есть то, что написано в оригинальном комменте. Чтоб в этом убедиться, заметь, что она просто умножает сама себя k раз, а при вызове мы каждый раз уменьшаем ее на 1. function FinDif(k,i: integer): double; // finite differenceТут просто по определению конечных разностей, см. вики Далее все один в один (если я не ошибся, конечно - я все ждал, что dark_san проверит, но она исчезла) по формулам. Я использовал прямую интерполяционную формулу Ньютона вот отсюда. Функция Prod (англ. product - произведение) вычисляет числитель дроби, знаменатель (фаеториал) считается по ходу дела (переменная f), а функция FinDif (англ. Finite Difference) считает конечные разности. Сумма находится в цикле. Вот и все, вроде.. function NewtonPol(x: double): double; Добавлено через 1 мин. в этом алгоритме n-ая конечная разность ищется за O(2^n), что просто отвратительно. А что ж ты замолчал?.. Расскажи даме, как делать быстрее )).-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 8.05.2024 2:31 |