Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритмы символьной алгебры (математики) для многочленов и функций / 6 сообщений из 6, страница 1 из 1
14.11.2009, 02:22:26
    #36310356
файндер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритмы символьной алгебры (математики) для многочленов и функций
Здравствуйте.

Мне нужно решить в Delphi такую задачу:
есть символьное представление функций f1 и f2 (к примеру x^2+7*cos(y-2) и sin(cos(x)^8+y)+x^2).
Возможны операции - + * / ^ чисел, переменных и некоторого числа функций.

Мне нужно написать процедуры, которые бы могли суммировать и умножать f1 и f2, но с упрощением.

Помогите хорошим советом, алгоритмом, книгой, буду очень признателен.

Заранее спасибо!
...
Рейтинг: 0 / 0
15.11.2009, 01:35:33
    #36311032
zloy den
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритмы символьной алгебры (математики) для многочленов и функций
файндерЗдравствуйте.

Мне нужно решить в Delphi такую задачу:
есть символьное представление функций f1 и f2 (к примеру x^2+7*cos(y-2) и sin(cos(x)^8+y)+x^2).
Возможны операции - + * / ^ чисел, переменных и некоторого числа функций.

Мне нужно написать процедуры, которые бы могли суммировать и умножать f1 и f2, но с упрощением.

Помогите хорошим советом, алгоритмом, книгой, буду очень признателен.

Заранее спасибо!

sicp. Есть русский вариант в интернете. Правда там на scheme, но попробовать адаптировать думаю. реалистично
...
Рейтинг: 0 / 0
15.11.2009, 01:43:04
    #36311034
zloy den
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритмы символьной алгебры (математики) для многочленов и функций
А вообще, инфиксная запись довольно противна в реализации. Префиксная попроще будет и возможно стоит начать с нее. На той же scheme заданные выражения будут выглядеть примерно так(префиксная запись):

(+ (^ x 2) (* 7 (cos (- y 2)))) и
(sin (+ (^ (cos x) 8) (^ x 2))
...
Рейтинг: 0 / 0
15.11.2009, 02:21:06
    #36311053
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритмы символьной алгебры (математики) для многочленов и функций
zloy denА вообще, инфиксная запись довольно противна в реализации. Префиксная попроще будет и возможно стоит начать с нее. На той же scheme заданные выражения будут выглядеть примерно так(префиксная запись):

(+ (^ x 2) (* 7 (cos (- y 2)))) и
(sin (+ (^ (cos x) 8) (^ x 2))На самом деле особой разницы нет. Просто разбор выражений будет немного сложнее.
В бытность студентом писал программу, которая по введенной пользователем формуле могла строить график или находить производную. Первым действием было построение дерева формулы, а далее - просто операции с ним.
Здесь надо сделать то же самое - сначала разобрать формулу и построить дерево, а потом уже применять к этому дереву некоторые алгоритмы. Работать со строкой в любом случае будет сложнее.
...
Рейтинг: 0 / 0
15.11.2009, 15:00:49
    #36311284
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритмы символьной алгебры (математики) для многочленов и функций
Да. Для данной задачки нужен парсер мат. выражений. После парсинга полученное AST или ПОЛИЗ нужно будет упрощать по шаблонам. Вторая часть - (упрощение) будет посложнее и потянет на курсовик или диплом, при хорошей постановке.
...
Рейтинг: 0 / 0
16.11.2009, 10:58:29
    #36311943
zloy den
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритмы символьной алгебры (математики) для многочленов и функций
Яростный МечНа самом деле особой разницы нет. Просто разбор выражений будет немного сложнее.
В бытность студентом писал программу, которая по введенной пользователем формуле могла строить график или находить производную. Первым действием было построение дерева формулы, а далее - просто операции с ним.
Здесь надо сделать то же самое - сначала разобрать формулу и построить дерево, а потом уже применять к этому дереву некоторые алгоритмы. Работать со строкой в любом случае будет сложнее.
Я про это и говорил, что разбор надо будет сделать, а префиксная запись по сути уже готовое дерево, т.е. можно сосредоточиться на самом сокращении без парсинга.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритмы символьной алгебры (математики) для многочленов и функций / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]