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

Лагранж - C++

Восстановить пароль Регистрация
 
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.03.2010, 11:20     Лагранж #1
Помогите пожалуйста дорешать прогу, необходимо посчитать формулу,(она приложена в дополнении), ток та что бы числа брались из txt-файла, и выводились туда, я кое-что написал, помогите доделать, вот код того, что я написал
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
#include <iostream>
using namespace std;
int main ()
{
double s=0;
double m=1;
double x0=1;
int i=1, k;
double x[ ]={0, 1, 2, 3, 4, 5, 6, 7}, y[ ]={0, 1, 4, 9, 16, 25, 36, 53};
for(x0=0;x0<7;x0=x0+0.1)
{
{for(i=0;i<=9;i++)
{m=1;
for(k=0;k<=9;k++)
 
 
if(k!=i)
 
m=m*((x0-x[k])/(x[i]-x[k]));
 
s=s+y[i]*m;
 
cout<<"y="<<s<<" x="<<x<<endl;
system ("Pause");
return 0;
}
}
}
}
Вложения
Тип файла: doc yx.doc (32.5 Кб, 29 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2010, 11:20     Лагранж
Посмотрите здесь:

Эйлеровы углы, Лагранж, Гамильтон, Гамильтон-Якоби
Метод гаусса, лагранж и аппроксимация Matlab

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.03.2010, 19:49  [ТС]     Лагранж #2
Люди, отзовитесь вроде как кто-то!!, здесь надо немного переделать, ток я не до конца понимаю как?
to4kin
14 / 14 / 2
Регистрация: 04.09.2009
Сообщений: 46
07.03.2010, 20:16     Лагранж #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main ()
{
    double x[] = {0, 1, 2, 3, 4, 5, 6, 7}, y[] = {0, 1, 4, 9, 16, 25, 36, 53};
    double s = 0;
    double p;
 
    for (int i = 0; i < 8; i++)
    {
        p = 1;
        for (int k = 1; k < x[i]; k++)
          if (k != i)
            p *= (i - x[k]) / (x[i] - x[k]);
 
        s += y[i] * p;
    }
 
    cout << s;
    return 0;
}
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.03.2010, 20:29  [ТС]     Лагранж #4
ток программа должна выводить несколько точек такого плана, при
x=0 y=чё нибудь
x=1 y=чё нибудь
x=2 y=чё нибудь
и так дальше...
to4kin
14 / 14 / 2
Регистрация: 04.09.2009
Сообщений: 46
07.03.2010, 20:32     Лагранж #5
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
#include <iostream>
 
using namespace std;
 
int main ()
{
    double x[] = {0, 1, 2, 3, 4, 5, 6, 7}, y[] = {0, 1, 4, 9, 16, 25, 36, 53};
    double s = 0;
    double p;
 
    for (int i = 0; i < 8; i++)
    {
        p = 1;
        for (int k = 1; k < x[i]; k++)
          if (k != i)
            p *= (i - x[k]) / (x[i] - x[k]);
 
        s += y[i] * p;
 
        cout << "x = " << i << " y = " << s << endl;
    }
 
    return 0;
}
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.03.2010, 20:37  [ТС]     Лагранж #6
Спасибо!!!, ток у меня ещё просьба, не смог бы ты мне ещё её переделать так, что бы иксы брались из тиексти файла, а потом обратно выводились туда, но уже из игриками.
to4kin
14 / 14 / 2
Регистрация: 04.09.2009
Сообщений: 46
07.03.2010, 20:58     Лагранж #7
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 <iostream>
#include <fstream>
 
#define N 8
 
using namespace std;
 
int main ()
{
    double x[N], y[N];
    int count = 0;
    double s = 0;
    double p;
 
    ifstream in;
    ofstream out;
 
    in.open("file.txt");
 
    if (!in)
        return 1; //Не удалось открыть файл.
 
    while (!in.eof())
    {
        in >> x[count];
        in >> y[count];
        count++;
    }
 
    in.close();
 
    out.open("out.txt");
    if (!out)
        return 1; //Не удалось открыть файл.
 
    for (int i = 0; i < count; i++)
    {
        p = 1;
        for (int k = 1; k < x[i]; k++)
          if (k != i)
            p *= (i - x[k]) / (x[i] - x[k]);
 
        s += y[i] * p;
 
        out << "x = " << i << " y = " << s << endl;
    }
 
    out.close();
 
    return 0;
}
Входной файл выглядит как:
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 53
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.03.2010, 21:01  [ТС]     Лагранж #8
а попроще никак нельзя?
to4kin
14 / 14 / 2
Регистрация: 04.09.2009
Сообщений: 46
07.03.2010, 21:03     Лагранж #9
А куда еще проще? Открыли файл - прочитали - закрыли - открыли другой файл - пишем в него - закрыли. Лишнего в этой цепочке нету.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.03.2010, 21:20  [ТС]     Лагранж #10
Цитата Сообщение от to4kin Посмотреть сообщение
#define N 8
что означает эта строчка?

Добавлено через 15 минут
ещё проблема, в том коде, что ты написал, я создал тиексти файл, из которого извлекаются иксы, в нём я написал
0
1
2
3
4
5
6
7
и создал файл, в котрый надо выводить файны, а программа вместо того что-бы вывести 7 иксов и игриков, выводит
x = 0 y = 1
x = 1 y = 4
x = 2 y = 4
x = 3 y = 3.125
Yandex
Объявления
07.03.2010, 21:20     Лагранж
Ответ Создать тему
Опции темы

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