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

Реализовала формулу. Все хорошо, вот только в результатах взялось откуда-то #INF - C++

Восстановить пароль Регистрация
 
Anastasia121192
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 10
07.06.2013, 08:34     Реализовала формулу. Все хорошо, вот только в результатах взялось откуда-то #INF #1
Мне нужно вычислить дифференциал интерполяционного многочлена Лагранжа третьей степени, и подставить значения иксов/игриков и аргумента.


Дифференциал многочлена вычисляется так:
http://i2.imageban.ru/thumbs/2013.06...674e75a43d.png
Результатом работы программы должно быть численное значение этой формулы при заданных значениях.

Я еще толком не умею писать программы и выросло у меня вот это, то что снизу. Результатом должно быть число, но вот программа выдает непонятное 1.#INF и -1.#INF в значениях l3_diff и P_n. Что это такое и как этого избежать?

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
cout << "Vvedite znachenia argumenta X (X0, X1, X2, X3)";
double X0, X1, X2, X3;
cin >> X0;
cin >> X1;
cin >> X2;
cin >> X3;
cout << "X0=" << X0 <<"\n"<< "X1=" << X1 <<"\n"<< "X2=" << X2 <<"\n"<< "X3=" << X3 <<"\n";
cout << "Vvedite znachenia funkcii v zadannix tochkax Y (Y0, Y1, Y2, Y3)";
double Y0, Y1, Y2, Y3;
cin >> Y0;
cin >> Y1;
cin >> Y2;
cin >> Y3;
cout << "Y0=" << Y0 <<"\n"<< "Y1=" << Y1 <<"\n"<< "Y2=" << Y2 <<"\n"<< "Y3=" << Y3 <<"\n";
cout << "Vvedite tochku dlya kotoroi schitaem pribligennoe znachenie X_arg";
double ARG;
double a0, a1, a2, a3, b0, b1, b2, b3, c0, c1, c2, c3;
double l0_1, l0_2, l0_3, l0, l1_1, l1_2, l1_3, l1, l2_1, l2_2, l2_3, l2, l3_1, l3_2, l3_3, l3;
double l0_diff, l1_diff, l2_diff, l3_diff;
double P_n;
cin >> ARG;
cout << "ARG=" << ARG <<"\n";
l0_1=(ARG-X1)/(X0-X1);
l0_2=(ARG-X2)/(X0-X2);
l0_3=(ARG-X3)/(X0-X3);
l0=l0_1*l0_2*l0_3;
l1_1=(ARG-X0)/(X1-X0);
l1_2=(ARG-X2)/(X1-X2);
l1_3=(ARG-X3)/(X1-X3);
l1=l1_1*l1_2*l1_3;
l2_1=(ARG-X0)/(X2-X0);
l2_2=(ARG-X1)/(X2-X1);
l2_3=(ARG-X3)/(X2-X3);
l2=l2_1*l2_2*l2_3;
l3_1=(ARG-X0)/(X3-X0);
l3_2=(ARG-X1)/(X3-X1);
l3_3=(ARG-X2)/(X3-X2);
l3=l3_1*l3_2*l3_3;
a0=((X0-X1)/((X0-X1)*(X0-X1)))*((ARG-X2)/(X0-X2));
a1=((X1-X0)/((X1-X0)*(X1-X0)))*((ARG-X2)/(X1-X2));
a2=((X2-X1)/((X2-X1)*(X2-X1)))*((ARG-X0)/(X2-X0));
a3=((X3-X1)/((X3-X1)*(X3-X1)))*((ARG-X2)/(X3-X3));
b0=((ARG-X1)/(X0-X1))*((X0-X2)/(X0-X2)*(X0-X2));
b1=((ARG-X0)/(X1-X0))*((X1-X2)/(X1-X2)*(X1-X2));
b2=((ARG-X1)/(X2-X1))*((X2-X0)/(X2-X0)*(X2-X0));
b3=((ARG-X1)/(X3-X1))*((X3-X2)/(X3-X2)*(X3-X2));
c0=((((ARG-X1)/(X0-X1))*((ARG-X2)/(X1-X2)))*((X0-X3-ARG-X3)/((X0-X3)*(X0-X3))));
c1=((((ARG-X0)/(X1-X0))*((ARG-X2)/(X1-X2)))*((X1-X3-ARG-X3)/((X1-X3)*(X1-X3))));
c2=((((ARG-X1)/(X2-X1))*((ARG-X0)/(X1-X0)))*((X2-X3-ARG-X3)/((X2-X3)*(X2-X3))));
c3=((((ARG-X1)/(X3-X1))*((ARG-X2)/(X1-X2)))*((X3-X0-ARG-X0)/((X3-X0)*(X3-X0))));
l0_diff=a0+b0+c0;
l1_diff=a1+b1+c1;
l2_diff=a2+b2+c2;
l3_diff=a3+b3+c3;
P_n=(Y0+Y1+Y2+Y3)*(((l1_diff*l1+l0*l1_diff)*(l2*l3))+((l0*l1)*(l2_diff*l3+l2*l3_diff)));
cout << "l0=" << l0 <<"\n"<< "l1=" << l1 <<"\n"<< "l2=" << l2 <<"\n"<< "l3=" << l3 <<"\n";
cout << "l0_diff" << l0_diff <<"\n"<< "l1_diff" << l1_diff <<"\n"<< "l2_diff=" << l2_diff <<"\n"<< "l3_diff=" << l3_diff <<"\n";
cout << "P_n=" << P_n <<"\n";
system ("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2013, 08:34     Реализовала формулу. Все хорошо, вот только в результатах взялось откуда-то #INF
Посмотрите здесь:

C++ Только вот сейчас появилось желание научится програмированию С++
Как исправить вот эти ошибки? Вроде все правильно сделал... C++
вот такой вот пример C++
C++ Вот такое вот кажется лёгкое задание но не как не могу решить.
Откуда берутся все символы после моей строки? C++
C++ Или я дурак, или компилятор смеется, вот только чувствую я дурак)
Вывести массивы номеров строк и столбцов, все элементы которых равны только 1 или только 0 C++
#INF C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2187 / 1870 / 187
Регистрация: 03.07.2012
Сообщений: 6,646
Записей в блоге: 1
07.06.2013, 08:45     Реализовала формулу. Все хорошо, вот только в результатах взялось откуда-то #INF #2
inf - это бесконечность. На 0 где-то делите
Anastasia121192
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 10
07.06.2013, 08:53  [ТС]     Реализовала формулу. Все хорошо, вот только в результатах взялось откуда-то #INF #3
Спасибо) Значит проблема в примере и значениях, что я использовала)
Yandex
Объявления
07.06.2013, 08:53     Реализовала формулу. Все хорошо, вот только в результатах взялось откуда-то #INF
Ответ Создать тему
Опции темы

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