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

Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.92
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 13:56     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #1
Здравствуйте! Помогите с заданием: Функция y=f(x) задана таблицей. Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение этой функции в заданной точке x.

Сам код:
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
#include <iostream>
#include "stdafx.h"
 
using namespace std;
 
 void main()
{
 
float x[7] = {1,1.02,1.05,1.08,1.16,1.19,1.2};
float y[7] = {0,0.019,0.049,0.086,0.122,0.157,0.182}; 
int i,j;
int n=8;
float f1,f2,L;
float X=1.137;
 
for (i=0;i<n;i++)
{
    f1=1;
    f2=1;
    L=0;
        for(j=0;j<n;j++)
            if(i!=j)
            {
                f1*=X-x[j];
                f2*=x[i]-x[j];
            }
            
L+=y[i]*f1/f2;
cout<<L<<endl;
return L;
}
 
 }
Но он у меня выдает ошибку, все перепробовал, ничего не выходит. Помогите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 13:56     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции
Посмотрите здесь:

C++ Вычислить приближенное значение функции
C++ Интерполяционный полином Лагранжа
Для функции вычислить ее приближенное значение с точностью ε=10^-3 в точке х=1,5 C++
C++ Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля
Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:06     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #2
у вас массивы размером 7 а цикл по 8 идет, и функция main возвращает void а вы пытаетесь L вернуть
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 14:21  [ТС]     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #3
Чуть-чуть подправил код, но слегка не тот результат, что ожидается. Мне нужно, чтобы выходило одно значение, как правильно запрограммировать переменную n, чтобы первое значение было не 0?
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
 int main()
{
 
float x[] = {1,1.02,1.05,1.08,1.16,1.19,1.2};
float y[] = {0,0.019,0.049,0.086,0.122,0.157,0.182}; 
int i,j;
int n=1;
float f1,f2,L;
 
float X=1.137;
 
for (i=0;i<n+1;i++)
{
        f1=1;
        f2=1;
        L=0;
        for(j=0;j<n+1;j++)
            if(i!=j)
            {
                f1*=X-x[j];
                f2*=x[i]-x[j];
            }
            
L+=y[i]*f1/f2;
cout<<L<<endl;
 
}
return L;
 }
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:24     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #4
а дайте ссылку на формулы, а то я не сталкивался с этим, может в мат части ошибка , а не в програмировании
и если вы хотите видеть 1 результат а не несколько штук то перенесите вывод L перед строкой возврата
C++
1
2
cout<<L<<endl;
return L;
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 14:30  [ТС]     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #5
Формула с методички
Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:39     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #6
чот немного я не понял с p(x) , ну да ладно, про вывод я вам написал, проверьте, то ли получается?
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 14:42  [ТС]     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #7
Теперь она вообще перестала, что-то выводить =)
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:46     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #8
у меня выводит 0.068
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
 void main()
{
 
    float x[7] = {1,1.02,1.05,1.08,1.16,1.19,1.2};
    float y[7] = {0,0.019,0.049,0.086,0.122,0.157,0.182};
    int i,j;
    int n=7;
    float f1,f2,L;
    float X=1.137;
 
    for (i=0;i<n;i++)
    {
        f1=1;
        f2=1;
        L=0;
            for(j=0;j<n;j++)
                if(i!=j)
                {
                    f1*=X-x[j];
                    f2*=x[i]-x[j];
                }
 
    L+=y[i]*f1/f2;
 
    }
    cout<<L<<endl;
    system("pause");
}
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 14:53  [ТС]     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #9
Так ведь значение (X=1,137) по идее будет 8 в массиве, или я ошибаюсь?
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:57     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #10
ошибаешься, с чего бы это ему быть в массиве, тем более 8 если ты явно память выделил под 7
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 15:02  [ТС]     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #11
Огромное спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2012, 17:54     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции
Еще ссылки по теме:

Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля / C++ для начинающих C++
C++ Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля
C++ Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля

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

Или воспользуйтесь поиском по форуму:
zaNudda
Сообщений: n/a
10.10.2012, 17:54     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции #12
А нафига внутри цикла L обнулять?
Yandex
Объявления
10.10.2012, 17:54     Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции
Ответ Создать тему
Опции темы

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