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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.92
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
#1

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

09.10.2012, 13:56. Просмотров 4946. Ответов 11
Метки нет (Все метки)

Здравствуйте! Помогите с заданием: Функция 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;
}
 
 }
Но он у меня выдает ошибку, все перепробовал, ничего не выходит. Помогите.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 13:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции (C++):

Интерполяционный полином Лагранжа - C++
Помогите пожалуйста есть программа когда нужно по заданному х=4 найти у Теперь мне нужно сделать наоборот есть у=0.5 найти все значения х...

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

Вычислить приближенное значение функции - C++
Здравствуйте! Я первый раз на подобном сайте, я прошу - помогите пожалуйста. Описать функцию Power4(x,a,ξ) вещественного типа...

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

Для функции вычислить ее приближенное значение с точностью ε=10^-3 в точке х=1,5 - C++
Для функции вычислить ее приближенное значение с точностью ε=10^-3 в точке х=1,5. Погрешность ε вычислять с помощью следующего соотношения:...

Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора - C++
!!!Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора. Вычисления заканчивать когда очередное...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:06 #2
у вас массивы размером 7 а цикл по 8 идет, и функция main возвращает void а вы пытаетесь L вернуть
0
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;
 }
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:24 #4
а дайте ссылку на формулы, а то я не сталкивался с этим, может в мат части ошибка , а не в програмировании
и если вы хотите видеть 1 результат а не несколько штук то перенесите вывод L перед строкой возврата
C++
1
2
cout<<L<<endl;
return L;
0
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 14:30  [ТС] #5
Формула с методички
Пользуясь интерполяционный полином Лагранжа, вычислить приближенное значение функции
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:39 #6
чот немного я не понял с p(x) , ну да ладно, про вывод я вам написал, проверьте, то ли получается?
0
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 14:42  [ТС] #7
Теперь она вообще перестала, что-то выводить =)
0
Nixy
ComfyMobile
400 / 281 / 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");
}
0
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 14:53  [ТС] #9
Так ведь значение (X=1,137) по идее будет 8 в массиве, или я ошибаюсь?
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.10.2012, 14:57 #10
ошибаешься, с чего бы это ему быть в массиве, тем более 8 если ты явно память выделил под 7
1
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
09.10.2012, 15:02  [ТС] #11
Огромное спасибо!
0
zaNudda
Сообщений: n/a
10.10.2012, 17:54 #12
А нафига внутри цикла L обнулять?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2012, 17:54
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.10.2012, 17:54
Ответ Создать тему
Опции темы

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