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

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

Войти
Регистрация
Восстановить пароль
 
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 324
Завершенные тесты: 1
#1

как задать данную формулу? - C++

15.02.2013, 21:34. Просмотров 507. Ответов 3
Метки нет (Все метки)

как задать в С++ форумулу "EП((x-xj)/(xi-xj))*f(xi)"
Е - ето как бы сума, а П - произведения
У от i=0 до n
П от i не равно j, j=0
к примеру
x|-1|2|3|5
y|-2|0|1|-1
то должно получится (((x-x1)*(x-x2)*(x-x3))/((x0-x1)*(x0-x2)*(x0-x3)))*f(x0(тоесть y0))+(((x-x0)*(x-x2)*(x-x3))/((x1-x0)*(x1-x2)*(x1-x3)))*f(x1(тоесть y1))+....и тд можно как-то вывести даную функцию? ну там с помощю математической библиотеки или если создавать с помощю цыклов с условием, если задано i,j

Ну вот примерно так
как задать данную формулу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 21:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как задать данную формулу? (C++):

Как записать данную формулу? - C++
как записать формулу на с++ {a}^{2}+{b}^{3}+{c}^{4}

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

Задать формулу рекурсивно - C++
Вот формула T = min {T + (f*1 +f*2+...+f*(q-k))} f - это одномерный массив размера от 0 до N p - изменяется от 0 до M q - от...

Рекурсия - задать формулу рекурсивно - C++
Задать эту функцию рекурсией a - некоторый массив с числами. Этой функцией я считаю сумму подпоследовательности. Так она работает - а по...

Как скомпилировать данную программу? - C++
есть программа не знаю как компилировать #include<iostream> using namespace std; int mai() { count<<"the first programm "; ...

Как написать данную программу на c++? - C++
Сколько не пытался, ничего не выходит.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
16.02.2013, 14:07 #2
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
double vp(int j,double *x,double x1,int n){
    double proizved=1;
    for(int i=0;i<n;i++)
        if(i!=j)
            proizved*=(x1-x[i]);
    return proizved;
}
double np(int j,double *x,int n){
    double proizved=1;
    for(int i=0;i<n;i++)
        if(i!=j)
            proizved*=(x[j]-x[i]);
    return proizved;
}
void main(){
    int n;
    double *x,x1,*Fx,sum=0;
    cout<<"Введите кол-во значений х: ";
    cin>>n;
    x=new double[n];
    Fx=new double[n];
    for(int i=0;i<n;i++){
        cout<<"\nВведите x["<<i<<"]: ";
        cin>>x[i];
        cout<<"\nВведите F(x["<<i<<"]): ";
        cin>>Fx[i];
    }
    cout<<"\nВведите х: ";
    cin>>x1;
    for(int i=0;i<n;i++)
        sum+=vp(i,x,x1,n)/np(i,x,n)*Fx[i];
    cout<<"Сумма ряда равна: "<<sum<<endl;
    delete[] x;
    delete[] Fx;
}
задаёте сначала вашу таблицу, причем можно и больше или меньше элементов
потом задаете х с котором нужно посчитать сумму и прога выведет суммупроизведений

при х = 3 сумма равна 1 при остальных выходят минусовые значения левые большие
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 324
Завершенные тесты: 1
17.02.2013, 16:32  [ТС] #3
а можно как-то зделать что бы выводило просто формулу с роскрытыми скобками?
ну там (x^3+ax^2+bx^1)/c
где a,b,c числа, ну просто роскрытие скобок каждой отдельной части и вывод данной формулы?
необезательно код писать я так думаю что смогу и сам справится, просто толкнуть в нужную сторону
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
18.02.2013, 07:30 #4
если в таком виде нужно, то желательно ограничиться 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
double vp(int j,double *x,double x1,int n){
    double proizved=1;
    double buf[3],buf1;
    int b=0;
    for(int i=0;i<n;i++)
        if(i!=j){
            proizved*=(x1-x[i]);
            buf[b++]=x[i];
        }
    cout<<"(x^3";
    buf1=buf[0]+buf[1];
    if(abs(buf1)==1){
        if(buf1<0)
            cout<<"+";
        else
            cout<<"-";
        cout<<"x^2";
    }
    else{
        if(buf1<0)
            cout<<"+"<<abs(buf1)<<"x^2";
        else
            cout<<"-"<<buf1<<"x^2";
    }
    buf1=buf[0]*buf[1]+buf[0]*buf[2]+buf[1]*buf[2];
    if(abs(buf1)==1){
        if(buf1<0)
            cout<<"-";
        else
            cout<<"-";
        cout<<"x";
    }
    else{
        if(buf1<0)
            cout<<buf1<<"x";
        else
            cout<<"+"<<buf1<<"x";
    }
    buf1=buf[0]*buf[1]*buf[2];
    if(buf1<0)
        cout<<"+"<<abs(buf1);
    else
        cout<<"-"<<buf1;
    cout<<")";
    return proizved;
}
Если же количество произведений будет равно n, то там уже нужно отделюную функцию создавать, в которую передавать количество переменных, причем в порядке a b c d .. и тд. чтобы функция могла спокойно подставлять значения в формулу. для этого выделяем изначально память массиву n-1, и вот здеся добавляем в него значения
C++
1
2
3
4
5
for(int i=0;i<n;i++)
        if(i!=j){
            proizved*=(x1-x[i]);
            buf[b++]=x[i];
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 07:30
Привет! Вот еще темы с ответами:

Как выполнить данную задачу на с++ ? - C++
Вычислить координаты точек пересечения кривых, заданных уравнениями y=(x+c) и ((pow((x/2),2))+(pow(y,2)))=1. Проверить результаты...

Как ускорить данную программу - C++
И опять магические квадраты...Пытаюсь вычислить все магические квадраты 4-ого порядка, но программа работает слишком медленно...Странно, но...

Как записать данную функцию в С++ - C++
Здравствуйте ребят, как написать эту функцию в c++?

Как правильно подключить данную библиотеку ? - C++
Доброго времени суток подскажите пожалуйста как правильно подключить данную библиотеку в C++Builder 10.1 Berlin скачка библиотеки...


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

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

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