Функции комплексного аргумента

Перечисленные в предыдущем разделе функции применимы также и к комплексному аргументу. Дополнительные функции комплексного аргумента:

Re[z],Im[z] - действительная и мнимая части числа z,

Arg[z] - аргумент числа z.

Пример 6.1

In[ ] := Abs[1+I] Out[] = Функции комплексного аргумента - student2.ru

In[ ] := Cos[I] Out[] = Функции комплексного аргумента - student2.ru

In[ ] := Sqrt[2I]Out[] = Функции комплексного аргумента - student2.ruIn[ ] := Log[I] Out[] = Функции комплексного аргумента - student2.ru

In[ ] := E^(I p)Out[] = -1 In[ ] := Arg[1+I] Out[] = Функции комплексного аргумента - student2.ru

Замечание 1. В ряде случаев Математика по умолчанию не упрощает выходные выражения. Например, входное выражение Функции комплексного аргумента - student2.ru Математика просто переписывает в ином виде. Для упрощения выражений можно применить функцию ComplexExpand[expr] – вычисление всех степеней и произведений в выражении expr – либо где-нибудь в выражении expr поставить десятичную точку.

Пример 6.2. На языке пакета Математика напишем список из трех выражений для извлечения

Функции комплексного аргумента - student2.ru

корня третьей степени:

Получим следующий ответ:

.

Замечание 2. При извлечении корня из комплексного числа Математика по умолчанию выдает значение корня с наименьшим (по абсолютной величине) значением аргумента.

Пример 6.3.

Функции комплексного аргумента - student2.ru Найдем аргумент кубичного корня из –1 и –I. Запишем на языке пакета Математика:

Получим ответ:

Чтобы найти все n значений корня степени n можно воспользоваться функциями для решения уравнений Solve,FindRootили Roots.

Пример 6.4. Найдем все значения корня третьей степени из –1 и –I:

In[] := Roots[x^3 == -1,x] //ComplexExpand,

Out [] = Функции комплексного аргумента - student2.ru .

In[] := Roots[x^3 == -I,x] //ComplexExpand,

Функции комплексного аргумента - student2.ru Out [] = Функции комплексного аргумента - student2.ru .

Циклические операции

Цикл For

Формат команды: For[start, test, incr, body]

Функция For имеет не более четырех аргументов. Аргумент start описывает предварительные действия. Test – проверка условия выполнения цикла. Необязательный аргумент incr – увеличение индекса – счетчика циклов. Body – тело цикла. Сначала выполняется start, затем повторно выполняются body и incr до тех пор, пока значение test есть ИСТИНА (True). Аргументы оператора For отделяются друг от друга запятыми, формулы внутри аргументов отделяются друг от друга знаком точка с запятой.

Пример 7.1

Программа, иллюстрирующая работу цикла For. Программа включает два оператора: цикл For, в котором подсчитывается значение целой величины I, и команду вывода на экран найденного значения.

In[] := For[ i=1, i<5, i++]; i

Out [ ] = 5

Обратим внимание на момент окончания цикла. При i=4 условие i<5 выполнено, так что величина i еще раз увеличивается на единицу, и окончательное значение равно 5.

Пример 7.2

Составим программу вычисления “машинного эпсилон” – числа, которое определяет относительную точность арифметики, использующей представление чисел с плавающей запятой. По определению машинный эпсилон eps – это минимальное положительное число, для которого выполняется условие: 1. + eps > 1. Иначе говоря, это минимальное число, при котором правая и левая части в этом неравенстве различимы. Программа имеет вид:

In[] := For[ep=1., 1.+ep>1., ep=ep/2]; 2 ep

Out [ ] = 2.84217*10-14

Сначала числуepприсваивается значение 1.0, затем это число многократно делится пополам до тех пор, пока не нарушится условие выполнения цикла. На печать выводится значение ep, полученное на предпоследнем шаге.

Цикл While

Формат команды: While[test, body] – подсчитываются повторно условие test и тело цикла body до тех пор, пока истинность условия не нарушится.

Цикл Do

Формат команды: Do[expr, {i, imin, imax, di}] – подсчитывается выражение expr для значений i, принимающих значения от imin до imax с шагом di. Значения imin и di можно не указывать, если эти значения равны 1. Индекс i можно не указывать, если expr от него не зависит, так что минимальный формат цикла имеет вид: Do[expr, {imax}] – вычисления повторяются imax раз.

Do[ body, {i {i1, i2, i3, …}}] – для I используютя значения из списка значений.

Более общий формат команды: Do[expr, {i, imin, imax}, {j, jmin, jmax}] – для каждого значения i вычисления повторяются при меняющихся значениях j.

Пример 7.3

Напишем еще одну программу вычисления “машинного эпсилон”:

In[ ] := ep2=1.; Do[If[1.+ep2>1., ep2=ep2/2, Break[]], {70}]; 2 ep2

Out[ ] = 2.84217*10-14

Функции комплексного аргумента - student2.ru Алгоритм программы совпадает с алгоритмом предыдущей программы для вычисления машинного эпсилон, однако, поскольку цикл Do не содержит встроенной проверки условий выполнения операций цикла, программа включает условную функцию If. Eсли условие e2>1.0 выполнено, производятся действия цикла; как только условие нарушается, происходит выход из цикла по команде Break[ ].

7.4. Функция If

Общий формат функции: If[test, then, else, unknown].Максимальное количество аргументов – четыре, но применимы также более короткие форматы: If[test, then, else] и If[test, then]. Если условие test выполнено, то вычисляется выражение then, иначе вычисляется else. Предусмотрен также случай, когда логическое значение условия test не может быть определено. Например, значение высказывания x<5 не определено, если не известно значение x. Более общая форма функции If учитывает эту возможность: если истинность условия test не определена, то вычисляется выражение unknown. Каждый из аргументов: then, else и unknown – может включать несколько операторов, отделенных друг от друга точкой с запятой. Функция If допускает вложения.

Логические выражения

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

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

Значение высказывания во второй строчке таблицы определяется тем, что прибавляемое к единице число в левой части равенства меньше машинного эпсилон.

Значение высказывания в четвертой строке связано с тем, что в пакете Математика вводится особый формат чисел – Rational. В этом формате числа представляются точно, поэтому даже ничтожная прибавка к единице делает сумму отличной от единицы.

Наши рекомендации