Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
1

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

15.02.2013, 21:34. Показов 756. Ответов 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

Ну вот примерно так
как задать данную формулу?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2013, 21:34
Ответы с готовыми решениями:

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

Как записать данную формулу
Как записать данную формулу? i * (корень степени j (из e в степени i/j) Внизу страницы есть...

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

Записать данную формулу синтаксисом C++
подскажите пожалуйста, как правильно данную формулу записать в с++?

3
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
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 при остальных выходят минусовые значения левые большие
1
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
17.02.2013, 16:32  [ТС] 3
а можно как-то зделать что бы выводило просто формулу с роскрытыми скобками?
ну там (x^3+ax^2+bx^1)/c
где a,b,c числа, ну просто роскрытие скобок каждой отдельной части и вывод данной формулы?
необезательно код писать я так думаю что смогу и сам справится, просто толкнуть в нужную сторону
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
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];
        }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2013, 07:30

Записать данную формулу синтаксисом C++
подскажите пожалуйста, как правильно данную формулу записать в с++?

Записать данную формулу синтаксисом C++
подскажите пожалуйста, как правильно данную формулу(фото прикреплено) записать в с++? формула

Ребят, объясните математически данную формулу
На сколько мне известно это формула суммы, почитав разное, так и не понял до конца как это работает...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru