Главная страница
Навигация по странице:

  • Что делает Пример раскрывает скобки в тригонометрическом выражении упрощает тригонометрическое выражение приводит к сумме элементов, содержащих sin

  • 6.1. Степенная функция

  • Учебное пособие Москва 2008


    Скачать 3.68 Mb.
    НазваниеУчебное пособие Москва 2008
    АнкорMaxima
    Дата27.10.2019
    Размер3.68 Mb.
    Формат файлаpdf
    Имя файлаMaxima.pdf
    ТипУчебное пособие
    #91989
    страница3 из 7
    1   2   3   4   5   6   7
    4.5. А эти функции имеют дело с углами У функций, используемых для преобразования тригонометрических формул, присутствует общая для всех приставка — trig.
    Функция trigexpand(выражение);
    раскрывает скобки в тригонометрических выражениях:
    Эту функцию можно вызвать с более полным списком аргументов выражение, переменная, — тогда формулы понижения степени будут применяться только по отношению к заданной переменной переменная может быть, как и почти везде, не только отдельным символом, но и выражением. Функция имеет несколько управляющих флагов, первый из которых опять же является тезкой самой функции. Он приводит к повторному раскрытию всех
    26

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Maxima синусов-косинусов, то есть фактически равнозначен повторному вызову самой функции:
    Второй флаг — halfangles
    — управляет раскрытием формул половинных углов. Оба эти флага по умолчанию сброшены. А следующие два флага — trigexpandplus и trigexpandtimes
    — отвечают соответственно за применение формул сумм углов и кратных углов. То есть в примере выше сначала сработал флага затем — trigexpandtimes
    . Эти флаги по умолчанию установлены, что и видно из примера.
    Кроме всего уже упомянутого, есть еще флаги trigsign и Первый принимает традиционные два значения (по умолчанию — true
    ) и регулирует вынос знака за пределы тригонометрической функции, то есть, к примеру, sin(–x) упростится до –sin(x), а cos(–x) — до cos(x). Флаг triginverses
    — трехзначный, и умолчательное его значение равно all. Он отвечает за обработку сочетаний вида sin(asin(x)) или atan(tan(x)). Значение all позволяет раскрывать эти сочетания в обоих направлениях (при этом часть корней будет теряться значение true оставляет разрешенным раскрытие только вида sin(asin(x))
    , то есть блокирует вариант с потерями периодических значений а случай false запрещает оба направления преобразований.
    Функция, обратная trigexpand();
    называется trigreduce
    ();
    — здесь, в полном соответствии со значением слова reduce
    , действуют формулы понижения степени. Например, применив дважды эту функцию к результату предыдущего примера, мы получим его в исходном виде.
    Третья функция занимается уже упрощением, и зовут ее, соответственно, выражение Она старается упростить любое тригонометрическое выражение, используя известные формулы, такие как sin
    2
    (x) + cos
    2
    (x) = 1 и тому подобные. Для наилучшего результата ее можно комбинировать си Эти возможности
    Maxima по преобразованию и упрощению разнообразных выражений далеко не исчерпаны, для справок мы поместили описания ряда полезных функций в табл. 3.
    27

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Таблица Функции Maxima для преобразования выражений
    Имя функции
    Что делает Пример вводит ограничения отменяет ограничения делит один многочлен на другой первый результат – частное второй – остаток отделения раскладывает на множители раскрывает скобки находит наибольший общий делитель многочленов упрощает выражение преобразует в простые дроби по заданной переменной

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Продолжение таблицы Имя функции

    Что делает Пример раскрывает скобки в тригонометрическом выражении упрощает тригонометрическое выражение приводит к сумме элементов, содержащих sin или cos
    5. Операторы и функции
    На самом деле в Максиме нет четкого разграничения между операторами и функциями. Более того, каждый оператор — это на самом деле функция:
    Здесь в первом задании аргументами функции "сложить" являются три числа (1,2,3), которые записаны в круглых скобках и перечислены через запятую, во втором задании первым сомножителем функции "умножить" является сумма чисел (a,b), а вторым — частное двух чисел (c,d). Имена функций–операторов записаны в кавычках лишь потому, что содержат символы, нестандартные для имен функций. Это похоже на работу в командной оболочке UNIX, где, если в имя файла входят управляющие символы, вы должны взять это имя в кавычки.
    Итак, все встроенные операторы Максимы являются функциями более того, вы можете наделить любую (в том числе свою собственную) функцию определенными свойствами, которые фактически превратят ее в оператор. Так как разделение на функции и операторы в Maxima достаточно условно, тов этом разделе речь пойдет не только о некоторых операторах, но и о нескольких функциях, которые по природе своих действий сходны с операторами. Наиболее привычные операторы уже упоминались + – * / ^ или **
    29

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений возведение в степень) и функцию sqrt(x)
    (квадратный корень. Несколько примеров с произведением матриц, которое обозначается точкой (В документации утверждается, что сама точка при этом должна быть отделена пробелами от обоих своих операндов — дабы не спутать ее сточкой десятичной. Но, как отмечается в [7], в некоторых дистрибутивх можно писать и без пробелов. В случае если заданные матрицы не могут быть перемножены из-за несовпадающих размерностей, Maxima выдаст сообщение об ошибке:
    Восклицательный знак, стоящий после своего аргумента (те. постфиксный оператор, традиционно называется факториал. Не менее традиционно двумя восклицательными знаками обозначен полуфакториал — произведение всех четных (для четного операнда) или нечетных чисел, меньших либо равных данному. Функции abs(x)
    и signum(x)
    возвращают, как опять же нетрудно догадаться, модуль и знак числа. А функции max(x1,...,xn)
    и min(x1,...,xn)
    — соответственно максимальное и минимальное из заданных чисел.
    Тут стоит остановиться на нескольких моментах. Во-первых, все функции и операторы Maxima работают не только с действительными, но и комплексными числами. Сами комплексные числа записываются в Максиме в
    30

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Maxima алгебраической форме, с мнимой единицей, обозначенной через %i; то есть в виде a+b*%i, где a и b — соответственно действительная и мнимая части числа. Поэтому факториал задан в наиболее общем виде и представляет собой, по сути, гамма-функцию (точнее, x! = gamma(x+1)
    ), то есть определенна множестве всех комплексных чисел, кроме отрицательных целых. При этом факториал от натурального числа (и нуля) автоматически упрощается до натурального же числа:
    Точно также и модуль определен для всех комплексных чисел
    (
    |a+b*i|=sqrt(a
    2
    +b
    2
    )
    ). Минимум, максимум и знак определены, естественным образом, только для действительных чисел, так как комплексные числа общего вида, как известно, между собой несравнимы. Второй важный момент когда некоторая встроенная функция или оператор
    Maxima не может получить для переданного выражения однозначный результат, Maxima пытается максимально упростить это выражение. Подобные упрощения, равно как и раскрытие факториалов и арифметических операторов, не считаются вычислениями, а следовательно оператор блокировки вычислений их не предотвращает:
    Здесь сначала сработал оператор присвоения значений : (двоеточие, поэтому оператор блокировки вычислений (апостроф) не заблокировал оператор определения знака числа, и поэтому Maxima в качестве знака числа записала –1 (потому что х = –2). Для определения функции следует указать ее имя, аргумент (или аргументы, заключенный в круглые скобки, добавить два символы := и записать, как вычислять саму функцию, например

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Здесь следует остановиться на одном моменте. Если апострофом предварен вызов функции, то блокируется вычисление самой функции, ноне ее аргументов. Если же поставить апостроф перед выражением, заключенным в скобки, то невычисленным останется все это выражение целиком, те. и все входящие в него функции, и все аргументы этих функций см. (%о11).
    В Maxima оператор присвоения значений рассматривается как оператор именования, другим оператором именования является использованный здесь оператор задания функции. Обозначается он через :=, но аналогии здесь прослеживаются нес языками Pascal или Algol, ас другими обозначениями самой Максимы с одной стороны определение функции можно воспринимать как уравнение (которое обозначается знакома с другой — оно родственно назначению имени некоторому выражению (то есть :). То есть определение функции можно в какой-то мере считать симбиозом этих двух выражений — и оттого вполне логично, что оно обозначается обоими их символами. (В продолжение этой аналогии можно добавить, что весть и расширенные варианты операторов присвоения и назначения функции, обозначаемые соответственно через :: и ::=.) В противовес блокировке вычислений, можно также принудительно вычислить любое выражение — для этого имеется оператор, состоящий из двух апострофов

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений В терминологии Maxima невычисленная форма выражения называется
    «noun form», вычисленная — «verb form». Сохраняя лингвистические параллели, на русский это можно перевести как «несовершённая форма и
    «совершённая форма».
    Если говорить о ячейках ввода-вывода, то значение ячейки ввода в Maxima закономерно сохраняется до его вычисления (те. в несовершённой форме, а значение ячейки вывода — после (те. в совершённой); другими словами, тут имеется естественный порядок ввод → вычисление → вывод».
    Оператор, принудительного вычисления, обозначенный двумя апострофами, является синонимом к функции выражение. Сама функция ev предоставляет гораздо более широкие возможности, нежели простое принудительное вычисление заданного выражения она может принимать произвольное число аргументов, первый из которых — вычисляемое выражение, а остальные — специальные опции, которые как рази влияют на то, как именно будет производиться вычисление. Опция функции ev
    , одноименная этому переключателю, позволяет включить упрощение для данного конкретного вычисления — вне зависимости оттого, включено или выключено оно глобально:
    Точно также, как двойной апостроф, — сокращение для ev без дополнительных опций есть еще более упрощенная запись функции ev с
    33

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Maxima опциями в этом случае вместо имени функции и скобок вообще ничего писать ненужно те. выражение, опц1, опц2, …)
    » можно записать просто как выражение, опц1, опц2, Первая из таких опций связана с автоупрощением. Глобально автоупрощение регулируется переключателем simp (от «simplification» — упрощение, и по умолчанию оно включено в любой момент его можно выключить, установив значение переключателя в false. Следует отметить еще, что вызов kill(all);
    не восстанавливает принятые по умолчанию значения переключателей те. если мы, к примеру, изменили значение переключателя simp
    , как в примере выше, то для того чтобы вернуться к изначальному порядку вещей, установленному сразу после запуска Maxima, нам нужно не только сделать kill(all);,
    но и вручную назначить simp: Опция float позволяет преобразовать все рациональные числа в конечную десятичную запись опция numer включает опцию float и, кроме того, приводит к десятичному виду многие математические функции от числовых аргументов:
    Опция noeval блокирует сам этап вычисления как таковой те. ее можно использовать для того чтобы применить к выражению другие опции функции ev
    , не перевычисляя выражение. При этом опять-таки нужно иметь ввиду разницу между вычислением и упрощением:
    Таким образом, мы можем принудительно упростить выражение, не перевычисляя его.
    О других константных опциях и переключателях функции ev можно узнать, если вызвать из окна ВВОД справку, введя
    ? Кроме константных значений есть еще несколько видов опций. Первая из них — это какое-либо имя специальной функции, которая занимается упрощением или преобразованием математических выражений. Будучи упомянута по имени в качестве опции, такая функция просто применяется к вычисляемому выражению. Например, выражение fullratsimp
    — это тоже
    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Maxima самое, что и выражение Полный список таких функций можно найти через справку, введя
    ? Если в качестве опции ввести имя любой другой функции, не имеющей свойства evfun
    , то все несовершённые вхождения этой функции будут заменены совершёнными, те. принудительно вычислены.
    Также в качестве опции можно задать назначение символа или функции все такие назначения действуют локально в пределах вычисляемого выражения, и все подстановки производятся параллельно:
    Опция подстановки символа допустима не только в виде оператора присвоения, но ив виде равенства сделано это, в частности, для того, чтобы в качестве подстановок можно было использовать решения, найденные функцией Здесь функция solve(); нашла решение х
    = 1 уравнения x
    3
    +3x
    2
    +3x+1=0 и подставила его в качестве показателя степени 6. Графики функций

    Как уже упоминалось, количество различных функций в Maxima разработчики постарались свести к минимуму, а широту размаха каждой конкретной функции, соответственно, к максимуму. Соблюдается эта тенденция ив функциях построения графиков основных таких функций всего две, с очевидными, как всегда, названиями — plot2d и plot3d
    (одно из значений слова plot — графика аббревиатуры
    2d и
    3d переводятся как двумерный и трехмерный. Кроме того, в графическом интерфейсе имеются эти же функции, нос дополнительным префиксом wx – обязаны графическому интерфейсу wxMaxima.
    6.1. Степенная функция
    Кратко о возможностях. Начнем с plot2d.
    Пусть мы выбрали программу
    wxMaxima в списке программ, загрузили её и, желая нарисовать двумерный график, щёлкнули по кнопке График 2D...
    В появившемся окне
    Выражение(ния) запишем сразу 4 функции x, abs(x), x
    2
    , x
    3
    , перечислив их через запятую рисовать, так рисовать, коль предлагают. Изменим граничные значения переменных хи у на относительно небольшие (рис. 8) из –1.5 к 1.5 (чтобы график выглядел покрупнее) и, пока не разбираясь с форматом и опциями, щелкнем ОК (или нажмём Enter).
    35

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Рис. 8. Окна–формы интерфейса wxMaxima для рисования графиков
    В верхнем графическом окне wxMaxima появились графики (рис. 9). Кроме того, в графической части окна wxMaxima появилась команда wxplot2d([x,abs(x),x^2,x^3], [x,–1.5,1.5], [y,–1.5,1.5])$. Что касается графика, то он "слишком правильный" и никак не масштабируется – таковы возможности "встроенного" формата. Рис. 9. Графики y=x, y=abs(x), y=x
    2
    , y=x
    3
    во встроенном формате интерфейса
    wxMaxima
    36

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Построенный график абстрактно правилен в том отношении, что масштаб по оси у (ординат) в общем случае может не совпадать с масштабом по оси х абсцисс. Нов данном случае различие масштабов совсем даже не требуется, коль скоро нас интересует график вида ух. Нас скорее интересует один и тот же масштаб, нежели различный.
    Попробуем изменить формат и опции графика. Мы можем перенести команду из графического окна назад в окно команд ВВОД – для этого нужно щелкнуть по команде и после её выделения нажать клавишу F5. А можно "вспомнить" предыдущие команды, нажимая на клавишу "Вверх" (ведь Максима запоминает введенные и исполненные команды. Однако, если команда достаточно длинная, то она может не уместиться в строке ВВОД. В этом случае нужно нажать на кнопке «Многострочный ввод , (на которую указывает стрелка на рис. 10), правее кнопки Ввести команду – декоративного изображения клавиши Enter и далее можно будет записывать команды неограниченной длины в отдельном окне с названием Ввод Рис. 10. Вызов окна Ввод wxMaxima для написания длинных команд
    Заметим, что если просто оставить в окне ВВОД начальную запись x,abs(x),x^2,x^3, то после нажатия на кнопку График 2D...
    снова вернутся значения переменных хи у, которые были приняты по умолчанию (Переменная х из –5 к 5; Переменная у из 0 к 0
    ). Рис. 11. Окно–форма График 2D
    для ввода опций двумерных графиков

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений Но если скопировать в буфер обмена (даже не планируя дальнейшей вставки) названия функций (через контекстное меню или просто, нажав, например, Ctrl+C) или даже если только щелкнуть в графическом окне на текст исполненной команды, то после щелчка по кнопке График 2D...
    снова вернутся и названия функций и предыдущие, уже вводимые нами, настройки по хи у из –1.5 к 1.5. Выберем Формат gnuplot, частично выберем, а частично напишем сами с клавиатуры в окне Опции set size ratio 1; set zeroaxis; set grid
    ; (перечисляя их через точку с запятой) и щёлкнем на кнопку ОК или нажмем клавишу Рис. 12. Графики y=x, y=abs(x), y=x
    2
    , y=x
    3
    в формате gnuplot интерфейса В формате gnuplot график Максима нарисует в отдельном окне, и мы можем масштабировать его (изменять размеры за счет изменения размеров окна. При движении мышки внизу слева отображаются координаты положения указателя мышки — сейчас он находится в точке пересечения всех графиков
    (1,1). Опция set zeroaxis; проводит оси через начало координат, опция set grid; прорисовывает сетку, опция set size ratio 1; выравнивает масштабы по осям координат, чтобы круг на мониторе выглядел круглым, а не в виде овала. Отметим, что последнее обстоятельство связано стем, что разрешение монитора по горизонтали и по вертикали разное (пиксель не является "круглым").
    Чтобы нарисовать график в формате openmath, команда для Максимы будет такой.
    Рис. 13. Команда для Maxima для рисования графиков в формате openmath
    38

    Стахин НА, Основы работы с системой аналитических (символьных) вычислений График будет нарисован в отдельном окне. Рис. 14. Графики y=x, y=abs(x), y=x
    2
    , y=x
    3
    в формате openmath интерфейса И может видоизменяться в интерактивном режиме, в том числе график можно масштабировать не только за счет изменения общих размеров окна, но и с помощью кнопки меню Масштабировать после щелчка мышью на графике размеры увеличатся, и после щелчка мышью при нажатой клавише Shift размеры уменьшатся график можно сохранить (кнопка Сохранить) в виде графического файла в формате *.ps, можно изменить толщину линий (кнопка Настройка, перерисовать (кнопка Перерисовать) график после изменения его параметров.
    Отметим, что аргументами функции plot2d служат не отдельные переменные–параметры, а списки для записи которых используются квадратные скобки. Это связано стем, что plot2d может принимать еще и дополнительные аргументы — в таком случае они перечисляются следом за таким списком, что исключает всякую путаницу. По умолчанию, построением графиков занимается gnuplot
    , но кроме него есть разрабатываемый вместе си идущий в ее же пакете openmath
    Gnuplot необходимо установить (вручную либо автоматически — как зависимость Maxima) из пакета gnuplot-nox
    , либо просто gnuplot
    , а для работы openmath нужен командный интерпретатор wish
    , входящий обычно в пакет tk
    ; и, начиная с версии 5.10.0, еще и пакет xMaxima.
    1   2   3   4   5   6   7


    написать администратору сайта