Функции и команды системы Maxima. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции и команды системы Maxima.



 

В системе Maxima имеется множество встроенных функций. Для каждой встроенной функции можно получить описание в документации, содержащейся в справочной системе. Вызвать справку можно с помощью функциональной клавиши F1. Также в Maxima есть специальная функция, которая выдает информацию из документации по конкретным словам. Сокращенная версия вызова этой функции:?? name (Рис.12). Здесь?? — это имя оператора, и аргумент нужно отделять от него пробелом. Оператор?? выдает список тех разделов помощи и имен функций, которые содержат заданный текст, после чего предлагают ввести номер того раздела или описания той функции, которые требуется посмотреть:

Рис.12. Вызов справки по интересующей команде системы Maxima

 

Заметим, что в системе Maxima нет четкого разграничения между операторами и функциями. Более того, каждый оператор — это на самом деле функция.

Все функции и операторы Maxima работают не только с действительными, но и комплексными числами. Сами комплексные числа записываются в алгебраической форме, с мнимой единицей, обозначенной через %i; то есть в виде a+b*%i, где а и b — соответственно действительная и мнимая части числа.

Рассмотрим синтаксис базовых функций системы Maxima.

1. Арифметические операторы: +, -, *, /, -->. Пример:

 

3. Логические операторы: and, or, not. Пример:

 

4. Функция нахождения факториала числа:!

Факториал задан в наиболее общем виде и представляет собой, по сути, гамма-функцию (точнее, x! = gamma(x+1)), то есть определен на множестве всех комплексных чисел, кроме отрицательных целых. Факториал от натурального числа (и нуля) автоматически упрощается до натурального же числа.

Пример:

 

5. Функция нахождения полуфакториала чила:!! (произведение всех четных (для четного операнда) или нечетных чисел, меньших либо равных данному).

Пример:

6. Функция отрицания синтаксического равенства: # Запись a#b эквивалентна not a=b.Пример:

7. Функция нахождения модуля числа х: abs(x) Модуль определен для всех комплексных чисел. Пример:

8. Функция, возвращающая знак числа х: signum(x)

Пример:

 

9. Функции, возвращающие наибольшее и наименьшее значения из заданных действительных чисел: max(x1,...,xn) и min(x1,...,xn).

Пример:

 

10. Некоторые встроенные математические функции:

 

sqrt (x) Квадратный корень из x
acos (x) Арккосинус аргумента х
acosh (x) Гиперболический арккосинус аргумента х
acot (x) Арккотангенс аргумента х
acoth (x) Гиперболический арккотангенс аргумента х
acsc (x) Арккосеканс аргумента х
acsch (x) Гиперболический арккосеканс аргумента х
asec (x) Арксеканс аргумента х
asech (x) Гиперболический арксеканс аргумента х
asin (x) Арксинус аргумента х
asinh (x) Гиперболический арксинус аргумента х
atan (x) Арктангенс аргумента х
atanh (x) Гиперболический арктангенс аргумента х
cosh (x) Гиперболический косинус аргумента х
coth (x) Гиперболический котангенс аргумента х
csc (x) Косеканс аргумента х
csch (x) Гиперболический косеканс аргумента х
sec (x) Секанс аргумента х
sech (x) Гиперболический секанс аргумента х
sin (x) Синус аргумента х
sinh (x) Гиперболический синус аргумента х
tan (x) Тангенс аргумента х
tanh (x) Гиперболический тангенс аргумента х
log (x) Натуральный логарифм х
exp (x) Экспонента х

11. Функции для работы с матрицами:

determinant – нахождение определителя матрицы:

eigenvalues – нахождение собственных значений матрицы:

invert – получение обратной матрицы:

minor – определяет минор матрицы. Первый аргумент – матрица, второй и

третий – индексы строки и столбца соответственно:

rank – ранг матрицы:

submatrix – возвращает матрицу, полученную из исходной удалением

соответствующих строк и (или) столбцов. В качестве параметров следуют

номера удаляемых строк, исходная матрица, номера удаляемых столбцов.

transpose – транспонирование матрицы:

В языке системы Maxima заложены основные исполнимые операторы, которые есть в любом языке программирования. Рассмотрим их.

Операторы присваивания значений (именования выражений).

1. Оператор «:» (оператор задания значения переменной).

2.Оператор «:=» (оператор задания функции пользователя).

3.Расширенные варианты операторов присваивания и задания функции, обозначаемые соответственно через:: и::=.

Использование оператора задания функции пользователя значительно облегчает работу с ней, поскольку к ней можно обращаться по имени и легко и удобно вычислять значения функции в заданных точках.

Пример: найдем значение функции f (x,y)=cosx + sin y в точке

Оператор цикла. Оператор цикла может задаваться несколькими способами. Способ задания зависит от того, известно ли заранее сколько раз необходимо выполнить тело цикла.

