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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 59, средняя оценка - 4.97
edward_jonson
 Аватар для edward_jonson
157 / 157 / 25
Регистрация: 23.02.2011
Сообщений: 388
04.11.2011, 23:00     Интерполяционный многочлен Ньютона #1
По табличной функции, заданной 10-ю точками, построить мн-член Ньютона с конечными разностями. Моя программа:
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define NUMB 10
#define X0  -1.5
#define Xn  -0.6
#define h   0.1
int fact(int n)
{
    if (n==1 || n==0) return 1;
   return n*fact(n-1);
}
double f(double x)
{
    return x*x-4*x*cos(x);
}
double ticalc(double t,int n)
{
    if (n==1) return 1;
    double mult;
   for (int k=0;k<n-1;k++)
    mult=t*ticalc(t-1.0,n-1);
   return mult;
}
double N(double x)
{
    int k,i=0;
    double dely0,t,Y[10],sum=0.0,p;
   t=(x-X0)/h;
   for (p=X0;p<=Xn;p=p+h);
   {
    Y[i]=f(p);
      i++;
   }
   dely0=Y[1]-Y[0];
   sum+=Y[0];
   for (k=1;k<=NUMB;k++)
   sum+=(ticalc(t,k+1)/fact(k))*pow(dely0,k);
   return sum;
}
void main()
{
    int i=1;
    double x;//=0.406,sum=2.6744;
   for (x=X0;i<=NUMB;x+=h)
    {
    printf ("V TOCHKE %0.2lf : ZNACHENIE FUNKCII = %0.4lf ZNACHENIE MNOGOCHLENA = %0.4lf\n",x,f(x),N(x));
      i++;
   }
getch();
}
Pначения многочлена выводит совсем не близкие к значениям функции, подскажите где ошибка.
Bспользовал формулу:
Миниатюры
Интерполяционный многочлен Ньютона  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2011, 23:00     Интерполяционный многочлен Ньютона
Посмотрите здесь:

C++ интерполяционный многочлен Лагранжа
C++ Построить интерполяционный многочлен и интерполяционный сплайн
Как поделить многочлен на многочлен C++
Даны действительное число а, многочлен степени n. Получить многочлен (x^2+2ax+3)*P(x) C++
C++ Интерполяционный многочлен Ньютона (ИМН) с произвольными узлами
C++ Восходящий интерполяционный многочлен Ньютона. Может пригодится
Запуск без дебаггера. Интерполяционный многочлен Лагранжа C++
C++ Интерполяционный многочлен Лагранжа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
05.11.2011, 00:19     Интерполяционный многочлен Ньютона #2
Очередная тема аля "С прогой че-то не так" в научном разделе.

C++
1
2
3
4
dely0=Y[1]-Y[0];
...
...
sum+=(ticalc(t,k+1)/fact(k))*pow(dely0,k);
Переменная dely0 это не то что Вы думаете. Еще раз читаем про многочлен Ньютона и это.

C++
1
2
   for (int k=0;k<n-1;k++)
        mult=t*ticalc(t-1.0,n-1);
Цикл зачем?

Такие темы создавайте в разделе C/C++.
Yandex
Объявления
05.11.2011, 00:19     Интерполяционный многочлен Ньютона
Ответ Создать тему
Опции темы

Текущее время: 14:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru