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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Обратить каждый второй бит числа. http://www.cyberforum.ru/cpp-beginners/thread303752.html
Дано число в шестнадцатеричной системе исчисления 12ВF вывести его в "битовой форме" (011011001) потом обратить каждый второй бит и вывести результат.
C++ Дано натуральное п. Вычислить Дано натуральное п. Вычислить: S = 1*2 + 2*3*4 +...+ n *(n+1)...*2n Напишите пожалуйста программу использую цикл FOR. Заранее благодарен) http://www.cyberforum.ru/cpp-beginners/thread303749.html
C++ Передача строкового массива в функцию по абсолютной адресации
void chains_kostyl(mas stud, string *&a, int n, int &k) { for(int i=1;i<=n;i++)// i - количество элементов в структуре { a.weigh)]=stud.fio;//заполнение таблицы if(a.weigh)]!="") { a.weigh)+1]=stud.fio; k++; }
Вывести количество повторений C++
Найти в текстовом файле одинаковые слова и вывести количество повторений каждого в другой файл. Помогите плз=((((
C++ Надо удалить n-ный элемент списка, при том, что он не первый и не последний http://www.cyberforum.ru/cpp-beginners/thread303732.html
Есть такой код: #include<iostream> #include "rus.h" using namespace std; struct Info { int d; };
C++ Создать массив Помогите написать массив объектов класса стринг, отсортировать, вывести. Благодарю заранее. подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.05.2011, 18:27     Интерполяционный многочлен Лагранжа
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
//lagrange.h
#ifndef LAGRANGE_H
#define LAGRANGE_H
 
#include <vector>
 
class LagrangePolynomial {
    static double __fraction(double x, unsigned i, 
                             const std::vector< double > & __x, 
                             const std::vector< double > & __y);
public:
    static double fi(double X, 
                     const std::vector< double > & x, 
                     const std::vector< double > & y);
};
 
double LagrangePolynomial::__fraction(double x, unsigned i, 
                                      const std::vector< double > & __x, 
                                      const std::vector< double > & __y)
{
    double num(1), denum(1);
    for( size_t k = 0; k < __x.size(); k++ )
        if( k != i ) num *= ( x - __x[k] );
 
    for( size_t k = 0; k < __x.size(); k++ )
       if( k != i ) denum *= ( __x[i] - __x[k] );
 
    return num / denum;
}
 
double LagrangePolynomial::fi(double X, 
                              const std::vector< double > & x,
                              const std::vector< double > & y)
{
    double sum(0.0);
    for( size_t i = 0; i < y.size(); i++ )
       sum += y[i] * __fraction(X, i, x, y);
    return sum;
}
#endif // LAGRANGE_H
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//main.h
#include <cstdio>
#include <math.h>
#include "lagrange.h"
 
#define M_PI 3.14159265358979323846
 
int main()
{
    std::vector< double > x, y;
    //n = 6, полином 5-й степени
    for(int i = 0; i <= 5; i++)
    {
    x.push_back(i * 0.2);
    y.push_back(sin(M_PI * x.back()));
    }
    for(int i = 0; i < 11; i++)
       printf(" x = %lf\tApproximate = %lf\tExexct = %lf\n", 
        i * 0.1, LagrangePolynomial::fi(i * 0.1, x, y), sin(M_PI * i * 0.1));
    std::getchar();
}
 
Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru