Векторный анализ
Операции векторного анализа легко определить самостоятельно. Для этого полезны функции Outer и Inner. Функция Outer позволяет создать декартово произведение двух списков. Вот как можно, например, создать список пар, первый элемент которых берется из первого списка, а второй – из второго.
Outer[List,{a,b,c}, {d, e, f} ]
{{{a,d}, {a,e},{a,fn,{{b,d},{b,e},{b,f}},{{c,cl},{c,e},{c,f}}}
Вот пример, связанный с конкатенацией строк.
Вот числовой пример.
Функция Inner немного похожа на скалярное произведение. Собственно говоря, inner[f, список1, список2, g] и есть скалярное произведение, в котором умножение замещается функцией /, а сложение – функцией g.
vl
=
{a1, a2, a3}; v2
=
{b1, b2, b3};
Dot[vl,v2] a1 b1
+
32
b2
+
a3 b3 Inner[Times,vl,v2,Plus]
a1 b1
+
32
b2
+
a3 b3
Теперь можем определить основные операции векторного анализа.
Вот определение градиента.
gradient[f,x_List] :
=
Map[D[f,#]&,x]
Вычислим градиент.
Gradient[f[x,у, z], {x,y,z}]
{f(0.1.0) [x, y, z], f(0.1.0) [x, y, z],
f(0.1.0) D[x, y, z]}.
Теперь определим гессиан:
hessian[f_,x_List] :
=
Outer[D,gradient[f,x],x]
И вычислим его: