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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
#1

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

14.12.2009, 17:27. Просмотров 2787. Ответов 15
Метки нет (Все метки)

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <iostream.h>
#include <conio.h>
 
const MAX_points=20;
 
 
void ShowTitle()
 
clrscr();
cout<<"Интерполяционный метод Лагранжа<<endl;
 
 
int GetNumOfPoints()
 
int Ret=0;
do cout<<" Введи те число точек (l.."<<MAX_POINT<<"):";
ci>>Ret;
 
while((Ret<l )&&(Ret>M AX_POINTS));
return Ret;
 
 
void SetValues(float* X,float* FX,int Size)
 
int i;
for(i =0;i<MAX_POINTS;i++) 
X[i]=0; FX[i]=0; 
 
for(i =0;i<Size;i++)
cou<<"To4Ka X["<<i<<"] = "; 
cin>>X[i];
 
for(i =0;i<Size;i++)
cout<<"Значение функции в точке F(X[<<i<<"]) = ";
cin>>FX[i];
 
 
float SctPointValue()
 
float Ret;
cout<<"Задайте значение X, для которою надо посчитать F(X) по Лагранжу:";
 
cin>>Ret;
return Ret; 
float UseLagrangeMethod(float* X,float* FX, int Size,float Point)
 
int i,j;
float PV,U,D;
PV = 0;
 
for (i = 0;i<Size;i++)
U=I;D=1;
 
for (j=0;j<Size;j++)
 
if(j!=i)
 
U = U*(Point-X[j]); 
D = D*(X[i]-X[j]);
 
 
PV = PV + (U/D)*FX[i];
 
return PV;
 
 
void ShowVal(float Val)
 
cou<<"Значение полинома в данной точке = "<<Val<<endl; 
cout<<"Нажмите любую клавишу для продолжения..."<<endl; 
getch();
 
int ExitProgramm()
 
char c;
do cout<<"Повторить программу (|Y/N|) ? : ";
cin>>c;
while((c == *y')&&(c == *Y*)&&(c = =n)&&(c == 'N')); 
 
if((c= ='y')||(c == 'Y')) return 1;
else return 0;
 
int RepeatMethod()
 
char c;
do cout<<"Повторить вычисления для данного полинома (|Y/N| ) ? : ";
cin>>c;
while((c == *y')&&(c == *Y*)&&(c = =n)&&(c == 'N')); 
 
if((c= ='y')||(c == 'Y')) return 1;
else return 0;
 
 
void main()
int Size;
float X[MAX_POINTS],F_X[MAX_POINTS],PointVa-l,PolyVal;
 
 
Show
Title() 
; do
Size =
GetNumOfPoints();
SetValues(X,F_X,Size);
do
PointVal = SetPointValue();
PolyVal = UseLagrangeMethod(X,F_X,Size,PointV al); ShowVal(PolyVal);
 
while(RepeatMethod());
while(ExitProgramm());


есть такой вот код, на который выдаеться
: fatal error C1083: Не удается открыть файл include: iostream.h: No such file or directory

удаление расширения иострима приводит к 130 ошибкам...что не так, помогите?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2009, 17:27     Вопрос по интерполяции лагранжа
Посмотрите здесь:

Разработать алгоритм интерполяции значений функции методом Лагранжа. В качестве тестового примера использовать функцию Рунге - C++
Народ срочно нужна помощь в написании программы. Тема : Разработать алгоритм интерполяции значений функции методом Лагранжа. В качестве...

Погрешность интерполяции на C++ - C++
написал код для интерполяционного полинома Ньютоно, он работает правильно, но вот никак не могу разобратса как обчислить его погреность ...

Метод линейной интерполяции - C++
Нужно решить уравнение sin(x)+log(x)=1 методом методом линейной интерполяции Помогите найти ошибку. Стока уже дней мучаюсь.. #...

Алгоритм линейной интерполяции - C++
Есть массив значений х с точками 0, 2, 4, 6, ... 30, 35, 40, 45.. и т.д., и соответствующие значения у в этих точках. Мне нужно найти...

Ошибки в программе интерполяции функции - C++
выдает ошибки Unit1.cpp(194): E2209 Unable to open include file 'graphics.h' Unit1.cpp(197): E2451 Undefined symbol 'DETECT' ...

Создание метода интерполяции по блоксхеме - C++
Здравствуйте. Помогите пожалуйста написать метод интерполяции по данной схеме, у меня чего то не получается, всё время пишет что не...

Найти номер элемента методом интерполяции - C++
в первой части ошибок нет,показывает ошибку во второй части,где требуется найти номер элемента методом интерполяции.не могу понять...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
14.12.2009, 17:31     Вопрос по интерполяции лагранжа #2
Попробуй так:
C++
1
#include<iostream>
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
14.12.2009, 17:33  [ТС]     Вопрос по интерполяции лагранжа #3
я же написал уже..
удаление расширения иострима приводит к 130 ошибкам...
Atrus
12 / 12 / 0
Регистрация: 08.07.2009
Сообщений: 45
14.12.2009, 17:42     Вопрос по интерполяции лагранжа #4
Когда ты удаляешь расширение, то надо прописывать пространство имен для всех имен относящихся к iostream.
т.е например std::cout вместо cout.

Ну или прописать в начале программы
using namespace std;
(хотя это потом может быть черевато)
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.12.2009, 21:14     Вопрос по интерполяции лагранжа #5
Styks, поверь, у тебя ошибок не меньше 130, если не больше, а это только синтаксические. Ведь С++ - это не делфи
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
14.12.2009, 22:33  [ТС]     Вопрос по интерполяции лагранжа #6
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
 
#include <conio.h>
using namespace std;
const MAX_POINTS=20;
 
 
void ShowTitle()
 
 
std::cout<<"Интерполяционный метод Лагранжа"<<endl;
 
 
int GetNumOfPoints()
 
    int Ret=0;
do std::cout<<" Введи те число точек (l.."<<MAX_POINTS<<"):";
std::cin>>Ret;
 
while((Ret<l )&&(Ret>MAX_POINTS));
 return Ret;
    
 
void SetValues(float* X,float* FX,int Size)
 
int i;
for(i =0;i<MAX_POINTS;i++) 
X[i]=0; FX[i]=0; 
 
for(i =0;i<Size;i++)
std::cout<<"To4Ka X["<<i<<"] = "; 
std::cin>>X[i];
 
for(i =0;i<Size;i++)
std::cout<<"Значение функции в точке F(X"[<<i<<]") = ";
std::cin>>FX[i];
 
 
float SetPointValue()
 
float Ret;
std::cout<<"Задайте значение X, для которою надо посчитать F(X) по Лагранжу:";
 
std::cin>>Ret;
return Ret; 
 
float UseLagrangeMethod(float* X,float* FX, int Size,float Point)
 
int i,j;
float PV,U,D;
PV = 0;
 
for (i = 0;i<Size;i++)
U=1;D=1;
 
for (j=0;j<Size;j++)
 
if(j!=i)
 
U = U*(Point-X[j]); 
D = D*(X[i]-X[j]);
 
 
PV = PV + (U/D)*FX[i];
 
return PV;
 
 
void ShowVal(float Val)
 
cout<<"Значение полинома в данной точке = "<<Val<<endl; 
cout<<"Нажмите любую клавишу для продолжения..."<<endl; 
getch();
 
int ExitProgramm()
 
char c;
do std::cout<<"Повторить программу (|Y/N|) ? : ";
std::cin>>c;
 while((c == 'y')&&(c == 'Y')&&(c =='n')&&(c == 'N')); 
 
if((c=='y')||(c == 'Y')) return 1;
else return 0;
    
int RepeatMethod()
 
char d;
do std::cout<<"Повторить вычисления для данного полинома (|Y/N| ) ? : ";
std::cin>>d;
while((d == 'y')&&(d == 'Y')&&(d =='n')&&(d == 'N')); 
 
if((d= ='y')||(d == 'Y')) return 1;
else return 0;
 
 
void main()
 int Size;
float X[MAX_POINTS],F_X[MAX_POINTS],PointVal,PolyVal;
 
 
GetNumOfPoints();
SetValues(X,F_X,Size);
PointVal = SetPointValue();
PolyVal = UseLagrangeMethod(X,F_X,Size,PointVal);
ShowVal(PolyVal);
while (RepeatMethod());
while (ExitProgramm());

переправил, не помогает
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.12.2009, 22:36     Вопрос по интерполяции лагранжа #7
Styks, открой любой учебник по С/С++ и прочитай первые две-три главы. Ты ведь синтаксис просто не знаешь.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
14.12.2009, 22:38     Вопрос по интерполяции лагранжа #8
Styks,
переправил, не помогает

если тебе не нравятся фигурные скобочки, переходи на Python
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
14.12.2009, 22:38  [ТС]     Вопрос по интерполяции лагранжа #9
что конкретно я в них загонять то должен?....
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
14.12.2009, 23:43     Вопрос по интерполяции лагранжа #10
Styks,

что конкретно я в них загонять то должен?....

загоняют коров в стойло, а в C++ фигурный скобки представляют из себя составной оператор
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
15.12.2009, 00:19  [ТС]     Вопрос по интерполяции лагранжа #11
Как я люблю вас, пафосных программеров. Такие все умные. нет прсото подсказать где открыть и закрыть скобки во всех этих интах и прочем. НЕт, каждому надо сострить. Учимся мы студенты. Стоило бы радоваться, а не на питон отсылать
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
15.12.2009, 00:29     Вопрос по интерполяции лагранжа #12
Styks,

Учимся мы студенты.

Ну так учись. начни с простого, напиши программу "HelloWorld", и добейся чтобы она работала. Потом переходи к сложному.

ну а если ты учиться не желаешь, я-то чё могу поделать?
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
15.12.2009, 00:31  [ТС]     Вопрос по интерполяции лагранжа #13
на то нет времени. сессия требует Лагранжа, а не привет мир
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
15.12.2009, 00:40     Вопрос по интерполяции лагранжа #14
на то нет времени.

а я люблю вас, вери деловых и занятых студней

времени нет у него... есть простое правило: когда нет времени и есть деньги, идут заказывать программу. когда нет времени и денег, то делают сами или идут в армию :lol:

вот тебе в качестве примера правильный вариант первой функции. вкупе с уже упоминавшимся советом о прочтении учебника должно дать плоды. если же нет... ну что ж, "умерла так умерла" (((Ж

C++
1
2
3
4
5
6
7
#include <iostream>
 
void ShowTitle()
{ 
    system("cls");
    std::cout << "Интерполяционный метод Лагранжа" << std::endl;
}
clrscr - нестандартная функция поэтому работать будет не везде.
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
15.12.2009, 00:41  [ТС]     Вопрос по интерполяции лагранжа #15
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include <stdafx.h>
#include <conio.h>
 
const MAX_POINTS=20;
 
 
void ShowTitle(){
 
system("cls");
    std::cout<<"Интерполяционный метод Лагранжа"<< std::endl;
 
 
int GetNumOfPoints();{
 
    int Ret=0;
do cout<<" Введи те число точек (l.."<<MAX_POINTS<<"):";
cin>>Ret;
 
while((Ret<l)&&(Ret>MAX_POINTS));
 return Ret;
    
}
void SetValues(float* X,float* FX,int Size)
{
int i;
for(i =0;i<MAX_POINTS;i++) 
X[i]=0; FX[i]=0; 
 
for(i =0;i<Size;i++)
cout<<"To4Ka X["<<i<<"] = "; 
cin>>X[i];
 
for(i =0;i<Size;i++)
cout<<"Значение функции в точке F(X"[<<i<<]") = ";
std::cin>>FX[i];
 
 
float SetPointValue()
 
float Ret;
std::cout<<"Задайте значение X, для которою надо посчитать F(X) по Лагранжу:";
 
std::cin>>Ret;
return Ret; 
 
float UseLagrangeMethod(float* X,float* FX, int Size,float Point)}
 
int i,j;
float PV,U,D;
PV = 0;
 
for (i = 0;i<Size;i++)
U=1;D=1;
 
for (j=0;j<Size;j++)
 
if(j!=i)
 
U = U*(Point-X[j]); 
D = D*(X[i]-X[j]);
 
 
PV = PV + (U/D)*FX[i];
 
return PV;
 
 
void ShowVal(float Val)
 
cout<<"Значение полинома в данной точке = "<<Val<<endl; 
cout<<"Нажмите любую клавишу для продолжения..."<<endl; 
getch();
 
int ExitProgramm()
 
char c;
do std::cout<<"Повторить программу (|Y/N|) ? : ";
std::cin>>c;
 while((c == 'y')&&(c == 'Y')&&(c =='n')&&(c == 'N')); 
 
if((c=='y')||(c == 'Y')) return 1;
else return 0;
    
int RepeatMethod()
 
char d;
do std::cout<<"Повторить вычисления для данного полинома (|Y/N| ) ? : ";
std::cin>>d;
while((d == 'y')&&(d == 'Y')&&(d =='n')&&(d == 'N')); 
 
if((d= ='y')||(d == 'Y')) return 1;
else return 0;
 
 
void main()
{
 int Size;
float X[MAX_POINTS],F_X[MAX_POINTS],PointVal,PolyVal;
 
 
GetNumOfPoints();
SetValues(X,F_X,Size);
PointVal = SetPointValue();
PolyVal = UseLagrangeMethod(X,F_X,Size,PointVal);
ShowVal(PolyVal);
while (RepeatMethod());
while (ExitProgramm());}}
всего 8 ошибок осталось
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2009, 01:28     Вопрос по интерполяции лагранжа
Еще ссылки по теме:

Метод однократной интерполяции (ошибка в реализации) - C++
имеется схема алгоритма, метода однократной интерполяции. нужно реализовать ету схему используя с++. вот пишу код: #include...

Как можно провести интерполяции между двумя векторами? - C++
Здарова всем. Ребят, задают здесь вопрос, потому что здесь больше народу, хотя он относится к алгоритмам, по идее. Но так как я буду его...

Поиск экстремумов, методы золотого сечения, дихотомии, кв. интерполяции-экстраполяции - C++
Всем привет! Возникли проблемы с реализацией методов, указанных выше. Функция всегда используется одна и та же, следовательно, экстремумы у...

Как задать криволинейный замкнутый контур по точкам методом кубической интерполяции? - C++
В с++ я новичок, полазив по форумам, я нашел некотрые коды, но они либо не работают, либо выдают не то что нужно. Не мог бы мне кто-нибудь...

Интерполяция полиномом Лагранжа - C++
Функция у = f(x) задана в табличной форме: x=0; y=1.763; x=0.2; y=1.917; x=0.4; y=2.143; а) cоставить алгоритм и программу...


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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.12.2009, 01:28     Вопрос по интерполяции лагранжа #16
Styks, не всего, а пока 8. Все же прочти сначала книгу, иначе здесь будет просто флудилка, которую я прикрою
Yandex
Объявления
15.12.2009, 01:28     Вопрос по интерполяции лагранжа
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru