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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ выбор проекта http://www.cyberforum.ru/cpp-beginners/thread54851.html
помогите выбрать тему для проекта... проект пишется на С++ в стиле объектно-ориентиронного программирования(классы: стеки, очереди, и т.д) должен содержать сложные алгоритмы... любые даже самые бредовые идеи приветствуются.. главное чтобы
C++ Интерпретатор для логических выражений Привет всем! Помогите, кто знает, пожалуйста! мне нужно написать программу-интерпретатор для логических выражений. если можно с описанием метода решения задачи и исх. кодом. Заранее благодарю!!! http://www.cyberforum.ru/cpp-beginners/thread54746.html
C++ Builder Как добавить кнопку на форму
Здрасвтуйте, помогите пожалуйста. Мне нужно чтобы при нажатии кноки на форму появлялась еще одна кнопка. Я в Н файле написал следующий код: class Gr { TButton* Bt; public: Gr(TComponent* Owner); }; В срр файле я написал реализацию конструктора:
Нижний регистр C++
Помогите пожалуйста с заданием. Как правильно написать. А то мучалась, так ни чего не смогла сделать. Задание: Написать программу, печатающую все вводимые символы в нижнем регистре. Программа должна использовать цикл while. Входные данные поступают с клавиатуры. Предусмотреть обработку ошибок
C++ Тип данных учетверенной точности в C/C++ http://www.cyberforum.ru/cpp-beginners/thread54213.html
Подскажите, имеется ли в C/C++ тип данных учетверенной точности (16 байт), т.е. удвоенной по сравнению с double? В фортране такая штука есть, а вот в C? Нужно ли что-нибудь подключать для этого? Заранее спасибо.
C++ Asm из cpp, с или других расширений Можно ли в автоматическом режиме в Visual Studio получить asm-файл из cpp-файла или c-файла или объектных, библиотечных файлов при условии что исходный код известен, но лень все переделывать на asm, может входит в Visual Studio какая-нибудь подобная утилита? подробнее

Показать сообщение отдельно
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195

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

07.10.2009, 16:24. Просмотров 8813. Ответов 4
Метки (Все метки)

Доброго времени суток!
У меня такая просьба, можно ли упростить данную программу?
Т. е. сделать меньше строк в программе, убрать ненужные действия и так чтобы она не была похожа по написанию на эту

(Вычислить значение функции при заданных значениях аргумента, используя интерполяционную формулу Ньютона для неравноудаленных узлов)

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
#include <iostream.h>
 
/*** Разделённые разности ***/
double divided_differences(const double* x, const double* y, const int xstart, const int xend)
{
    double dn = x[xend] - x[xstart];
    if (dn == 0) return 0;
    if(xend - xstart == 1)
    {
        return (y[xend] - y[xstart]) / dn;
    } else if(xend - xstart > 1) {
        return (divided_differences(x, y, xstart + 1, xend) - divided_differences(x, y, xstart, xend - 1)) / dn;
    } else {
        return 0;
    }
}
 
/*** Многочлен Ньютона ***/
double newtone_polynomial(const double* x, const double* y, const double xk, const int degree)
{
    if (degree < 1) return 0;
    int i, k; double P = 0;
    for(i = 1; i <= degree; i++)
    {
        double t = 1;
        for (k = 0; k < i; k++) t *= xk - x[k];
        P += divided_differences(x, y, 0, i) * t;
    }
    return y[0] + P;
}
 
int main(int argc, char* argv[])
{
    cout << "Введите количество узлов: "; int n; cin >> n; int i;
    double* y = new double[n]; double* x = new double[n];
    cout << "Введите " << n << " узлов интерполяции\n";
    for(i = 0; i < n; i++) cin >> x[i];
    cout << "Введите " << n << " значений функции\n";
    for(i = 0; i < n; i++) cin >> y[i];
 
    cout << "\nВведите x: "; double xr; cin >> xr;
 
    cout << newtone_polynomial(x, y, xr, n - 1) << endl;
    delete []x; delete []y;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru