
- •Пакет прикладных программ mathematica Инструкция пользователя
- •1. Общие сведения. Ядро и интерфейс пакета Математика
- •2. Точные и приближенные вычисления. Численные и аналитические операции
- •3. Рабочий документ и ячейки. Основные команды
- •4. Сеанс работы в системе Математика. Глобальный характер данных.
- •5. Правила написания. Основные встроенные функции.
- •Примеры выражений
- •Формы обращений к функциям
- •Нескольких аргументов
- •7. Циклические операции
- •Логические операторы
- •7.4. Функция If
- •7.5. Логические выражения
- •8. Функции пользователя. Составление программ
- •8.1. Функции пользователя. Описания типов аргументов
- •8.2. Немедленное и задержанное присваивание
- •8.3. Альтернативные определения функций
- •8.4. Составление программ. Глобальные и локальные переменные
- •8.5. Прерывание вычислений
- •9. Списки
- •9.1. Создание списков. Обращение к элементам списков
- •9.2. Преобразование списков
- •9.3. Матричные функции
- •10. Массивы
- •11. Основные типы графиков
- •11.1. Двумерные графики
- •Show[GraphicsArray[{g1, g2,…}], options]
- •11.3. Изображения трехмерных объектов
- •11.4. Анимация
- •12. Функция Manipulate
- •13. Аналитические операции. Интерполяция. Решение уравнений
- •13.1. Аналитические операции
- •13.2. Интерполяция
- •13.3. Решение алгебраических уравнений
- •13.4. Решение дифференциальных уравнений
- •14. Преобразование выражений
- •14.1. Стандартная форма выражений
- •Примеры выражений
- •14.2. Обращение к элементам выражений
- •14.3. Представление выражения в виде дерева
- •14.4. Операции преобразования выражений
- •14.5. Повторное выполнение операций
- •14.6. Анонимные функции
- •14.7. Функциональные операторы Outer и Inner
- •Вопросы
7. Циклические операции
7.1. Цикл For.
Ф
Таблица 7. 1.
Оператор
Значение
== равно
!= не
равно
=== тождественно
равно
> больше
>= больше
или равно
x
== y
== z все
равны
x
!=
y != z все
различны
!p отрицание
(не)
p&&q&&… конъюнкция
(и)
p
|| q || … дизъюнкция
(или)
Логические операторы
Функция 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, полученное на предпоследнем шаге.
7.2. Цикл While.
Формат команды: While[test, body] – подсчитываются повторно условие test и тело цикла body до тех пор, пока истинность условия не нарушится.
7.3. Цикл Do.
Формат команды: Do[body, {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[body, {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
Алгоритм программы совпадает с алгоритмом предыдущей программы для вычисления машинного эпсилон, однако, поскольку цикл Do не содержит встроенной проверки условий выполнения операций цикла, программа включает условную функцию If. Eсли условие e2>1.0 выполнено, производятся действия цикла; как только условие нарушается, происходит выход из цикла по команде Break[ ].