ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 01.04.2021

Просмотров: 1358

Скачиваний: 16

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Функции для работы с векторами

Функция

Описание

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


background image

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


background image

> 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


background image

Для решения неравенств в аналитическом виде, как и для уравне-

ний, используется функция

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


background image

> 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