Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Функции и команды системы 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. Некоторые встроенные математические функции:
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$. Функция автоупрощения может работать как с числовыми, так и с некоторыми не числовыми выражениями. Например,
При вводе мы можем обращаться к любой из предыдущих ячеек по ее имени, подставляя его в любые выражения. Кроме того, последняя ячейка вывода обозначается через %, а последняя ячейка ввода — через _. Это позволяет обращаться к последнему результату, не отвлекаясь на то, каков его номер. Но такими обращениями к ячейкам злоупотреблять не надо, поскольку при переоценивании всего документа или его отдельных ячеек ввода может произойти разногласие между номерами ячеек. Пример. Найти значение выражения
Желательно вместо имен ячеек использовать переменные и присваивать их имена любым выражениям. В этом случае в виде значения переменной может выступать любое математическое выражение. Значения имен переменных сохраняются на протяжении всей работы с документом. Напомним, что если необходимо снять определение с переменной, то это можно сделать с помощью функции kill(name), где name — имя уничтожаемого выражения; причем это может быть как имя, назначенное вами, так и любая ячейка ввода или вывода. Точно так же можно очистить всю память и освободить все имена, введя команду kill(all) (или выбрать меню Махта->Очиститъ память (Clear Memory)). В этом случае очистятся в том числе и все ячейки ввода-вывода, и их нумерация опять начнется с единицы. Функция автоупрощения далеко не всегда способна упростить выражение. В дополнение к ней имеется целый ряд команд, которые предназначены для работы с выражениями: рациональными и иррациональными. Рассмотрим некоторые из них. rat (выражение) — преобразовывает рациональное выражение к канонической форме: раскрывает все скобки, затем приводит все к общему знаменателю, суммирует и сокращает; приводит все числа в конечной десятичной записи к рациональным. Каноническая форма автоматически «отменяется» в случае любых преобразований, не являющихся рациональными ratsimp (выражение) — упрощает выражение за счет рациональных преобразований. Работает в том числе и «вглубь», то есть иррациональные части выражения не рассматриваются как атомарные, а упрощаются, в том числе, и все рациональные элементы внутри них fullratsimp(выражение) — функция упрощения рационального выражения методом последовательного применения к переданному выражению функции ratsimp(). За счет этого функция работает несколько медленнее, чем ratsimp(), зато дает более надежный результат. expand (выражение) — раскрывает скобки в выражении на всех уровнях вложенности. В отличии от функции ratexpand(), не приводит дроби-слагаемые к общему знаменателю. radcan(выражение) — функция упрощения логарифмических, экспоненциальных функций и степенных с нецелыми рациональными показателями, то есть корней (радикалов). Часто при попытке упрощения выражения в Maxima может происходить на самом деле только его усложнение. Увеличение результата может происходить из-за того, что неизвестно, какие значения могут принимать переменные, входящие в выражение. Чтобы этого избежать, следует накладывать ограничения на значения, которые может принимать переменная. Делается это с помощью функции assume(условие). Поэтому в некоторых случаях наилучшего результата можно добиться, комбинируя radcan() с ratsimp() или fullratsimp().
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-02-05; просмотров: 3991; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.011 с.) |