|
|
|
Алгоритмы символьной алгебры (математики) для многочленов и функций
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Мне нужно решить в Delphi такую задачу: есть символьное представление функций f1 и f2 (к примеру x^2+7*cos(y-2) и sin(cos(x)^8+y)+x^2). Возможны операции - + * / ^ чисел, переменных и некоторого числа функций. Мне нужно написать процедуры, которые бы могли суммировать и умножать f1 и f2, но с упрощением. Помогите хорошим советом, алгоритмом, книгой, буду очень признателен. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2009, 02:22:26 |
|
||
|
Алгоритмы символьной алгебры (математики) для многочленов и функций
|
|||
|---|---|---|---|
|
#18+
файндерЗдравствуйте. Мне нужно решить в Delphi такую задачу: есть символьное представление функций f1 и f2 (к примеру x^2+7*cos(y-2) и sin(cos(x)^8+y)+x^2). Возможны операции - + * / ^ чисел, переменных и некоторого числа функций. Мне нужно написать процедуры, которые бы могли суммировать и умножать f1 и f2, но с упрощением. Помогите хорошим советом, алгоритмом, книгой, буду очень признателен. Заранее спасибо! sicp. Есть русский вариант в интернете. Правда там на scheme, но попробовать адаптировать думаю. реалистично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 01:35:33 |
|
||
|
Алгоритмы символьной алгебры (математики) для многочленов и функций
|
|||
|---|---|---|---|
|
#18+
А вообще, инфиксная запись довольно противна в реализации. Префиксная попроще будет и возможно стоит начать с нее. На той же scheme заданные выражения будут выглядеть примерно так(префиксная запись): (+ (^ x 2) (* 7 (cos (- y 2)))) и (sin (+ (^ (cos x) 8) (^ x 2)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 01:43:04 |
|
||
|
Алгоритмы символьной алгебры (математики) для многочленов и функций
|
|||
|---|---|---|---|
|
#18+
zloy denА вообще, инфиксная запись довольно противна в реализации. Префиксная попроще будет и возможно стоит начать с нее. На той же scheme заданные выражения будут выглядеть примерно так(префиксная запись): (+ (^ x 2) (* 7 (cos (- y 2)))) и (sin (+ (^ (cos x) 8) (^ x 2))На самом деле особой разницы нет. Просто разбор выражений будет немного сложнее. В бытность студентом писал программу, которая по введенной пользователем формуле могла строить график или находить производную. Первым действием было построение дерева формулы, а далее - просто операции с ним. Здесь надо сделать то же самое - сначала разобрать формулу и построить дерево, а потом уже применять к этому дереву некоторые алгоритмы. Работать со строкой в любом случае будет сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 02:21:06 |
|
||
|
Алгоритмы символьной алгебры (математики) для многочленов и функций
|
|||
|---|---|---|---|
|
#18+
Да. Для данной задачки нужен парсер мат. выражений. После парсинга полученное AST или ПОЛИЗ нужно будет упрощать по шаблонам. Вторая часть - (упрощение) будет посложнее и потянет на курсовик или диплом, при хорошей постановке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 15:00:49 |
|
||
|
Алгоритмы символьной алгебры (математики) для многочленов и функций
|
|||
|---|---|---|---|
|
#18+
Яростный МечНа самом деле особой разницы нет. Просто разбор выражений будет немного сложнее. В бытность студентом писал программу, которая по введенной пользователем формуле могла строить график или находить производную. Первым действием было построение дерева формулы, а далее - просто операции с ним. Здесь надо сделать то же самое - сначала разобрать формулу и построить дерево, а потом уже применять к этому дереву некоторые алгоритмы. Работать со строкой в любом случае будет сложнее. Я про это и говорил, что разбор надо будет сделать, а префиксная запись по сути уже готовое дерево, т.е. можно сосредоточиться на самом сокращении без парсинга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 10:58:29 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36311284&tid=1344096]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
181ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 453ms |

| 0 / 0 |
