Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Прерывание вычислений

Читайте также:
  1. Абсолютная и относительная погрешности вычислений
  2. Дифференциал функции одной переменной для приближенных вычислений
  3. Основы теории сложности вычислений
  4. Порядок вычислений
  5. Приемы устных вычислений умножения и деления трехзначных и многозначных чисел
  6. РУЧНОЕ ПРЕРЫВАНИЕ ПРИ РАБОТЕ В АВТОМАТИЧЕСКОМ РЕЖИМЕ

 

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

Abort[ ] – так же, как и одноименная команда меню, останавливает все вычисления. Команда может быть использована в любом месте программы.

Пример 8.11. Введем функцию, которая вычисляет двоичный логарифм x, если выполнено условие: x>0, и печатает предупреждение об ошибке, если это условие нарушено:

In[ ]: = f1[x_]:= If[ x>0, Log[ 2., x], Print["Error: x<=0!"]; Abort[ ]]

In[ ]: = f1[ 8] Out[ ] = 3.

In[ ]: = f1[-8] Out[ ] = Error: x<=0! $Aborted

Break[ ] – обеспечивает экстренный выход из ближайшего охватывающего цикла Do, For или While. (Применение оператора Break[ ] см. в примере 7.2.)

Goto[tag] – передает управление в точку программы, отмеченную меткой Label[tag];. Фрагмент программы с передачей управления может выглядеть следующим образом:

If[ test, Goto[ abc ]];

…;

Label[ abc ]; …

если выполнено условие test, управление передается в точку, помеченную меткой abc.

Пример использования функции Goto имеется в приложении (см. программу перемножения матриц).

 

Списки

9.1. Создание списков. Обращение к элементам списков

 

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

Наиболее простой способ определить список – дать перечисление его элементов в фигурных скобках. Элементы списка отделяются запятыми. Однако элемент, после которого стоит точка с запятой, не выводится на экран и не включается в список – данный элемент сохраняется в памяти вне списка.

Пример 9.1. Сформируем список разнородных элементов:

In[ ]: = L1={f[x_]=x^2; "список", 0.5, a+b, {x,y}} Out[ ] = {список,0.5, a+b,{x,y}}

Первый из элементов – функция f – отсутствует в списке. Длина списка равна четырем:

In[ ]: = Length[L1] Out[ ] = 4

Функция f отсутствует в списке однако сохраняется в памяти:

In[ ]: = f[y] Out[ ] = y2

Обратим внимание, что последний элемент списка L1 сам является списком.

Выделить из списка List элемент с номером n можно с помощью команд:

Part[List,n] или List[[n]].

Отметим, что нумерация элементов списка начинается с единицы.

Новый список, составленный из элементов списка List, можно получить с помощью команд:

Part[List,{n1,n2,..}] или List[[{n1,n2,..}]],

где n1, n2,.. – номера нужных элементов.

С выделенными элементами можно производить любые допустимые операции

Пример 9.2. Примеры обращения к элементам списка L1:

In[ ]: = L1[[{4, 2}]] – список, включающий четвертый и второй элементы списка L1:

Out[ ] = {{x,y}, 0.5}

In[ ]: = L1[[4, 2]] – обращение ко второму подэлементу четвертого элемента списка L1:

Out[ ] = y.

In[ ]: = {L1[[2]], L1[[2]]^2, L1[[2]]*3} – действия со вторым элементом списка L1:

Out[ ] = {0.5, 0.25, 1.5}

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

Range[nmin, nmax, dn] – созданиесписка чисел N=nmin+dn*i, i=0,1,..,imax, где imax равно целой части числа (nmax-nmin) / dn (отметим, что шаг dn может быть отрицательным).

Table[f, {i, imin, imax, di}] – создание одномерного списка значений функции f.

Значения imin и di можно не указывать, если эти значения равны единице. Если значения функции не зависят от индекса, то и индекс можно не указывать; в этом случае в фигурных скобках указывается только длина списка. Функция f также может быть списком. Функция Table позволяет создавать также списки аналитических выражений.

Table[f, {i, imin, imax}, {j, jmin, jmax},..] – создание двумерного списка.

Пример 9.3. Построим списки, используя функции Range и Table:

In[ ]: = v1=Range[5, -5, -7] Out[ ] = {5, -2}.

In[ ]: = v2=Table[Random[Integer, {-9, 9}], {3}]

Out[ ] = {5, 7,-9} – один из возможных ответов.

In[ ]: = m1=Table[Abs[i -j]+1, {i, 2}, {j, 2}] Out[ ] = {{1, 2}, {2, 1}}.

Отметим, что списки v1 и v2, по существу, являются векторами, а список m1 является матрицей. Чтобы увидеть эти списки в виде векторов и матриц воспользуемся командой MatrixForm:

 

 

In[ ]: = {v2//MatrixForm, {v2}//MatrixForm, m1//MatrixForm}

Out[ ] =

 

 

Заметим, что команда MatrixForm представляет вектор в виде столбца. Чтобы превратить список в вектор - строку, достаточно заключить его в дополнительные скобки.

Пример 9.4. Команда In[ ]: = { Table[i*j, {i, 8}, {j, 8}]//MatrixForm,

"Рис. 9.1. Таблица умножения" }//TableForm

создает список, включающий фрагмент таблицы умножения и подпись под таблицей. Таблица умножения cоздается с помощью функции Table и выводится на экран в виде матрицы. Функция TableForm размещает в столбик элементы списка. Результат виден на рис. 9.1.

 


Дата добавления: 2015-07-08; просмотров: 233 | Нарушение авторских прав


Читайте в этой же книге: Точные и приближенные вычисления. Численные и аналитические операции | Рабочий документ и ячейки. Основные команды | Правила написания. Основные встроенные функции | Функции комплексного аргумента | Цикл Do | Немедленное и задержанное присваивание | Массивы | Двумерные графики | Изображения трехмерных объектов | Анимация |
<== предыдущая страница | следующая страница ==>
Составление программ. Глобальные и локальные переменные| Матричные функции

mybiblioteka.su - 2015-2024 год. (0.008 сек.)