Использование команд преобразования выражений Maple для математических вычислений (стр. 1 из 4)
· уметь применять указанные команды для решения математических задач.
1. Команды преобразования выражений
Процесс работы в Maple состоит в том, что пользователь создает переменные, присваивает им символьные выражения и производит над ними некоторые действия в соответствии с алгоритмом решения поставленной задачи, использую стандартные функции или написанные собственные процедуры.
Синтаксис вызова стандартной команды следующий:
команда (пар_1, пар_2,…, пар_n);
Здесь команда – это имя вызываемой функции, а пар_1, пар_2,… означают необходимые для выполнения команды параметры, которые могут быть переменными или даже выражениями, причем их тип должен соответствовать типу параметров используемой функции. Отметим, если команда завершается точкой с запятой, то результаты ее выполнения отображаются в области вывода, если команда завершается двоеточием, то она выполняется, но никакого вывода результатов не происходит.
Система обозначений функций в Maple интуитивно проста. Обычно имя функции соответствует действию, которое она выполняет (следует учесть, что все имена заданы на английском языке). Например, ясно, что функция с именем simplify () осуществляет некоторые упрощения над выражением, заданным в качестве ее параметра.
Для некоторых команд существуют активная и пассивная формы. Активная форма команды (в случае ее вызова) немедленно выполняется, а ее имя начинается со строчной буквы. Пассивная форма команды не выполняется немедленно, а просто в области вывода отображается математическая запись того, что она может сделать. Ее имя начинается с прописной буквы. В дальнейшем, если в операторе присваивания для некоторой переменной в правой части задана пассивная форма команды, то командой value () ее можно вычислить. Основное предназначение пассивных форм команд – это использование их как средства документирования производимых действий в обычной математической нотации. Примерами команд с двумя формами являются команда дифференцирования (diff и Diff), интегрирования (int и Int) и др.
Пример 1. Пассивная и активная формы команд.
Если команды и функции являются частью ядра системы Maple, то они всегда доступны пользователю. А для вызова других команд и функций необходимо подключить библиотеку или пакет, в которых они расположены. Для этого служат команды readlib () и with (). Первая подключает библиотеку, вторая – пакет. Параметром этих команд является имя библиотеки или пакета, функции которых пользователь желает использовать.
Команды и функции Maple, наиболее часто используемые при аналитических преобразованиях, располагаются в его системном ядре – части программного обеспечения системы аналитических вычислений, постоянно находящейся в памяти компьютера. К ним относятся команды, выполняющие разнообразные преобразования выражений, получающие решение уравнений и систем уравнений, дифференцирующие функции и т.д. В данной работе вводятся команды, наиболее часто используемые при выполнении аналитических вычислений.
2. Упрощение выражения: simplify()
Команда simplify () предназначена для упрощения разнообразных выражений, составленных из чисел, переменных и элементарных функций. Заметим, что Maple может его упростить, а может и не упростить, так как он использует свои внутренние алгоритмы упрощения, результат выполнения которых может не совсем соответствовать взглядам пользователя на то, как он хотел бы упростить выражение и в каком виде его получить.
Эта команда имеет несколько форм вызова. Ее самый простой синтаксис имеет следующий вид: simplify (выражение).
В скобках указывается выражение, подлежащее упрощению. Команда simplify () ищет в выражении вызовы функций, квадратные корни, радикалы и степени и инициализирует подходящие процедуры упрощения. Реально команда simplify () реализована в виде набора процедур упрощения, хранящихся в основной библиотеке Maple. Перечислим некоторые из них, остальные можно найти в справке по этой команде (например, установив курсор в рабочем листе на ее имя и нажав клавишу ): `simplify/exp` – для упрощения выражений с экспоненциальными функциями, `simрlifу/ln` – для упрощения выражений с логарифмами, `simplifу/sqrt` – для упрощения выражений, содержащих квадратные корни, `simplifу/trig` – для упрощения выражении с тригонометрическими функциями, `simplifу/radical` – для упрощения выражений с радикалами (дробные степени), `simplifу/power` – для упрощения выражений со степенями, экспонентами и логарифмами и т.д. По умолчанию Maple пытается использовать максимальный набор функций упрощения, подходящий к конкретному выражению.
В команде можно задать конкретные процедуры упрощения, и тогда только они будут использоваться для упрощения заданного выражения, а не весь возможный, установленный по умолчанию набор. Это обеспечивается следующим синтаксисом команды: simрlifу (выражение, nl, n2,…);
Здесь nl, n2 и т.д. являются именами процедур упрощения: Ei, GAMМА, RootOf, @, hypergeom, ln, polar, power, radical, sqrt, trig. Полную информацию о формулах упрощения при использовании перечисленных значений параметров можно получить с помощью команды? simplify [имя], где [имя] – одно из значений параметров функции упрощения.
Упрощения выражений можно проводить с различными видами чисел, например, положительными или принадлежащими некоторому отрезку действительных чисел. Это достигается с помощью параметра assume=свойство. Форма вызова команды при этом имеет вид: simplify (выражение, аssumе=свойство); где параметр свойство может принимать одно из следующих значений: complex – комплексная область, real – действительная область, positive – положительные действительные числа, integer – целые числа, RealRange (a, b) – интервал (а, b) действительных чисел.
Примеры использования команды упрощения выражений simplify() представлены ниже:
Пример 2. Упрощение выражений.
> simplify (c, assume=real);
Как посчитать выражение в maple
16.Технологии вычисления алгебраических выражений в Maple
Знаки арифметических операций: + — сложение; – — вычитание; * — умножение; / — деление; ^ — возведение в степень; ! – факториал.Знаки сравнения: , >=,, =.Завершение ввода командной строки символом » : » не выводит результат вычислений на экран, но сохраняет его в памяти. Символ процента (%) служит для вызова предыдущей команды. Нажатие клавиши [ Enter ] при условии, что курсор размещен именно в этой командной строке, приведёт к тому, что вслед за командой в центре экрана появится результат. Решение обыкновенных уравнений Системы уравнений решаются с помощью такой же команды solve( , ), Команда solve применяется также для решения неравенств. Решение неравенства выдается в виде интервала изменения искомой переменной.
Когда программа Maple запускается, она не имеет ни одной команды, полностью загруженной в память. Большая часть команд имеют указатели их нахождения, и при вызове они загружаются автоматически. Определение функции с помощью оператора присваивания (:=)Чтобы получить приближенное значение в виде числа с плавающей запятой, следует использовать команду evalf(expr,t), где expr – выражение, t – точность, выраженная в числах после запятой. Для численного решения уравнений, в тех случаях, когда трансцендентные уравнения не имеют аналитических решений, используется специальная команда fsolve(eq,x), параметры которой такие же, как и команды solve. Для того, чтобы получить все решения, следует предварительноввести дополнительную команду _EnvAllSolutions:=true. Для построения графиков функции f(x) одной переменной (в интервале по оси Ох и в интервале по оси Оу) используется команда plot(f(x), x=a..b, y=c..d, parameters), где parameters – параметры управления изображением.Если их не указывать, то будут использованы установки по умолчанию. Основные параметры команды plot: 1) title=»text», где text-заголовок рисунка (текст можно оставлять без кавычек, если он содержит только латинские буквы без пробелов). 2) coords=polar – установка полярных координат (по умолчанию установлены декартовы). 5) style=LINE(POINT) – вывод линиями (или точками). 7) сolor – установка цвета линии.
Упростить выражение
Упростить выражение
Друзья, помогите упростить выражение мне надо что бы выражение имело вид.
Не получается упростить выражение
задание 5. каким образом упращаются выражения такого типа? обычный semplify в упор тут не подойдёт..
Упростить тригонометрическое выражение
Начинаю изучать Maple и вот не могу понять что я делаю не так, подскажите, кто может=) Упростить.
Упростить выражение (раскрыть скобки)
Как упростить такое выражение средствами maple: a(b+b)+a(b+b)+a(b-b)-a*b-b*a-a(b+b)-a(b+b)

