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

Приближение функции многочленом Лагранжа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не работает глобальный идентификатор extern http://www.cyberforum.ru/cpp-beginners/thread832843.html
У меня два файла : main.cpp func.cpp во втором файле обьявлена и инициализирована extern int a = 3; Почему в первом файле она не находится? Компилирую так: g++ main.cpp func.cpp
C++ std::setw() как аргумент функции void print(const int format = 0) const { for (size_t i = 0; i<m_rows; ++i) { for (size_t j = 0; j<m_cols; ++j) std::cout<<std::setw(format)<<m_matrix<<" "; std::cout<<"\n"; } } Как бы мне эту функцию вызывать так? :a.print(std::setw(4)) http://www.cyberforum.ru/cpp-beginners/thread832832.html
Добавление элемента в начало списка C++
Проблема в том, что выводит 100, 9. Почему не выводит промежуточные значения - не понятно. Вроде бы не должен. #include <stdio.h> #include <stdlib.h> struct Node { int num; Node *next; } *PNode,*First, *after_first;
ЕСТЬ КОД НУЖЕН ВВОД И ВЫВОД В ФАЙЛ СДЕЛАТЬ C++
заполнить массив змейкой начиная с 1 элемента пример 1 2 3 4 8 7 6 5 9 10 11 12 ............. РЕЗУЛЬТАТ ЗАПИСАТЬ В ФАЙЛ И ВЫВЕСТИ НА ЕКРАН ИЗ ФАЙЛА НЕОБХОДИМО ИСПОЛЬЗОВАТЬ ПРОЦЕДУРЫ ЕСЛИ НАДО ЕСТЬ КОД НА пАСКАЛЕ: uses crt; var i,j,k,n,m: integer;
C++ случайный выбор http://www.cyberforum.ru/cpp-beginners/thread832822.html
Прошу помощи... Составить программу случайного выбора очередного из списка, в котором 3 мальчика и 5 девочки, причем для девочек вероятность выбора в два раза меньше.
C++ "Маленькая задачка" (прочитать файл по словам и создать из него список) Всем доброго времени суток ! Хотел бы попросить помощи в данной задачи на C++, а точнее написать её и растолковать. Вот данное условие : "Есть выходной текстовый файл. Нужно прочитать файл по словам и создать из него список." Буду благодарен за помощь :) подробнее

Показать сообщение отдельно
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
09.04.2013, 19:07     Приближение функции многочленом Лагранжа
Всем привет, нужно написать программу, которая вычисляет приближение функции многочленом Лагранжа.
Все реализовал, но возникла непонятка с результатом:

как я делаю:
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
const int n = 2;
double A[n+1][n+1] = {0};
double a = -2, b = 2;
const double h = (b - a)/n;
 
 
double pr(double x, int i)
{
    double temp =1;
    for ( int j = 0; j<=n; j++)
    {
        if ( j != i )
            temp *= (x - (a+j*h)) / ((a+i*h) - (a+j*h));
    }
    return temp;
 
}
double lag(double x)
{
    double temp = 0;
    for ( int i = 0; i<n+1; i++)
        temp += A[0][i] * pr(x,i); 
    return temp;
}
double func(double x)
{
    return abs(x*x+x);
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int k = 0;
    for ( double i = 0; i<n+1; i++)   //заполнили первый столбец
        {
            A[k][0] = func(a+i*h);
            k++;    
        }
    int l = n+1;
for ( int j = 1; j<n+1; j++)   // создали треугольную матрицу
        {
            for ( int i = 0; i<l-1; i++)
            {
                A[i][j] = A[i+1][j-1] - A[i][j-1];
            }
            l--;
        }
1. Создаю треугольную матрицу, потом беру первую строку матрицы и использую её в качестве y0...yn
2. Сама функция pr - она считает произведение частных разностей отрезка.
Проверил все на бумаге для n = 2, по идеи все сходится, но ответ отличается очень сильно между func(x) и lag(x) и на погрешность списать нельзя.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru