Читайте также: |
|
Часто возникает необходимость прерывания вычислений. Для этого в пакете Математика можно использовать следующие функции.
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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Составление программ. Глобальные и локальные переменные | | | Матричные функции |