интерполяционный полином Ньютона 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-й степени. Вроде что-то нарыл в нете, но не то. Помогите плиз кто может. |
Ozzя |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
|
Mystical |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Руслан Репутация: 0 |
Теория это конечно хорошо, но думаю я не из тех кто зная математическую часть смржет без труда сделать программную часть. Так что можно ближе к программному коду, плиз. Я этой теории в нете немало прочитал.
Сообщение отредактировано: Mystical - |
volvo |
Сообщение
#4
|
Гость |
Цитата думаю я не из тех кто зная математическую часть смржет без труда сделать программную часть А я думаю - ты из тех, кто пальцем не пошевелит, а будет сидеть и ждать, пока не придет добрый дядя и не выложит здесь решение полностью, от начала до конца, проверенное, отлаженное, только приходи, Mystical, копируй, и сдавай... Попробуй меня разубедить в этом (а разубедить меня можно только показав свои наработки по теме, пусть неправильные, пусть корявые, но свои. Чтоб тебе помогать, надо видеть, как ты сам ХОЧЕШЬ что-то сделать, и прилагаешь к этому усилия. Иначе - без твоих попыток - это никому не надо...) |
klik1602 |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
оуу)) а меня точно такая же задача, Функция задана таблично (n +1 значение). Разработайте программу, строящую интерполяционный полином Ньютона n-й степени. видимо в одном месте с человеком учимся, но я хотела бы разобраться в ней, не совсем понятны условия
1. Функция задана таблично (n +1 значение) - функцию мы задаём самостоятельно любую?? к примеру f(x) = n+1, то в таблице у нас будет 2 строки = x и f(x) в которое соответственно по данному примеру будут записаны x=1 f(x)=2, x=2 f(x)=3, x=3 f(x)=4 ...x=n f(x)=n+1, x=n+1 f(x)=n+2 2. далее мы задаём я так понимаю степень интерполяционного полинома 3. а вот далее не понимаю что делать(( и построить - это значит функцию рисовать?? Сообщение отредактировано: klik1602 - |
klik1602 |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
ребят, помогите пожалуйста, на вас вся надежда..
|
Lapp |
Сообщение
#7
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
и построить - это значит функцию рисовать?? Нет, это значит привести набор коэффициентов полинома. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
klik1602 |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
уух)) а вы ,ребята, с юмором)) меня препод думаю есть не станет, если я чуть попозже принесу ему лабу) а пока что-то на сонную голову вникнуть не могу, с утра посмотрю что к чему
паасссиб)) что не прошли мимо) Сообщение отредактировано: klik1602 - |
klik1602 |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
я не понимаю((( что у меня должно получиться на выходе??
и ещё...вы можете закомментить вот эти функции?? function Prod(t: double; k: integer): double; // t(t-1)...(t-k) |
klik1602 |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
хммм, полиномы это точно не моё..
|
TarasBer |
Сообщение
#12
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Объяснить, что делают эти функции? Это называется рекурсия.
Вот только в этом алгоритме n-ая конечная разность ищется за O(2^n), что просто отвратительно. -------------------- |
klik1602 |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
как это называется я-то знаю) но что они делают в этом примере я не понимаю)
|
Lapp |
Сообщение
#14
|
Уникум Группа: Пользователи Сообщений: 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), что просто отвратительно. А что ж ты замолчал?.. Расскажи даме, как делать быстрее )).-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
TarasBer |
Сообщение
#15
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> Расскажи даме, как делать быстрее )).
Надо сначала высчитать все конечные разности 1-го порядка, потом, используя их, вычислить конечные разности 2-го порядка, потом, используя их, третьего и так далее до эн. -------------------- |
klik1602 |
Сообщение
#16
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
ага..кажется что-то начинаю понимать..
|
Текстовая версия | 23.12.2024 21:12 |