Пример: задание цикла для вывода значений переменной а в диапазоне от -3 до 10 с шагом 5:

 

Следующей важной возможностью системы Maxima является работа со списками и массивами.

Для формирования списков используется команда makelist. Например, с помощью команды

 

мы сформировали список с именем x, состоящий из десяти элементов, значения которых находятся по формуле .

Для формирования массивов используется команда array. Например с помощью команды,

мы сформировали двумерный массив A, состоящий из 10 строк и 5 столбцов. Для заполнения массива элементами воспользуемся циклом с параметром. Например,

Для вывода элементов массива на экран можно воспользоваться командой:

Массив можно формировать и без предварительного объявления. В следующем примере мы сформировали одномерный массив x, состоящий из 5 элементов, значения которых вычисляются по формуле x(i)=sin i

Неудобство работы с массивами заключается в том, что вывод значений элементов массива осуществляется в столбец. Гораздо удобнее, если значения массива (двумерного) выводятся в виде матрицы. Для этих целей можно воспользоваться командой genmatrix. Например, для формирования двумерного массива (матрицы) следует задать команду в следующем виде:

Выведем полученный массив:

6. Простейшие преобразования выражений.

 

По умолчанию в системе Maxima является активной функция автоупрощения, т.е. система старается упростить вводимое выражение сама без какой-либо команды.

Пример. Пусть требуется найти значение следующего числового выражения:

Зададим выражение по правилам языка системы Maxima.

 

 

Как видим, система в ответ вывела значение выражения, хотя мы не задали никакой команды.

Как же заставить систему вывести не результат, а само выражение? Для этого функцию упрощения надо отключить с помощью команды simp: false$. Тогда получим:

 

 

Для того чтобы активировать функцию упрощения, надо задать команду simp:true$. Функция автоупрощения может работать как с числовыми, так и с некоторыми не числовыми выражениями. Например,

 

При вводе мы можем обращаться к любой из предыдущих ячеек по ее имени, подставляя его в любые выражения. Кроме того, последняя ячейка вывода обозначается через %, а последняя ячейка ввода — через _. Это позволяет обращаться к последнему результату, не отвлекаясь на то, каков его номер. Но такими обращениями к ячейкам злоупотреблять не надо, поскольку при переоценивании всего документа или его отдельных ячеек ввода может произойти разногласие между номерами ячеек.

Пример. Найти значение выражения и увеличить полученный результат в 5 раз.

 

 

Желательно вместо имен ячеек использовать переменные и присваивать их имена любым выражениям. В этом случае в виде значения переменной может выступать любое математическое выражение.

Значения имен переменных сохраняются на протяжении всей работы с документом. Напомним, что если необходимо снять определение с переменной, то это можно сделать с помощью функции kill(name), где name — имя уничтожаемого выражения; причем это может быть как имя, назначенное вами, так и любая ячейка ввода или вывода. Точно так же можно очистить всю память и освободить все имена, введя команду kill(all) (или выбрать меню Махта->Очиститъ память (Clear Memory)). В этом случае очистятся в том числе и все ячейки ввода-вывода, и их нумерация опять начнется с единицы.

Функция автоупрощения далеко не всегда способна упростить выражение. В дополнение к ней имеется целый ряд команд, которые предназначены для работы с выражениями: рациональными и иррациональными. Рассмотрим некоторые из них.

rat (выражение) — преобразовывает рациональное выражение к канонической форме: раскрывает все скобки, затем приводит все к общему знаменателю, суммирует и сокращает; приводит все числа в конечной десятичной записи к рациональным. Каноническая форма автоматически «отменяется» в случае любых преобразований, не являющихся рациональными

ratsimp (выражение) — упрощает выражение за счет рациональных преобразований. Работает в том числе и «вглубь», то есть иррациональные части выражения не рассматриваются как атомарные, а упрощаются, в том числе, и все рациональные элементы внутри них

fullratsimp(выражение) — функция упрощения рационального выражения методом последовательного применения к переданному выражению функции ratsimp(). За счет этого функция работает несколько медленнее, чем ratsimp(), зато дает более надежный результат.

expand (выражение) — раскрывает скобки в выражении на всех уровнях вложенности. В отличии от функции ratexpand(), не приводит дроби-слагаемые к общему знаменателю.

radcan(выражение) — функция упрощения логарифмических, экспоненциальных функций и степенных с нецелыми рациональными показателями, то есть корней (радикалов).

Часто при попытке упрощения выражения в Maxima может происходить на самом деле только его усложнение. Увеличение результата может происходить из-за того, что неизвестно, какие значения могут принимать переменные, входящие в выражение. Чтобы этого избежать, следует накладывать ограничения на значения, которые может принимать переменная. Делается это с помощью функции assume(условие). Поэтому в некоторых случаях наилучшего результата можно добиться, комбинируя radcan() с ratsimp() или fullratsimp().



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 3663; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.233.72 (0.023 с.)