8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104

Нахождение производной

28.11.2013, 21:26. Показов 6532. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: по заданному дереву построить дерево производную.
Не могу придумать алгоритм. Не могли бы вы подсказать?
Например у меня есть формула ((x+x)*2) т.е. дерево
.......*
...../...\
....+....2
.../..\
..х....х
т.е в узлах лежат знаки (его я уже построил), так же помимо этого я могу выполнять арифметические операции с ним(если в нем только цифры), но не могу посчитать производную...

Добавлено через 3 часа 49 минут
Есть варианты ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2013, 21:26
Ответы с готовыми решениями:

Нахождение производной
Здравствуйте, ищу помощи в написании кода для нахождения производной Напишите пожалуйста пример кода для нахождения производной.

Нахождение первой производной
Добрый вечер! У меня возник вопрос, каким методом легче реализовать нахождение первой производной на с++? Пользуясь...

Нахождение производной функции
Народ как найти производные функцый ? В программе

8
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
28.11.2013, 21:40
Производная зависит от типа узла. Берём формулы для листьев дерева, берём формулы для сложения, умножения, вложенных функций и т.д. и применяем. В чём проблемы-то?
0
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
28.11.2013, 21:46  [ТС]
Цитата Сообщение от Nick Alte Посмотреть сообщение
Производная зависит от типа узла. Берём формулы для листьев дерева, берём формулы для сложения, умножения, вложенных функций и т.д. и применяем. В чём проблемы-то?
Ну например с умножением траблы, пусть есть (a+a)' = 0, а когда (a+a)*x = 2a, т.е. case для '+', уже не получаеться ...
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
28.11.2013, 22:14
Предлагаю взять формулы из мат. анализа, а не те странные штуки вроде (a + a)'. Формула для сложения (u(x) + v(x))' = u'(x) + v'(x). Если обе функции - константы, то их производные будут 0, получим 0 + 0.
Получившаяся таким образом производная, конечно, не будет иметь тот вид, к которому мы привыкли. 0 + 0 сам по себе не сократится до 0. Но упрощение формул - отдельная задача, с которой можно (если есть такая необходимость) разбираться уже после того, как будет правильно работающий извлекатор производных.
0
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
28.11.2013, 22:29  [ТС]
Цитата Сообщение от Nick Alte Посмотреть сообщение
Предлагаю взять формулы из мат. анализа, а не те странные штуки вроде (a + a)'. Формула для сложения (u(x) + v(x))' = u'(x) + v'(x).
Вот в этом и задача я не могу написать функцию для правильной оброботки, т.е. как в прошлом примере, если я вызываю функцию для обработки +, то он смотрит констатна это или х, все просто, но эту же функцию я не могу вызвать когда обрабатываю строку (а+а)*х т.к в таком случае он выдаст что это = 0, а это не правильно ...
.......*
...../...\
...+......x
../...\
.0....0
т.к. это константы он сделает так...
......*
..../...\
..0......x
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
28.11.2013, 22:40
Цитата Сообщение от Xsenon_rus Посмотреть сообщение
Есть варианты ?
конечно есть, написать программу на прологе и потом из неё фетчить результаты в программу на с++. кесареву кесарево.
0
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
28.11.2013, 23:00  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
конечно есть, написать программу на прологе и потом из неё фетчить результаты в программу на с++. кесареву кесарево.
А средствами Си ? =) Так то можно было бы и парсер написать, преворительно обойдя дерево и записав в стринг инфиксную запись, но нет это костыль... Тут что то проще я это чуствую, но не могу подобраться...
0
2619 / 1630 / 266
Регистрация: 19.02.2010
Сообщений: 4,324
29.11.2013, 01:02
Xsenon_rus, дифференцирование сложной функции, развитое до метода обратного распространения ошибки (способ быстрого вычисления градиентов в многослойных нейронных сетях) - может помочь отцу русской демократии
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
29.11.2013, 01:07
1. Определяете множество обрабатываемых выражений. У вас они могут быть трёх типов: переменная, число, результат применения функции.
2. Определяете множество функций. Например, обычные арифметические действия (бинарные), возведение в степень (бинарная), отрицание (унарная), взятие производной (бинарная).
3. Определяете правила преобразований: арифметические действия над числами преобразуются в число-результат; взятие производной преобразует выражение в другое выражение.
4. Определяете правило редукции: например, 1) перебирать все правила редукции, пока что-то не сработает, 2) рекурсивно продолжить с потомками, 3) перебрать правила ещё раз для узлов, у которых изменились потомки или они сами.
5. Так как кванторов у вас нет, то такая цепочка редукций конечна и обходится за один раз.

Реализация очевидна:
1. Базовый класс Expression, от него наследуются Number (значение-число), Variable (имя переменной) и Application (функция Function и аргументы Expression).
2. Базовый класс Function, от него варианты для унарных, бинарных, энарных функций. У них нечто вроде Expression* apply(Expression*, Expression*), которая инкапсулирует вычисления.
3. Определяете пачку унарных Function, которые выражают правила преобразований.
4. Пишете функцию reduce, которая принимает исходное выражение, пачку преобразований, и применяет их соответствующим образом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2013, 01:07
Помогаю со студенческими работами здесь

Нахождение производной (символьное дифференцирование)
Нужно написать программу для нахождения производной с двумя переменными. Например: (2x+1)' = 2; (cosx)' = -sinx; (tgx)' = 1/cos^2x и т....

Нахождение минимального корня 2й производной
Нужно найти минимальный корень 2й производной на отрезке, допустим от -10 до 10. deltaX = 0.0000001. может кто сможет доделать ф-ии )0....

Даны два многочлена n-ой степени, определить значение много члена и его производной, наиб. значение и знач. производной
Здравствуйте ю, уже 2-уж неделю сижу и понять не могу, как это сделать..( Помогите пожалуйста 😊 Даны два многочлена n-ой...

Формула производной
Люди помогите решить задачу на Си, полная запара с этими строками: Многочлен А0Х^n+A1X^n-1+...+An-1X+An задан действительными...

Подсчет производной
Ребят, есть ли у кого нибудь код программы которая считает производную? Или объясните как сделать, пожалуйста


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

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

Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru