0 / 0 / 0
Регистрация: 17.09.2017
Сообщений: 2

Интерполяционный полином Лагранжа

17.09.2017, 12:39. Показов 4115. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана функция f(x) = xln(x) + 2xcos(x)
a = 1; b = 2;
Вычислить значение полинома Лагранжа.
P.s. x(i) ∈ [a,b]
x(i) = a + i*h;
h = (b - a)/n
i = 0, 1, 2,......,n
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2017, 12:39
Ответы с готовыми решениями:

Интерполяционный полином Лагранжа
Привет всем! ;)Такой вопрос, имею лабораториум по програмированию и получил несколько заданий, это одно из них, хотел би услишать может...

Интерполяционный полином Лагранжа
Помогите пожалуйста есть программа когда нужно по заданному х=4 найти у Теперь мне нужно сделать наоборот есть у=0.5 найти все значения х...

Вычислить интерполяционный полином Лагранжа
Здравствуйте! Помогите исправить ошибку в коде. Необходимо для индивидуальной функции вычислить интерполяционный полином Лагранжа L (x...

4
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
18.09.2017, 06:50
Я только изучаю C++, поэтому может что-то и коряво, но полином Лаагранжа считает верно, это я могу гарантировать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <array>
#include <algorithm>
 
template <size_t degree>
class LagrangeInterpolation {
    std::array<double, degree + 1> _x;
    std::array<double, degree + 1> _y;
    std::array<double, degree + 1> _denominators;
    double get_product(int index, double x);
public:
    LagrangeInterpolation(double a, double b);
    double operator()(double t);
};
 
template<size_t degree>
double LagrangeInterpolation<degree>::get_product(int index, double x) {
    int i = 0;
    return std::accumulate(_x.begin(), _x.end(), 1.0, [&](double prev, double xi) {
                           return i++ != index ? prev * (xi - x) : prev;
                           });
}
 
template <size_t degree>
LagrangeInterpolation<degree>::LagrangeInterpolation(double a, double b) {
    double h = std::abs(b - a) / degree;
    int i = 0;
    std::generate(_x.begin(), _x.end(), [&](){ return a + h * i++; });
    std::transform(_x.begin(), _x.end(), _y.begin(), [](double x) { return x * (std::log(x) + 2.0 * std::cos(x)); });
    i = 0;
    std::generate(_denominators.begin(), _denominators.end(), [&]()
                  {
                      double x = _x[i];
                      return get_product(i++, x);
                  });
}
 
template <size_t degree>
double LagrangeInterpolation<degree>::operator()(double t) {
   int i = 0;
   return std::accumulate(_y.begin(), _y.end(), 0.0, [&](double prev, double y) {
                            double d = _denominators[i];
                            return prev + y * get_product(i++, t) / d;
                          });
}
 
int main()
{
    LagrangeInterpolation<5> lagrange(1.0, 2.0);
    double x = 0.0;
    std::cout << "Введите x: " << std::endl;
    std::cin >> x;
    std::cout << "Значение интерполяционного полинома Лагранжа: " << lagrange(x) << std::endl;
}
0
0 / 0 / 0
Регистрация: 17.09.2017
Сообщений: 2
25.09.2017, 10:12  [ТС]
Выдает такие ошибки
Миниатюры
Интерполяционный полином Лагранжа  
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
25.09.2017, 10:47
Morgenstern88, да в любом случае это была шутка, может попозже нормально напишу, если другие не ответят.
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,329
25.09.2017, 12:03
Нужно включить библиотеку #include <numeric> и компилятор должен поддерживать стандарт не ниже C++11 включительно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2017, 12:03
Помогаю со студенческими работами здесь

Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции
Здравствуйте! Помогите с заданием: Функция y=f(x) задана таблицей. Пользуясь интерполяционный полином Лагранжа, вычислить приближенное...

Построить по имеющимся данным интерполяционный полином Лагранжа и вычислить значение функции в точке x
Построить по имеющимся данным интерполяционный полином Лагранжа и вычислить значение функции в точке x

Интерполяционный многочлен Лагранжа
не поможете построить график интерполяционного многочлена Лагранжа для функции f(x)=sin(pi x) при числе узлов n=3,5,25 узлы равномерно...

Интерполяционный многочлен Лагранжа
Здравствуйте, уважаемые, обшарил форум, но решения проблемы не нашел. Потратил часа 2, но так и не смог до конца разобраться. Задание:...

Интерполяционный многочлен Лагранжа
Уважаемый форум...помогите пожалуйста полином Лагранжа задан 10 точками...как его вывести в форме многочлена то-есть x^4-2x^2...(пример)и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru