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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
#1

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

15.12.2013, 12:29. Просмотров 1105. Ответов 7
Метки нет (Все метки)

Товарищи,очень прошу помочь не получается доделать задание((( сделал решение интеграла,а к нему нужно еше провести интерполяцию лагранжем,но я не знаю как(У меня через 11 узлов нужно провести интерполяцию, обеспечивая точность eps. То есть нам нужно получить функцию, то есть нам нужно получить коэффициенты полинома. Как в коде найти эти коэффициенты????? подскажите люди добрые!!))
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 12:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Интерполяция Лагранжем (C++):

Интерполяция заданной функции второй формулой Ньютона (обратная интерполяция) - C++
Программа накапливает ошибку, да и первые значения совсем уже "приближённые". Явно что-то упустил. Посмотрите со стороны. #include...

Линейная интерполяция - C++
Как правильно написать программу линейной интерполяции? С чего начать подскажите?

Интерполяция Лагранжа - C++
Добрый день! Помогите пожалуйста найти ошибку в программе, битый день делаю, я новичок, но как мне кажется очень логично написал код....

Интерполяция изображения c++ - C++
Как сделать интерполяцию изображения если есть например диапазон от 30 до 110. Его нужно растянуть на диапазон от 0 до 255. Допустим берем...

линейная интерполяция - C++
здравствуйте, помогите пожалуйста решить задачу, функция y=f(x) задана таблично в массиве Y(n) при соответствующих значениях аргумента...

Тригонометрическая интерполяция - C++
Доброго времени суток! Возникла проблема с тригонометрической интерполяцией,а именно: когда вводишь обычную линейную или квадратичную...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 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 полиномов: суммировать коэффициенты при одинаковых степенях. Это и будет искомый полином Лагранжа.
0
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
15.12.2013, 13:09  [ТС] #3
а в коде это как выглядить примерно будет?
0
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
15.12.2013, 13:13 #4
У вас какие-то сложности с тем, чтобы реализовать это в коде? Что конкретно не получается?
0
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
15.12.2013, 13:55  [ТС] #5
Коэффициенты при иксах в многочлене Лагранжа как посчитать??? как это будет в коде???
0
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
15.12.2013, 14:02 #6
Очевидно, что коэффициенты полинома удобнее всего представлять массивом. Как их посчитать, я уже описал выше. Пересчёт коэффициентов при умножении на другой полином, да ещё и первой степени - операция тривиальная. Или вы хотите, чтобы я просто написал за вас весь код, не обременяя вас скучными подробностями?
0
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35
15.12.2013, 14:41  [ТС] #7
нет,что вы)) я частично понимаю что вы говорите) мне наоборот помогает это понять метод) но если вам не сложно,то я хотел бы вас попросить написать хоть какой нибудь пример с этим коэффициенотом)) просто я не особо силен( Спасибо вам огромное за то что объясняли) но как записать в коде я не знаю(
0
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 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.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 18:54
Привет! Вот еще темы с ответами:

Квадратичная интерполяция - C++
привет. можешь пожалуйста помочь из созданием программы для вычисления Квадратической интерполяции на С++. у мене на эту тему целая...

Квадратичная интерполяция - C++
Здравствуйте,не понимаю,что не так,все сделано по алгоритму ,алгоритм и пример находятся во вложениях #include <iostream> #include...

Интерполяция Лагранжа - C++
Доброго времени суток! У меня такая просьба, можно ли упростить данную программу? Т. е. сделать меньше строк в программе, убрать...

Многомерная интерполяция - C++
Доброго времени суток. У меня такая задача, у меня есть пятимерное пространство точек, по сути сетка. Задача сводится к интерполяции...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.12.2013, 18:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru