Статус: Advanced Member Группы: Registered
Зарегистрирован: 02.06.2009(UTC) Сообщений: 346 Сказал «Спасибо»: 50 раз Поблагодарили: 156 раз в 105 постах
|
Вы как любитель Mathcad'а должны были понять разницу между Mathcad'ом и SMath Studio. В Mathcad все вычисления изначально численные, поэтому такой пример в нём не заработает и возникнет ошибка вычислений. В SMath Studio это работает, можно вычитать строки, хотя в этом и мало смысла. Это говорит о том, что Mathcad ограничен изначально, он понимает только числа и только операции с числами, матрицами из чисел. Это числодробилка по типу Matlab'а. Если понадобится кроме численного вычисления вывести формулу в пакете, то тут Mathcad вскидывает лапки кверху. Кроме того, Mathcad не имеет своего символьного движка. Раньше это был встроенный и кастрированный Maple, сейчас - встроенный и кастрированный опять же MuPad. Почему это плюс. Можно доопределить функцию random(), чтобы она работала, к примеру, с такими аргументами: random( "a".."z" ) или random( [sin(x), cos(x), tg(x)] ). При этом функция может выдавать либо произвольную букву, либо произвольно функцию из набора. Представить такое в Mathcad достаточно трудно. Есть ещё причины, почему такой подход гораздо правильнее - это пользовательские дополнения. Если нужно написать что-то своё для SMath Studio, то возможности ограничены лишь воображением и знанием математики, т.к. вы можете работать с символьным представлением выражений. Ещё раз повторю отличие от Mathcad'а. В Mathcad все вычисления изначально численные, а символьные можно делать специально по запросу и специальному синтаксису. В SMath Studio вычисления изначально символьные, а численный результат можно получить по запросу или выбрав метод оптимизации выражения. Функции по типу random() в классическом их представлении не имеют особого смысла для символьных вычислений, поэтому эта функция не была определена для символьных расчётов. Подразумевается, что вы будете использовать её только в численном окружении, т.е. с использованием eval(). Но, повторяюсь, можно доопределить её так, что при символьных вычислениях она бы работала также как и при численных, т.е. изменив её природу на генератор символов в виде числа. Цитата:здесь же всякое определение получаеться функцией по умолчанию без параметров Это не так. Всякое определение в SMath Studio - это набор символов в специальном формате и не более того. Снижение скорости расчётов - это неизбежная плата за посимвольную обработку. Что уж тут поделать, автором была выбрана такая идеология. Я думаю, что в расчёте на то, что со временем мощь компов будет такой, что это не будет большой проблемой. Если код был написан по-старинке в неуправляемом пространстве (т.е. компилировался бы в машинные коды реального процессора), то уже сейчас скорость была бы на порядок выше, но .Net съедает часть ресурсов, поэтому на сегодняшний день нельзя похвастать быстрыми расчётами. Их можно выполнить в дополнении, если уж так нужно, а SMath Studio использовать как удобный интерфейс. П.С. По умолчанию - я имел в виду, что вообще без оптимизации подразумевается символьная обработка, т.е. изначально все вычисления символьные. Отредактировано пользователем 7 июня 2013 г. 12:41:47(UTC)
| Причина: Не указана Пользователь уни прикрепил следующие файлы: |
Россия навсегда! Вячеслав Мезенцев |
1 пользователь поблагодарил уни за этот пост.
|
genf оставлено 07.06.2013(UTC)
|