Опубликован: 27.12.2010 | Уровень: специалист | Доступ: платный
Лекция 1:

Первое знакомство с пакетом Mathematica

Лекция 1: 123456789 || Лекция 2 >
Специальные операции над списками
\tt
In[87]:=\{1,2,3\} . \{x,y,z\} \\ \\
Out[87]=x+2y+3z \\ \\
In[88]:= \{\{a,b\},\{c,d\}\} . \{x,y\} \\ \\
Out[88]=\{ax+by, cx+dy\}

Список \text{\{\{a, b\}, \{c, d\}\}} представляет собой матрицу и может быть визуализирован в привычной форме \begin{pmatrix}
a&b\\
c&d
\end{pmatrix} с использованием палетки (\text{Palette}):

\tt 
In[89]:= 
\begin{pmatrix}
a&b\\
c&d
\end{pmatrix} \cdot \{x,y\}}\\ \\
Out[89]=\{ax+by, cx+dy\}\\ \\
In[90]:= \begin{pmatrix}
a&b\\
c&d
\end{pmatrix} \cdot \begin{pmatrix}
x&y\\
z&t
\end{pmatrix}}\\ \\
Out[90]=\{\{ax+bz, bt+ay\}, \{cx+dz, dt + cy\}\}

Чтобы вывести список в матричной форме, можно использовать команду

MatrixForm

\tt
In[91]:= \begin{pmatrix}
a&b\\
c&d
\end{pmatrix}.
\begin{pmatrix}
x&y\\
z&t
\end{pmatrix}// MatrixForm\\ \\
Out[91]=\begin{pmatrix}
ax+bz&bt+ay\\
cx+dz&dt+cy
\end{pmatrix}
Применение функций к спискам

Функция \text{Sin}, примененная к списку, вычисляется на каждом элементе списка (функции, обладающие таким свойством, называются \text{Listable}):

\tt
In[92] := Sin[\{l,  2,  3,  4,  5\}] \\ \\
Out[92] = \{Sin [1] ,  Sin[2],  Sin[3], Sin[4],  Sin[5]\}

Не всякая функция является Listable:

\tt
In[93]:= f [\{1, 2, 3, 4, 5\}] \\ \\
Out[93] = f [\{1, 2, 3, 4, 5\}]

Чтобы применить функцию f, не являющуюся \text{Listable}, к списку \text{list}, можно воспользоваться командой \text{Map[f, list]}:

\tt
In[94]: = Map[f,\{1, 2, 3, 4, 5\}]
Out[94]=\{f [1], f[2], f[3], f[4], f[5]\}

Функцию f удобно задавать непосредственно внутри команды \text{Map}, не присваивая ей имени:

\tt
In[95]:= Map[\#^2 \&, \{1, 2, 3, 4, 5\}] \\ \\
Out[95] = \{1, 4, 9, 16, 25\}

Чтобы применить функцию f нескольких переменных к набору списков, нужна команда \text{\tt MapThread[f, \{list1, list2, \ldots \}]}:

\tt
In[96]:= MapThread[\#1^2 - \#2^3 &, \{\{1, 2, 3\}, \{x, у, z\}\} \\ \\
Out[96] = \{1 - x^3, 4-y^3, 9-z^3\}
Создание списков

Следующая команда задает список от 1 до 17 с шагом 2:

\tt
In[97]:= Table[k, \{k, 1,  17, 2\}] \\ \\
Out[97]=\{1,  3,  5,  7,   9,  11,  13,  15,  17\}

Следующая команда задает матрицу из трех строк (i - номер строки) длины 5 (элементы строки нумеруются j), в которой (i, j)-й элемент имеет вид i + j:

\tt
In[98]:= Table [i + j, \{i, 1, 3\}, \{j, 1, 5\}] \\ \\
Out[98] =\{\{2, 3, 4, 5, 6\}, \{3, 4, 5, 6, 7\}, \{4, 5, 6, 7, 8\}\}

Следующая команда создает список натуральных чисел от 1 до 5:

\tt
In[99]: = Range [5] \\ \\
Out[99] = {1, 2, 3, 4, 5}

Следующая команда объединяет списки:

\tt
In[100]:=Join[ \{ 1, 2, 3\} , \{ 3, 4, 5\} ] \\
\phantom{In[100]:=}\,\{1, 2, 3\} \sim Join \sim \{ 3, 4, 5\} \\ \\
Out[100]=\{ 1, 2, 3, 3, 4, 5\} \\ \\
Out[101]= \{ 1, 2, 3, 3, 4, 5\}

Следующая команда объединяет подсписки в единый список (убирает внутренние фигурные скобки):

\tt
In[102]:= \begin{pmatrix}
1&2\\
3&4
\end{pmatrix}}\\
\phantom{In[102]:=}\,Flatten
\begin{matrix}
\left [ \begin{pmatrix}
1&2\\
3&4
\end{pmatrix} \right ]} 
\end{matrix} \\ \\
Out[102]=\{\{1,2\}, \{3,4\}\} \\ \\
Out[103]=\{1,2,3,4\}

Следующая функция создает список из последовательных непересекающихся подсписков длины 3:

\tt
In[104]:= Partition[\{a,b,c,d,e,f,g\},3] \\ \\
Out[104]=\{\{a,b,c\}, \{d,e,f\}\} \\ \\
In[105]:=m=\{\{1,2,3\}, \{4,5,6\}, \{7,8,9\}\}; \\
\phantom{In[105]:=}\;m// MatrixForm \\ 
\phantom{In[105]:=}\;Transpose[m] // MatrixForm \\ \\
Out[106]=\begin{pmatrix}
1&2&3\\
4&5&6\\
7&8&9
\end{pmatrix}\\ \\
Out[107]=\begin{pmatrix}
1&4&7\\
2&5&8\\
3&6&9
\end{pmatrix}

Некоторые графические возможности

\tt
In[108]:=Plot [Sin [x], \{ x, -4\pi, 4\pi \}]

\tt
In[109]:= Plot3D[x\^\,\!2 - у\^\,\!2, \{х,-1,1\},\{у, -1, 1\}] \\ \\

\tt
In[110]:= ParametricPlot[\{Cos[t], Sin[t] Cos [t] \},  \{t, 0, 2\pi \}]

\tt
In[111]:= ParametricPlot3D[\{ 8 Cos[t] , 8 Sin[t], t\} , \{ t, 0, 6\pi \}]

\tt
In[112]:=ParametricPlot3D [\{ Cos [u] , Sin[u] Cos [v] , Cos [v] \}, \\
\phantom{In[112]:=P}\!\{u,0,2\pi\}, \{v,0,2\pi\}]

Лекция 1: 123456789 || Лекция 2 >
Светлана Петрова
Светлана Петрова
Украина
Марина Семенова
Марина Семенова
Россия, г. Чебоксары