ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.04.2021
Просмотров: 1358
Скачиваний: 16
Функции для работы с векторами
Функция
Описание
vector(n, list)
Создание вектора размерности
n
из списка
list
randvector(n)
Создание случайного вектора размерности
n
vectdim(V)
Размерность
equal(U, V)
Проверка совпадения векторов
U
и
V
norm(V, normname)
Норма
normalize(V)
Нормированный вектор
dotprod(U, V)
Скалярное произведение
crossprod(U, V)
Векторное произведение
angle(U, V)
Угол между векторами
U
и
V
Функции для работы с матрицами
Функция
Описание
matrix(m, n, list)
Создание матрицы размерности
m
на
n
из списка
list
randmatrix(m, n)
Создание случайной матрицы
размерности
m
на
n
hilbert(n)
Создание матрицы Гильберта
размерности
n
на
n
rowdim(A)
Числострок
coldim(A)
Числостолбцов
row(A, i)
Строка с номером
i
col(A, j)
Столбец с номером
j
minor(A, i, j)
Минор, полученный вычеркиванием
строки с номером
i
и столбца с номером
j
augment(A1, A2, ...)
Горизонтальное слияние матриц
stack(A1, A2, ...)
Вертикальное слияние матриц
equal(A, B)
Проверка совпадения матриц
A
и
B
rank(A)
Ранг матрицы
A
trace(A)
След квадратной матрицы
A
det(A)
Определитель квадратной матрицы
A
41
norm(A, normname)
Норма
cond(A, normname)
Число обусловленности
квадратной матрицы
A
transpose(A)
Транспонированная матрица
multiply(A1, A2, ...)
Умножение матриц
multiply(A, V)
Умножение матрицы
A
на вектор
V
inverse(A)
Обратная матрица
linsolve(A, B)
Решение матричного уравнения
A &* X = B
linsolve(A, V)
Решение матрично-векторного уравнения
A &* X = V
adjoint(A)
Сопряженная матрица
LUdecomp(A, L = ’L’,
U = ’U’)
LU-разложение
eigenvalues(A)
Собственные значения
jordan(A)
Жорданова форма квадратной матрицы
A
Функции для работы с векторными полями
Функция
Описание
grad(expr, var)
Градиент выражения
expr
повектору переменных
var
potential(f, var, ’F’)
Проверка существования потенциала
векторного поля
f
.
Если потенциал существует,
тоон будет задан в
F
diverge(f, var)
Дивергенция векторного поля
f
curl(f, var)
Ротор векторного поля
f
4.2
Решение уравнений и неравенств
Для решения уравнений в аналитическом виде используется функ-
ция
solve
:
> eqn := sqrt(ln(x))=2:
solve(eqn, x);
e
4
42
> eqn := x^2-3*x+2=0:
sol := solve(eqn, x):
subs(x=sol[1], eqn);
subs(x=-1, eqn);
0 = 0
6 = 0
> eqn := sin(x)=1/2:
solve(eqn, x);
π
6
Для того чтобы функция
solve
выдавала все решения уравне-
ния, глобальной переменной
_EnvAllSolutions
присваивают значе-
ние
true
:
> _EnvAllSolutions := true:
eqn := sin(x)=1/2:
solve(eqn, x);
1
6
π
+
2
3
π
_
B1
∼
+2
π
_
Z1
∼
В решениях могут встречаться следующие обозначения: _
Z
— це-
лое число, _
N N
— целое неотрицательное число, _
B
—
0
или
1
. При
решении систем уравнений они и список переменных задаются как мно-
жества. Функция
assign
обеспечивает присваивание переменным зна-
чений, полученных в результате решения уравнения или системы:
> eqns := {x*y=2, x+y=3}:
sol := solve(eqns, {x, y}):
[x, y];
assign(sol):
[x, y];
unassign(’x’, ’y’):
[x, y];
[
x, y
]
[1
,
2]
[
x, y
]
43
Для решения неравенств в аналитическом виде, как и для уравне-
ний, используется функция
solve
:
> eqn := sqrt(ln(x))<2:
solve(eqn, x);
RealRange
1
,
Open(e
4
)
> eqns := {x^2+2*x<=1, x>=0}:
allvalues(solve(eqns, x));
{
0
≤
x, x
≤
√
2
−
1
}
Для решения уравнений в численном виде используется функция
fsolve
:
> f := x -> x^4-4*x^3+2*x^2-4*x+1:
fsolve(f(x), x);
0
.
2679491924
,
3
.
732050808
Функция
fsolve
позволяет задавать интервал, на котором ищется
решение, а также искать ко рни по лино ма в ко мплексно й фо рме:
> f := x -> x^4-4*x^3+2*x^2-4*x+1:
fsolve(f(x), x=2..4);
3
.
732050808
> fsolve(f(x), x, complex);
−
1
. I,
1
. I,
0
.
2679491924
,
3
.
732050808
Аналогично решаются системы уравнений:
> f := (x, y) -> sin(x+y)-exp(x)*y:
g := (x, y) -> x^2-y-2:
fsolve({f(x,y), g(x,y)}, {x=0, y=0});
{
x
=
−
0
.
6687012050
, y
=
−
1
.
552838698
}
Для решения уравнений в целых числах используется функция
isolve
:
> eqn := x*y=1:
isolve(eqn);
{
x
= 1
, y
= 1
}
,
{
x
=
−
1
, y
=
−
1
}
44
> eqn := 2*x+3*y=5:
isolve(eqn);
{
x
= 1
−
3
_
Z
1
, y
= 1 + 2
_
Z
1
}
Для решения рекуррентных уравнений используется функция
rsolve
:
> eqn := {f(n)=n*f(n-1), f(0)=1}:
rsolve(eqn, f);
Γ(
n
+ 1)
> eqn := {F(n+2)=F(n+1)+F(n), F(0)=0, F(1)=1}:
rsolve(eqn, F);
√
5
1
2
+
√
5
2
n
5
−
√
5
1
2
−
√
5
2
n
5
4.3
Дифференцирование функций
Вычисление пределов функций
Для вычисления пределов функций используется функция
limit
:
> y := x -> (tan(x)-x)/(x-sin(x)):
Limit(y(x), x=0) = limit(y(x), x=0);
lim
x
→
0
tan(
x
)
−
x
x
−
sin(
x
)
= 2
> y := x -> (sin(x)/x)^(6/(x^2)):
Limit(y(x), x=0) = limit(y(x), x=0);
lim
x
→
0
sin(
x
)
x
6
x
2
= e
(
−
1)
> y := x -> cot(x):
Limit(y(x), x=0, right) = limit(y(x), x=0, right);
lim
x
→
0+
cot(
x
) =
∞
> Limit(y(x), x=0, left) = limit(y(x), x=0, left);
lim
x
→
0
−
cot(
x
) =
−∞
45