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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
30.03.2011, 19:25     Производная скобочек #1
Допустим есть у нас "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++
C++ Производная функции
C++ Интерполяция и вторая производная
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
30.03.2011, 22:21  [ТС]     Производная скобочек #2
UPD: фактически в знаменателе перестановки чисел (без повторов)

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

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

Добавлено через 4 минуты
и к тому же, если x!=0, то и в ноль ничего не обратится.
Yandex
Объявления
30.03.2011, 23:47     Производная скобочек
Ответ Создать тему

Метки
дифференцирование, производная скобки, численные методы
Опции темы

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