Укажите пожалуйста как упростить выражение
Подскажите пожалуйста как упростить выражение: sqrt(15^(1/log(15))+49^(1/log(7))) Преподаватель к.
Посоветуйте программу, где можно было бы посчитать дроби, упростить выражение
Привет! Может кто-нибудь подскажет программу, вот чтобы можно было бы ввести начальное задание.
Упростить выражение
Подскажите пожалуйста как расписать факториалы в числителе! Буду благодарна) 1/(n+1)!-1/(n+2)!
Руководство по изучению возможностей пакета аналитических вычислений Maple. Последовательное изучение тем и выполнение заданий позволит шаг за шагом освоить основные приемы работы в математической системе
Решение задач в MAPLE. Часть I. Составители : Муляр О.А., Чебочко Н.Г.: Учебно-методическая разработка. – Н.Новгород: Издательство Нижегородского госуниверситета, 2007. – 35 с.
доцент кафедры ЧиФА факультета ВМК,
к.ф.-м.н. Гавриков А.И.,
доцент кафедры ПиУОС Физического факультета,
к.ф.-м.н. Рыжкова А.В.
Данная разработка представляет собой практическое руководство по изучению возможностей пакета аналитических вычислений Maple. Последовательное изучение тем и выполнение заданий позволит шаг за шагом освоить основные приемы работы в математической системе Maple.
Учебно-методическая разработка предназначена для студентов 2 и 3 курсов механико-математического факультета.
ББК 22.11
© Нижегородский государственный
университет им. Н.И. Лобачевского, 2007
Системы компьютерной алгебры – это новые технологии в научных исследованиях и образовании. В последние годы получили широкое распространение такие системы общего назначения, как Maple, Mathematica.
Система Maple включена в интегрированную систему Scientific WorkPlace и применяется во многих ведущих университетах мира как в научных исследованиях, так и в учебном процессе. Ядро Maple входит в другие распространенные пакеты, такие как MathCad, MathLab.
Данная разработка позволит начинающему войти в технологию использования системы Maple, получить первые навыки, после чего он сможет уже самостоятельно разобраться в более тонких вопросах использования Maple. Хотелось бы отметить, что эта разработка ни в коей мере не является описанием системы Maple. Она предназначена в первую очередь для обучения студентов-математиков решению основных математических задач при помощи Maple.
1. НАЧАЛЬНЫЕ СВЕДЕНИЯ. ТИПЫ ДАННЫХ
Диалог с системой протекает в стиле «вопрос-ответ». Команда начинается с символа > и заканчивается либо точкой запятой (;), либо двоеточием (:). Для выполнения команды необходимо нажать клавишу Enter.
Если в конце команды стоит точка с запятой, то на экран будет выведен результат действия команды или сообщение об ошибке. Двоеточие в конце команды означает, что команда будет выполнена, но ее результат на экран не будет выводиться. Символ # используется для ввода текстовых комментариев. Также для ввода текста используется клавиша с символом T на панели инструментов. Для возвращения к вводу команд следует нажать клавишу с символом >. Для вызова результата действия предыдущих команд используются символы %, %% или %%%, соответственно. Команда restart отменяет результат действия всех предыдущих команд.
Переменные в Maple характеризуются именем и типом. Имя переменной в Maple может состоять из букв, цифр и некоторых специальных символов, но обязательно должно начинаться с буквы. Ограничений на длину имени нет. Кроме того, Maple различает строчные и прописные буквы. Для присваивания переменной конкретного значения применяется оператор :=. Переменные могут использоваться в математических выражениях и функциях без предварительного определения.
Рассмотрим особенности записи в Maple данных числового, строкового и множественного типов.
Выражение принадлежит к целому типу (integer), если оно состоит из последовательности цифр, не разделенных никакими знаками. Выражения вида a/b, где a, b – целые числа принадлежат к дробному типу (fraction). К числам с плавающей точкой (float) относятся выражения вида a.b, a. и .b. Также числа типа float можно записать в показательной форме a*10^b. Комплексные числа (complex) в Maple записываются в алгебраической форме: a+I*b, где a, b – вещественные числа.
Строковое выражение типа string — это любая конечная последовательность символов, с обеих сторон заключенная в верхние двойные кавычки. Последовательность символов, взятая в обратные кавычки, считается символом (symbol).
Множество (set) в Maple задается перечислением в фигурных скобках элементов множества. Например,
Пустое множество задается в виде A:=<>. С множествами в Maple можно выполнять теоретико-множественные операции: объединение (union), пересечение (intersect), разность(minus). Мощность множества находится с помощью команды nops(A).
Важным типом данных в пакете Maple являются списки. Задаются они с помощью квадратных скобок. Списки преобразуются и выводятся в том порядке, в котором были заданы.
Для создания массива используется команда array(i1..j1, i2..j2. M) , которая возвращает массив с элементами из списка M .
Обращение к элементам множества, списка, массива происходит с указанием индексов элемента в квадратных скобках.
Массив также можно задать командой вида V:=array(1..2,1..2,1..2,[ ]); , переопределив затем значения V[i,j, ..] с помощью оператора присваивания.
В Maple можно записать буквы греческого алфавита в полиграфическом виде. Для этого в командной строке набирается название греческой буквы.
> beta+Gamma+delta;
- Задайте множество A , состоящее из целых чисел от 3 до 20, и множество B , состоящее из квадратов этих чисел. Найдите объединение, пересечение, разность множеств A и B . Найдите мощности всех полученных множеств.
- Задайте произвольный список и четырехмерный массив.
2. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ, ФУНКЦИИ. ПРЕОБРАЗОВАНИЯ АРИФМЕТИЧЕСКИХ
ВЫРАЖЕНИЙ И РЕШЕНИЕ УРАВНЕНИЙ
2.1. Вычисления в Maple
Для записи математических выражений в Maple используются операторы сложения (+), вычитания (-), умножения (*), деления (/), возведения в степень (^), оператор присваивания (:=). Порядок выполнения математических операций является стандартным.
Основные константы в Maple обозначаются следующим образом: Pi — число π, I — мнимая единица i , exp(1) — основание натуральных логарифмов e , infinity – бесконечность, true — истина, false – ложь. Используются следующие знаки сравнения: , >=, , =.
Система Maple одинаково успешно справляется как с символьными вычислениями, так и с численными. По умолчанию расчеты проводятся символьно.
>1/2+123/100+sqrt(3);
Часть выражения, в которой встречается число, записанное с плавающей запятой (float), будет вычислена приближенно.
Все вычисления по умолчанию проводятся с десятью значащими цифрами. Количество значащих цифр можно изменить, применив команду >Digits: = n.
Для того, чтобы получить значение выражения в численном виде используется функция
evalf( выражение, n), где n – необязательный параметр, количество значащих десятичных знаков.
> evalf(Pi,50);
2.2. Задание функций
В Maple встроено большое количество функций. Перечислим обозначения для основных элементарных функций. Квадратный корень : sqrt(x), модуль x: abs(x), знак x (возвращает 1, -1 или 0): sign(x), тригонометрические функции: sin(x), cos(x), tan(x), cot(x), обратные тригонометрические: arcsin(x), arccos(x), arctan(x), arccot(x), экспонента: exp(x), натуральный, десятичный логарифм и логарифм по данному основанию: ln(x), log10(x), log[a](x).
Корень n-ой степени из x записывается следующим образом: x^(1/n). Результатом команды >x^(1/n); при нечетном n для отрицательного числа x будет комплексное число. Для вычисления вещественных корней нечетной степени n из отрицательных чисел используется команда surd(x,n).
Рассмотрим несколько способов определения новых функций:
1) присваивание переменной некоторого выражения
имя переменной:=выражение;
имя переменной(список параметров):=выражение;
> f(t):=cos(t)^2+1;
>f(0);
При таком способе задания функции для того, чтобы вычислить значение функции в некоторой точке нужно определить с помощью оператора присваивания значения переменных (параметров), либо использовать оператор подстановки subs.
subs(x=a,y=b,…, f) выполняет подстановку x=a,y=b,…, где a, b – некоторые выражения, в выражение f, зависящее от переменных x,y,… .
Команда value(выражение) используется для вычисления значения выражения.
Следует обратить внимание на то, что после присвоения переменной x конкретного значения x:=a, переменная x перестанет быть неопределенной. Вернуть x статус непределенной переменной можно командой >x:=evaln(x); или снять присваивание командой >x:=’x’; либо отменить все присваивания командой restart.
2) Определение функции с помощью функционального оператора
имя функции:=список параметров -> выражение;
Обращение к функции, заданной таким способом, происходит стандартным образом: имя функции(a,b, …), где a,b, … — конкретные значения переменных.
> f1:=(x,y,z) ->x^(y^z);
3) Функцию можно задать с помощью команды
unapply(выражение, параметры), которая преобразовывает выражение в функциональный оператор.
> f2:=unapply(sin(x)^2+2*exp(y^2),x,y);
> f2(Pi/4,1);
4) Для определения функций вида используется команда
> f:=piecewise(x =0, x^4);
> f1:=convert(f,piecewise);
> f2(-1/2); f2(-1);
В данном примере функция f1 – это функция f, записанная в принятых в системе Maple стандартах.
Задание 2.1
1. Вычислите точное и приближенное значения выражений , .
2. Найдите модуль, аргумент, тригонометрическую форму (команды abs, argument, polar) комплексного числа . Упростите полученные выражения.
3. Найдите значение выражения . Для выполнения преобразований комплексного числа применяется функция evalc.
4. Запишите функцию без знака модуля.
5. Задайте и найдите f(-10)+3f(-1)+f(3).
6. Задайте функцию в виде функционального оператора и найдите ее значение при x=-1, y=.
2.3. Преобразование математических выражений
Maple обладает широкими возможностями для аналитических преобразований математических формул. К ним относятся такие операции, как приведение подобных, разложение на множители, раскрытие скобок, приведение рациональной дроби к нормальному виду и многие другие.
В Maple можно преобразовывать как все выражение в целом, так и отдельные его части.
Для выделения левой (правой) части в математическом выражении вида A=B используются команды
Использование команд преобразования выражений Maple для математических вычислений (стр. 1 из 4)
· уметь применять указанные команды для решения математических задач.
1. Команды преобразования выражений
Процесс работы в Maple состоит в том, что пользователь создает переменные, присваивает им символьные выражения и производит над ними некоторые действия в соответствии с алгоритмом решения поставленной задачи, использую стандартные функции или написанные собственные процедуры.
Синтаксис вызова стандартной команды следующий:
команда (пар_1, пар_2,…, пар_n);
Здесь команда – это имя вызываемой функции, а пар_1, пар_2,… означают необходимые для выполнения команды параметры, которые могут быть переменными или даже выражениями, причем их тип должен соответствовать типу параметров используемой функции. Отметим, если команда завершается точкой с запятой, то результаты ее выполнения отображаются в области вывода, если команда завершается двоеточием, то она выполняется, но никакого вывода результатов не происходит.
Система обозначений функций в Maple интуитивно проста. Обычно имя функции соответствует действию, которое она выполняет (следует учесть, что все имена заданы на английском языке). Например, ясно, что функция с именем simplify () осуществляет некоторые упрощения над выражением, заданным в качестве ее параметра.
Для некоторых команд существуют активная и пассивная формы. Активная форма команды (в случае ее вызова) немедленно выполняется, а ее имя начинается со строчной буквы. Пассивная форма команды не выполняется немедленно, а просто в области вывода отображается математическая запись того, что она может сделать. Ее имя начинается с прописной буквы. В дальнейшем, если в операторе присваивания для некоторой переменной в правой части задана пассивная форма команды, то командой value () ее можно вычислить. Основное предназначение пассивных форм команд – это использование их как средства документирования производимых действий в обычной математической нотации. Примерами команд с двумя формами являются команда дифференцирования (diff и Diff), интегрирования (int и Int) и др.
Пример 1. Пассивная и активная формы команд.
Если команды и функции являются частью ядра системы Maple, то они всегда доступны пользователю. А для вызова других команд и функций необходимо подключить библиотеку или пакет, в которых они расположены. Для этого служат команды readlib () и with (). Первая подключает библиотеку, вторая – пакет. Параметром этих команд является имя библиотеки или пакета, функции которых пользователь желает использовать.
Команды и функции Maple, наиболее часто используемые при аналитических преобразованиях, располагаются в его системном ядре – части программного обеспечения системы аналитических вычислений, постоянно находящейся в памяти компьютера. К ним относятся команды, выполняющие разнообразные преобразования выражений, получающие решение уравнений и систем уравнений, дифференцирующие функции и т.д. В данной работе вводятся команды, наиболее часто используемые при выполнении аналитических вычислений.
2. Упрощение выражения: simplify()
Команда simplify () предназначена для упрощения разнообразных выражений, составленных из чисел, переменных и элементарных функций. Заметим, что Maple может его упростить, а может и не упростить, так как он использует свои внутренние алгоритмы упрощения, результат выполнения которых может не совсем соответствовать взглядам пользователя на то, как он хотел бы упростить выражение и в каком виде его получить.
Эта команда имеет несколько форм вызова. Ее самый простой синтаксис имеет следующий вид: simplify (выражение).
В скобках указывается выражение, подлежащее упрощению. Команда simplify () ищет в выражении вызовы функций, квадратные корни, радикалы и степени и инициализирует подходящие процедуры упрощения. Реально команда simplify () реализована в виде набора процедур упрощения, хранящихся в основной библиотеке Maple. Перечислим некоторые из них, остальные можно найти в справке по этой команде (например, установив курсор в рабочем листе на ее имя и нажав клавишу ): `simplify/exp` – для упрощения выражений с экспоненциальными функциями, `simрlifу/ln` – для упрощения выражений с логарифмами, `simplifу/sqrt` – для упрощения выражений, содержащих квадратные корни, `simplifу/trig` – для упрощения выражении с тригонометрическими функциями, `simplifу/radical` – для упрощения выражений с радикалами (дробные степени), `simplifу/power` – для упрощения выражений со степенями, экспонентами и логарифмами и т.д. По умолчанию Maple пытается использовать максимальный набор функций упрощения, подходящий к конкретному выражению.
В команде можно задать конкретные процедуры упрощения, и тогда только они будут использоваться для упрощения заданного выражения, а не весь возможный, установленный по умолчанию набор. Это обеспечивается следующим синтаксисом команды: simрlifу (выражение, nl, n2,…);
Здесь nl, n2 и т.д. являются именами процедур упрощения: Ei, GAMМА, RootOf, @, hypergeom, ln, polar, power, radical, sqrt, trig. Полную информацию о формулах упрощения при использовании перечисленных значений параметров можно получить с помощью команды? simplify [имя], где [имя] – одно из значений параметров функции упрощения.
Упрощения выражений можно проводить с различными видами чисел, например, положительными или принадлежащими некоторому отрезку действительных чисел. Это достигается с помощью параметра assume=свойство. Форма вызова команды при этом имеет вид: simplify (выражение, аssumе=свойство); где параметр свойство может принимать одно из следующих значений: complex – комплексная область, real – действительная область, positive – положительные действительные числа, integer – целые числа, RealRange (a, b) – интервал (а, b) действительных чисел.
Примеры использования команды упрощения выражений simplify() представлены ниже:
Похожие публикации:
- Где windows movie maker в windows 10
- Где находится movie maker windows 7
- Где хранятся файлы icq
- Как бесплатно зарегистрироваться в wechat
Математический калькулятор
Математический калькулятор вычисляет значение заданного математического выражения. В выражении можно использовать операции сложения, умножения, вычитания, деления возведения в степень, константу pi, различные математические функции: sqrt — квадратный корень, exp — e в указанной степени, lb — логарифм по основанию 2, lg — логарифм по основанию 10, ln — натуральный логарифм (по основанию e), sin — синус, cos — косинус, tg — тангенс, ctg — котангенс, sec — секанс, cosec — косеканс, arcsin — арксинус, arccos — арккосинус, arctg — арктангенс, arcctg — арккотангенс, arcsec — арксеканс, arccosec — арккосеканс, versin — версинус, vercos — коверсинус, haversin — гаверсинус, exsec — экссеканс, excsc — экскосеканс, sh — гиперболический синус, ch — гиперболический косинус, th — гиперболический тангенс, cth — гиперболический котангенс, sech — гиперболический секанс, csch — гиперболический косеканс, root3 — кубический корень, rootN — корень указанной степени, logN — логарифм с заданным основанием.
Калькулятор был создан в ответ на многочисленные запросы наших пользователей, которые желают воспользоваться нашим сервисом чтобы посчитать результат какого-либо математического выражения, например, что-нибудь сложить, вычесть, поделить возвести в степень, извлечь корень и т. п. Вводите последовательность математических выражений в поле математическое выражение и получайте результат.
Все тригонометрические функции принимают аргументы в радианах, а не в градусах. Обратные тригонометрические функции, также возвращают угол в радианах. Для преобразования градусов в радианы — умножайте градусы на pi/180, например, sin 30 градусов надо записывать как sin(30*pi/180).
Вычисление значения математического выражения из строки
С точки зрения безопасности (как уже сказал @Batanichek — с eval() нужно быть очень осторожным), производительности и гибкости лучше воспользоваться numexpr:
In [6]: import numexpr as ne In [7]: ne.evaluate('1/3+2/3') Out[7]: array(1.0) In [8]: var1=10 In [9]: var2=2 In [10]: ne.evaluate('var1**var2') Out[10]: array(100, dtype=int32)
Он, кстати, быстрее для более сложных вычислений, поддерживает использование переменных, поддерживает NumPy, SciPy и т.д.
Numexpr поддерживает многопоточные вычисления (используя все доступные ядра процессора) и VML от Intel (Vector Math Library, который интегрирован в интеловский же Math Kernel Library (MKL)) .
Пример работы с обычным («Vanilla Python») массивом:
In [45]: lst = [1, 2.718281828] In [46]: ne.evaluate('log(lst)') Out[46]: array([ 0., 1.])
с NumPy массивом:
In [50]: a = np.array([1, 2.718281828]) In [51]: ne.evaluate('log(a)') Out[51]: array([ 0., 1.])
Сравнение производительности с NumPy для массива, состоящего из 1го млн. элементов типа numpy.float64 :
In [36]: a = np.random.rand(10**6) In [37]: a.shape Out[37]: (1000000,) In [38]: len(a) Out[38]: 1000000 In [39]: %timeit np.log(a) 10 loops, best of 3: 24.3 ms per loop In [40]: %timeit ne.evaluate('log(a)') 100 loops, best of 3: 5.45 ms per loop In [41]: %timeit np.sqrt(np.sin(a)**2 + np.cos(a)**2) 10 loops, best of 3: 84.5 ms per loop In [42]: %timeit ne.evaluate('sqrt(sin(a)**2 + cos(a)**2)') 100 loops, best of 3: 6.32 ms per loop