|
Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения |
20.10.2011, 01:59
|
#1
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Символьное интегрирование
В общем, имеется некоторая функция f(x), заданная строкой.
Что-то типа "2*x+sin(e^(cos(x*x)))"
Необходимо найти первообразную этой функции.
Я думаю, что сначала нужно разбить исходную функцию на дерево операций ( алгоритм), после чего каким-то алгоритмом интегрировать эту дурь.
В общем, на выходе должно получиться дерево операций, но уже первообразной для данной функции.
Кто-нибудь знает??
|
(Offline)
|
|
20.10.2011, 02:26
|
#2
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Символьное интегрирование
Тююю - а я думал (прочитав заголовок): что-то интересное будет.
Кто-то знает. Собственно, последовательность действий расписана верно. Что конкретно тебя смущает?
Вообще, задача (особенно, как мне видется, в плане символьного нахождения первообразной) нетривиальна. Ты уверен, что тебе надо именно это? Численное интегрирование не подойдёт?
апд: готовые либы/модули опять же
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.10.2011, 02:54
|
#3
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Символьное интегрирование
тебе нужен свой алгоритм или программа что бы это делала ?? Если второе то гугл же !!
|
(Offline)
|
|
20.10.2011, 11:23
|
#4
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Символьное интегрирование
надо именно свой алгоритм. Численное интегрирование проще, не спорю...даже легко реализуемо, но хотелось бы именно символьное. в гугле ничего толкового не нашел.
Что конкретно тебя смущает?
|
Последующие операции с древом. ХЗ как его интегрировать.
|
(Offline)
|
|
20.10.2011, 13:03
|
#5
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Символьное интегрирование
Сообщение от Павел
ХЗ как его интегрировать.
|
.....
Сообщение от impersonalis
Вообще, задача (особенно, как мне видется, в плане символьного нахождения первообразной) нетривиальна. Ты уверен, что тебе надо именно это?
|
|
(Offline)
|
|
20.10.2011, 14:58
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Символьное интегрирование
Первое что в голову приходит, так это задача разбить строку на блоки, исходя из приоритетов по вычислениям.
Если начать с начала "2*x+sin(e^(cos(x*x)))", то будет:
[1] = 2*x
[2] = [1] + [3]
[3] = sin([4])
[4] = e ^ [5]
[5] = cos([6])
[6] = x * x
Исходя из скобок и т.п., можно вычислить приоритеты. Если по пути выражения бало найдено выражение со скобками, то нужно повысить приоритет относительно контейнера выражений в котором он находится. Каждое выражение может быть контейнером других, и приоритеты локальны (в скобках и т.п.).
Разбив так вот, можно уже интерпретировать в мат функции, т.к. компоненты намного проще.
Далее уже двигаться далее, тут уже математика, я хз в этом..
Кто-то у нас на форуме делал подобное..
|
(Offline)
|
|
20.10.2011, 22:05
|
#7
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Символьное интегрирование
Сообщение от MoKa
Первое что в голову приходит, так это задача разбить строку на блоки, исходя из приоритетов по вычислениям.
Если начать с начала "2*x+sin(e^(cos(x*x)))", то будет:
[1] = 2*x
[2] = [1] + [3]
[3] = sin([4])
[4] = e ^ [5]
[5] = cos([6])
[6] = x * x
Исходя из скобок и т.п., можно вычислить приоритеты. Если по пути выражения бало найдено выражение со скобками, то нужно повысить приоритет относительно контейнера выражений в котором он находится. Каждое выражение может быть контейнером других, и приоритеты локальны (в скобках и т.п.).
Разбив так вот, можно уже интерпретировать в мат функции, т.к. компоненты намного проще.
Далее уже двигаться далее, тут уже математика, я хз в этом..
Кто-то у нас на форуме делал подобное..
|
Если интегрировать с низших ветвей вверх, может получиться что-нито, возможно...
|
(Offline)
|
|
24.10.2011, 23:03
|
#8
|
Нуждающийся
Регистрация: 08.05.2008
Сообщений: 87
Написано 9 полезных сообщений (для 15 пользователей)
|
Ответ: Символьное интегрирование
Что-нито может получиться только в частных случаях
обычная суперпозиция функций очень не обычно интегрируется, а при разных функциях вообще разные методы
и еще, бывают интегралы не берущиеся, которые выражаются через известные дельта, гамма функции и т.д. и мне интересно как ты их будешь определять
и мне кажется что тут обычно делают разбор по частным случаям и методам, и чем больше вариантов ты сделаешь, тем больше функций у тебя программа сможет проинтегрировать
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:46.
|