Форум программистов, компьютерный форум CyberForum.ru

Интерполяция Лагранжем - C++

Восстановить пароль Регистрация
 
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
15.12.2013, 12:29     Интерполяция Лагранжем #1
Товарищи,очень прошу помочь не получается доделать задание((( сделал решение интеграла,а к нему нужно еше провести интерполяцию лагранжем,но я не знаю как(У меня через 11 узлов нужно провести интерполяцию, обеспечивая точность eps. То есть нам нужно получить функцию, то есть нам нужно получить коэффициенты полинома. Как в коде найти эти коэффициенты????? подскажите люди добрые!!))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
15.12.2013, 13:00     Интерполяция Лагранжем #2
Полиномы Лагранжа очень простые в своей задумке. В данном случае нужны 11 вспомогательных полиномов, по одному для каждого корня. Эти полиномы имеют простые свойства: каждый из них равен значению функции в "своём" корне и 0 во всех остальных. Если их сложить, то они дадут нам то, что требуется: функцию, принимающую значения y1...y11 в точках x0...x11.
Вспомогательный полином можно записать в двух видах: через коэффициенты при степенях или через корни и общий коэффициент. Допустим, мы считаем для корня x1. Здесь нам пригодится вторая форма записи a1*(x - x2)*(x-x3)*...*(x-x11).Остаётся найти коэффициент a1. Он должен быть таким, чтобы в точке x1 мы получали y1. Очевидно, надо посчитать, что получается при подстановке в полином x1 без коэффициента, а потом домножить на число, которое даст y1. Это число и будет a1 = y1 / ((x1-x2)*(x1-x3)*...*(x1-x11)).
Так мы можем найти a1...a11. Теперь потребуется перевести запись вспомогательных полиномов в первую форму. Надо по очереди раскрыть скобки и посчитать коэффициенты при степенях x. Потом сложить все 11 полиномов: суммировать коэффициенты при одинаковых степенях. Это и будет искомый полином Лагранжа.
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
15.12.2013, 13:09  [ТС]     Интерполяция Лагранжем #3
а в коде это как выглядить примерно будет?
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
15.12.2013, 13:13     Интерполяция Лагранжем #4
У вас какие-то сложности с тем, чтобы реализовать это в коде? Что конкретно не получается?
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
15.12.2013, 13:55  [ТС]     Интерполяция Лагранжем #5
Коэффициенты при иксах в многочлене Лагранжа как посчитать??? как это будет в коде???
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
15.12.2013, 14:02     Интерполяция Лагранжем #6
Очевидно, что коэффициенты полинома удобнее всего представлять массивом. Как их посчитать, я уже описал выше. Пересчёт коэффициентов при умножении на другой полином, да ещё и первой степени - операция тривиальная. Или вы хотите, чтобы я просто написал за вас весь код, не обременяя вас скучными подробностями?
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
15.12.2013, 14:41  [ТС]     Интерполяция Лагранжем #7
нет,что вы)) я частично понимаю что вы говорите) мне наоборот помогает это понять метод) но если вам не сложно,то я хотел бы вас попросить написать хоть какой нибудь пример с этим коэффициенотом)) просто я не особо силен( Спасибо вам огромное за то что объясняли) но как записать в коде я не знаю(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 18:54     Интерполяция Лагранжем
Еще ссылки по теме:

C++ Линейная интерполяция
C++ Квадратичная интерполяция
C++ Квадратичная интерполяция

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
16.12.2013, 18:54     Интерполяция Лагранжем #8
Пример.
Многочлен x - 3. Коэффициенты: 1, -3.
Умножаем его на (x + 2). Раскрываем скобки выражения (x - 3)*(x + 2) в сумму x*(x-3) + 2*(x - 3).
Первое произведение - это просто сдвиг коэффициентов вправо: 1, -3, 0 (выражение x^2 - 3*x).
Второе выражение - умножение коэффициентов: 2, -6.
Складываем коэффициенты при одинаковых степенях: 1, -3 + 2, 0 + (-6). Получаем коэффициенты 1, -1, -6, что соответствует выражению x^2 - x - 6.
Yandex
Объявления
16.12.2013, 18:54     Интерполяция Лагранжем
Ответ Создать тему
Опции темы

Текущее время: 09:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru