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

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

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

Author24 — интернет-сервис помощи студентам
Дана функция 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 2
Я только изучаю 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  [ТС] 3
Выдает такие ошибки
Миниатюры
Интерполяционный полином Лагранжа  
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
25.09.2017, 10:47 4
Morgenstern88, да в любом случае это была шутка, может попозже нормально напишу, если другие не ответят.
0
84 / 119 / 28
Регистрация: 17.10.2010
Сообщений: 1,267
25.09.2017, 12:03 5
Нужно включить библиотеку #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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru