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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
#1

Производная скобочек - C++

30.03.2011, 19:25. Просмотров 1047. Ответов 5

Допустим есть у нас "x(x+1)(x+2)...(x+last-1)" - такая скобочка (где last - понятное дело, число уже не входящее в произведение). Производная такой скобочки равна:
(x+1)(x+2)...(x+last-1)+x(x+2)...(x+last-1)+x(x+1)...(x+last-1)
(Соль состоит просто в исключение одной скобочки из произведения)
или же
Название: 2011-03-30_180325.png
Просмотров: 206

Размер: 2.5 Кб
Соответственно для первой производной всё просто.
Пусть номер производной - det, т.е. данный случай для det=1
пример для det=1 под катом
тут просто сравнить i==j
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private double quef1(double q, int last, int root = 1)
            {
                double rez = 0;
                for (int i = 0; i < last ; i++)
                {
                    double temp = 1;
                    for (int j = 0; j < C(last, 1); j++)
                    {
                        if (i ==  j ) continue;
                        temp *= (q + j * root);
                    }
                    rez += temp;
                }
                return rez;
            }

А вот как сделать для более высоких производных? В более высоких будут пропускаться не одна скобка, а количество в соответствие с det
Примеры
Производная скобочек

Никак не могу найти закономерность, какие исключать из произведения.
Попробовал сделать для производной бОльших степеней. Вот код, но пока без этого сравнения он ничего не стоит:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private double quef(double q, int last, int det, int root = 1)
            {
                if (last < det) return 0;
                if (last == det) return 1;
                double rez = 0;
                for (int i = 0; i < last; i++)
                {
                    double temp = 1;
                    for (int j = 0; j < last; j++)
                    {
                        //for (int k = 0; k < det; k++)
                        //{
                        //    if (j == k+j) j++;
                        //}  Вот тут нужно нормальное сравнение
                        if (j >= last) break;
                        temp *= (q + j * root);
                    }
                    rez += temp;
                }
                return rez;
            }
Необходимо исключать det скобочек, а не одну - вроде с комбинаторикой связано

P.S. в общем нужна такая формула как на рисунке 1, но только знаменатель считать по другому
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2011, 19:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Производная скобочек (C++):

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

Производная - C++
Добрый день. Как можно вычислить производную полинома, если он представлен в виде а+а2+а3+а4+...аn...ну в степенях соответствующих...

Производная частного - C++
Добрый день! Подскажите пожалуйста есть ли в с/с++ функция которая считает производные частного?

Производная функции - C++
Задание: вывести на экран таблицу значений функции y=x*2e^x и ее первой производной в диапазоне от -5 до 5.Для вычисления значений f(x) и...

вторая производная в С - C++
у меня определенная функцияю y=(cos(x)+6)/sinx мне нужно найти вторую производнуюб не пойму как мне это реализовать в С?

строки и производная - C++
Кому не сложно, помогите, пожалуйста с задачей. Многочлен a0x^n+a1x^(n-1)+…+a(n-1)x+an задан действительными коэффициентами a0,...,an....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
30.03.2011, 22:21  [ТС] #2
UPD: фактически в знаменателе перестановки чисел (без повторов)

Добавлено через 1 час 35 минут
UPD2: под катом немного перепутал: внешний цикл (по i) должен быть до C(last, 1), а внутренний(по j) до last
easybudda
Модератор
Эксперт CЭксперт С++
9531 / 5524 / 932
Регистрация: 25.07.2009
Сообщений: 10,609
30.03.2011, 23:13 #3
могу ошибаться, но по-моему в числителе ноль получится...
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
30.03.2011, 23:20  [ТС] #4
easybudda, если для det=1, то ошибаетесь - в формуле может и получиться, но программно - нет.
easybudda
Модератор
Эксперт CЭксперт С++
9531 / 5524 / 932
Регистрация: 25.07.2009
Сообщений: 10,609
30.03.2011, 23:26 #5
Цитата Сообщение от Iworb Посмотреть сообщение
если для det=1
если что = 1?
Я про
http://www.cyberforum.ru/cgi-bin/latex.cgi?\prod_{j=0}^{last-1}

как бы ноль сколько раз и на что ни умножай - всё равно ноль получится...
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
30.03.2011, 23:47  [ТС] #6
если расписать этот оператор как произведение скобок, то одна из них прекрасно сократится, т.е. не будет нулем. Посмотрите на второй рисунок - там я пример привел как они раскрываются.

Добавлено через 4 минуты
и к тому же, если x!=0, то и в ноль ничего не обратится.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2011, 23:47
Привет! Вот еще темы с ответами:

вторая производная - C++
Подскажите, плиз, как найти вторую производную функции в точке?

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

Интерполяция и вторая производная - C++
Нужна программа для интерполяции табличных данных и последующего вычисление 2 производной по полученным результатам Данные в архиве

не по теме: производная для решения НУ методом Ньютона - C++
есть функция : double f( double x ){ double fx = sin(pow(x,0.5)) - cos(pow(x,0.5)) + 2 * pow(x,0.5) ; return fx ; } ...


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

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

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