• Регистрация
Н/Д
Н/Д 0.00
н/д

Список функций SNAE Toolbox

15.10.2019

В этом разделе описаны функции, составляющие основу пакета SNAE и реализованные в виде M-файлов. Имена файлов совпадают с именами соответствующих функций. Каждый файл содержит комментарии с указанием назначения и правил обращения к данной функции. Функции расположены в алфавитном порядке.

Список функций SNAE Toolbox: Оглавление

В этом разделе описаны функции, составляющие основу пакета SNAE и реализованные в виде M-файлов. Имена файлов совпадают с именами соответствующих функций. Каждый файл содержит комментарии с указанием назначения и правил обращения к данной функции. Функции расположены в алфавитном порядке.

  • basisx, basisy - определение структуры базиса 

  • demosnae - решение СНАУ от двух переменных

  • dimm - вычисление характеристик матрицы Mt

  • formm - формирование и вывод на экран характеристик матриц Mt

  • ker - вычисление нуль-пространства СНАУ

  • kroneck - вычисление характеристик структуры Кронекера

  • numb - вычисление номера столбца матрицы

  • pencil - вычисление матриц пучка

  • permut - вычисление строки перестановок 

  • poleq - вычисление компонентов матрицы вспомогательной СНАУ

  • polsol - формирование вспомогательной СНАУ

  • pr_table - формирование таблицы RGSVD-разложения

  • pr_tablm - формирование таблицы характеристик матрицы Mt

  • reduc - редукция числа переменных СНАУ

  • rgsvd - вычисление RGSVD-разложения для пучка матриц

  • rmovcmpl - удаление из вектора комплексных элементов

  • rmovel - удаление совпадающих элементов вектора 

  • rmovstr - удаление совпадающих строк матрицы

  • solsnae1 - решение СНАУ от одной переменной

  • solsnae2 - решение СНАУ от двух переменных

  • snae1 - решение СНАУ от одной переменной

  • snae2 - решение СНАУ от двух переменных

  • solssp, dsolssp - решение системы спектральных задач

  • ssnae2, dsnae2 - решение СНАУ от двух переменных

  • struct - вычисляет структуру Кронекера прямоугольного пучка

  • trunc - обработка и усечение вектора решений 

  • wr3pos - подсчет количества цифр в числе

 

Наверх

basisx, basisy - определение структуры базиса

Синтаксис:

XN = basisx(sx, sy)

YN = basisy(sx, sy) 

Описание:

Функция XN = basisx(sx, sy) формирует представление базиса [x image003.gif (186 bytes) y] для СНАУ от двух переменных в виде строки символов.

Входные переменные:

  • sx - максимальная степень переменной x;

  • sy - максимальная степень переменной y.

Выходные переменные:

  • XN - строка, характеризующая структуру базиса СНАУ.

Функция YN = basisx(sx, sy) формирует представление базиса [y image003.gif (186 bytes) x] для СНАУ от двух переменных в виде строки символов.

Входные переменные:

  • sx - максимальная степень переменной x;

  • sy - максимальная степень переменной y.

Выходные переменные:

YN - строка, характеризующая структуру базиса СНАУ.

Пример:

sx = 2; sy = 1;
XN = basis(sx, sy)
XN = [xxy xx xy x y]
sx = 2; sy = 1
YN = basis(sx, sy)
YN = [yxx yx y xx x 1] 

Используемые функции: нет.

 

Наверх

demosnae - решение СНАУ от двух переменных

Синтаксис:

demosnae

Описание:

Демонстрационный Script-файл, предназначенный для решения систем нелинейных алгебраических уравнений от двух переменных.

% ********************************************************

% Решение 

% систем нелинейных алгебраических уравнений (СНАУ)

% от двух переменных:

% Axy*[x**y] = 0, 

% ******************************************************** 

% Axy - матрица размера p*N;

% N - число столбцов матрицы Axy;

% x, y - вектора алгебраической структуры

% sx jx

% [ x*..*x ... x*..*x ... 1 ],

% sy jy

% [ y*..*y ... y*..*y ... 1 ]

% jx, jy - степени переменных;

% sx, sy - максимальные степени переменных;

% x**y - произведение Кронекера.

 

Наверх

dimm - вычисление характеристик матрицы Mt

Синтаксис: 

[mt, Nt, Rt, mu, err] = dimm(a, b, t)

Описание:

Функция [mt, Nt,  Rt, mu, err] = dimm(a, b, t) вычисляет размерности образа, ядра и число столбцов матрицы

размера m*(t+2) x n*(t+1), который не должен превышать при использовании версии системы MATLAB Student Edition 108 x 108 элементов.

Входные переменные:

  • a, b - матрицы пучка D(x)=a - x*b;

  • t - степень полиномиального решения.

Выходные переменные:

  • mt - число строк матрицы Mt;

  • Nt - число столбцов матрицы Mt;

  • Rt - размерность образа dim.Im(Mt) (ранг матрицы Mt);

  • mu - размерность ядра dim.Ker(Mt). 

Используемые функции:

MATLAB: rank, eval, size, zeros.

Пакет СНАУ: нет.

 

Наверх

formm - формирование и вывод на экран характеристик матриц Mt

Синтаксис:

[mutx, muvy] = formm(Dx, Dy, alrx, alry) 

Описание:

Функция [mutx, muvy] = formm(Dx, Dy, alrx, alry) выводит на экран две таблицы характеристик матриц M(t & v), для Dx и Dy соответственно, вида: 

s m n rnk mu alr

_____________________________

1 16 10 10 0 0

2 24 20 20 0 0

3 32 30 30 0 0 

4 40 40 40 0 0 

5 48 50 48 2 2 

_____________________________

Входные переменные:

  • Dx, Dy - сингулярные пучки ax - x*bx, ay - y*by;

  • alrx, alry - информационные векторы структуры Кронекера для пучков Dx, Dy 

Используемые функции:

MATLAB: нет.

Пакет СНАУ: dimm, pr_tablm.

 

Наверх

ker - вычисление нуль-пространства СНАУ

Синтаксис:

q0 = ker(a, st, meps)

Описание:

Функция q0 = ker(a, st, meps) вычисляет нуль-пространство (ядро) q0=ker(a) прямоугольной матрицы на основе SVD- или QR-разложения; если ядро отсутствует, то q0=[ ].

Входные переменные:

  • а - матрица размера mа*nа (mа<nа);

  • st - строковая переменная для указания используемого алгоритма разложения (по умолчанию, st='svd');

  • meps - точность (по умолчанию, 1е-8).

Выходные переменные:

  • q0 - нуль-пространство матрицы А размера na*(na-rank(a)).

Используемые функции:

MATLAB: svd, qr, rank.

Пакет СНАУ: нет.

 

Наверх

kroneck - вычисление характеристик структуры Кронекера

Синтаксис:

Nx = kroneck(a, b, meps)

Описание:

Функция Nx = kroneck(a, b, meps) вычисляет характеристики структуры Кронекера для прямоугольного пучка матриц.

Входные переменные:

  • a, b - компоненты прямоугольного пучка;

  • meps - точность оценки ранга.

Выходные переменные:

  • Nx = [Nl Nr N0 Ni] -параметры структуры Кронекера. 

Используемые функции: 

MATLAB: nargin, rank. 

Пакет SNAE: нет.

 

Наверх

numb - вычисление номера столбца матрицы

Синтаксис:

J = numb(jk, sk) 

Описание:

Функция J = numb(jk, sk) вычисляет номер столбца матрицы, соответствующий элементу базиса с лексикографическим упорядочением (базис Кронекера)

Входные переменные:

  • jk - вектор [j1...jn] значений степени переменных x1...хn;

  • sk - вектор [s1...sn] максимальных значений степеней переменныx;

Выходные переменные:

  • J - номер столбца в матрице Ax.

Используемые функции: нет.

 

Наверх

pencil - вычисление матриц пучка

Синтаксис:

[ax, bx, Nx] = pencil(q0, sx, meps)

Описание:

Функция [ax,bx,Nx]=pencil(q0,sx,meps) вычисляет матрицы пучка, если известно ядро q0x или q0y.

Входные переменные:

  • qo - ядро матрицы Ax исходной СНАУ;

  • sx - максимальная степень переменной x;

  • meps - точность вычисления ранга, по умолчанию 1e-8.

Выходные переменные:

  • ax, bx - прямоугольные матрицы пучка D(x) = ax - x*bx;

  • Nx - мультииндекс структуры Кронекера {Nl Nr N0 Ni}.

Используемые функции:

MATLAB: rank, size, norm.

Пакет СНАУ: нет.

 

Наверх

permut - вычисление строки перестановок

Синтаксис:

P = permut(sx, sy, nv)

Описание:

Функция P = permut(sx, sy, nv) вычисляет cтроку перестановок элементов базиса при перемене местами переменных x и y.

Входные переменные:

  • sx - максимальная степень переменной x;

  • sy - максимальная степень переменной y;

  • nv - число элементов вектора свободных переменных v. 

Выходные переменные:

  • P - строка перестановок элементов базиса.

Используемые функции:

MATLAB: нет.

Пакет СНАУ: numb.

 

Наверх

poleq - вычисление компонентов матрицы вспомогательной СНАУ

Синтаксис:

Slx = poleq(a, b, t, n1, n2) 

Описание:

Функция Slx = poleq(a, b, t, n1, n2) вычисляет составляющие матрицы для вспомогательной СНАУ вида 

Входные переменные:

  • a, b - матрицы пучка D(x)=a-x*b;

  • t - степень полиномиального решения;

  • n1, n2 - диапазон столбцов, выделяемых из Slx.

Используемые функции

MATLAB: max, round, eval, size, zeros.

Пакет СНАУ: нет.

 

Наверх

polsol - формирование вспомогательной СНАУ

Синтаксис:

[Dflx, Dfly, alrlx, alrly] = polsol(Dx, Dy, t, v)

Описание:

Функция [Dflx, Dfly, alrlx, alrly] = polsol(Dx, Dy, t, v) формирует вспомогательную систему нелинейных уравнений на этапе вычисления полиномиальных решений.

Входные переменные:

  • Dx, Dy - сингулярные пучки ax - x*bx, ay - y*by;

  • t, v - степени полиномиальных решений по переменным x и y. 

Выходные переменные:

  • Dflx, Dfly - регулярные пучки вспомогательной СНАУ;

  • D0lx, D0ly - сингулярные пучки вспомогательной СНАУ.

Используемые функции:

MATLAB: length, rank, size.

Пакет СНАУ: ker, pencil, poleq, pr_table, struct.

 

Наверх

pr_table - формирование таблицы RGSVD-разложения

Синтаксис:

pr_table(nk, mk, alr, ali) 

Описание:

Функция pr_table(nk, mk, alr, ali) формирует на экране таблицу, связанную со структурой правых полиномиальных и бесконечных решений и являющуюся результатом RGSVD разложения пучка матриц:

k nk mk r0 r1 r2 r3 r4 r5 r6 J1 J2 J3 J4 J5 J6

1 2 2 0 0 

2 2 2 0 0 

3 2 1 1 0 

4 1 1 0 0 

5 1 1 0 0 

6 1 1 0 0 

7 1 0 1 

Входные переменные:

  • nk - вектор dim.Ker(a);

  • mk - вектор dim.Im(b);

  • alr - мультииндекс правых полиномиальных решений;

  • ali - мультииндекс структур элементарных делителей для бесконечных собственных значений.

Используемые функции:

MATLAB: int2str.

Пакет СНАУ: нет.

 

Наверх

pr_tablm - формирование таблицы характеристик матрицы Mt

Синтаксис:

pr_tablm(m, n, r, mu, alr)

Описание:

Функция pr_tablm(m, n, r, mu, alr) формирует на экране таблицу характеристик матрицы Mt следующего вида

s m n rnk mu alr

0 16 10 10 0 0

1 24 20 20 0 0

2 32 30 29 1 1

3 40 40 38 2 0

4 48 50 47 3 0

5 56 60 56 4 0

6 64 70 64 6 1

Входные переменные:

  • m - число строк матрицы Mt;

  • n - число столбцов матрицы Mt;

  • r - размерность образа dim.Im(Mt) (ранг матрицы Mt);

  • mu - размерность ядра dim.Ker(Mt);

  • alr - информационный вектор структуры Кронекера для пучка. 

Используемые функции:

MATLAB: size.

Пакет СНАУ: wr3pos.

 

Наверх

reduc - редукция числа переменных СНАУ

Синтаксис:

Ay = reduc(Axy, x, sx) 

Описание:

Функция Ay = reduc(Axy, x, sx) осуществляет редукцию числа переменных СНАУ путем подстановки найденного решения x. 

Входные переменные:

  • Axy - матрица СНАУ;

  • x - найденное решение;

  • sx - максимальная степень переменной x.

Выходные переменные:

  • Ay - редуцированная матрица СНАУ;

Используемые функции: 

MATLAB: max, size. 

Пакет СНАУ: нет.

 

Наверх

rgsvd - вычисление RGSVD-разложения для пучка матриц

Синтаксис:

[a2, b2, n, m] = rgsvd(a1, b1, meps) 

Описание:

Функция [a2, b2, n, m] = rgsvd(a1, b1, meps) вычисляет рекуррентное обобщенное сингулярное разложение для пары прямоугольных матриц. 

Входные переменные:

  • a1, b1 - прямоугольные матрицы пучка D1(x) = a1 - x*b1;

  • meps - точность вычисления ранга (по умолчанию, 1e-8).

Выходные переменные:

  • a2, b2 - прямоугольные матрицы пучка D2(x) после одного шага RGSVD-разложения;

  • n - размерность dim.Ker(a);

  • m - размерность dim.Im(b). 

Используемые функции:

MATLAB: rank, svd, size.

Пакет СНАУ: нет.

 

Наверх

rmovcmpl - удаление из вектора комплексных элементов

Синтаксис:

w = rmovcmpl(v)

Описание:

Функция w = rmovcmpl(v) удаляет из вектора v комплекснозначные элементы.

Входные переменные:

  • v - вектор с реальными и комплексными элементами

Выходные переменные:

  • w - вектор без комплексных элементов

Используемые функции

MATLAB: find.

 

Наверх

rmovel - удаление совпадающих элементов вектора

Синтаксис:

w = rmovel(v)

Описание:

Функция w = rmovel(v) удаляет из вектора v совпадающие элементы, формируя вектор w, не содержащий одинаковых элементов

Входные переменные:

  • v - исходный вектор.

Выходные переменные:

  • w - вектор, не содержащий одинаковых элементов.

Используемые функции: 

MATLAB: length, find. 

Пакет СНАУ: нет.

 

Наверх

rmovstr - удаление совпадающих строк матрицы

Синтаксис:

w = rmovstr(v) 

Описание:

Функция w = rmovstr(v) удаляет из матрицы V совпадающие строки, формируя матрицу W, не содержащую одинаковых строк.

Входные переменные:

  • v - исходная матрица.

Выходные переменные:

  • w - матрица, не содержащая одинаковых строк.

Используемые функции: 

MATLAB: length, find. 

Пакет СНАУ: нет.

 

Наверх

solsnae1 - решение СНАУ от одной переменной

Синтаксис:

solsnae1

Описание:

Демонстрационный Script-файл, предназначенный для решения нелинейных алгебраических уравнений и систем таких уравнений от одной переменной.

% ********************************************************

%

% Решение 

% систем нелинейных алгебраических уравнений (СНАУ)

% от одной переменной

% A*x = 0, 

%

% ******************************************************** 

% A - матрица размера p*N;

% N - число столбцов матрицы A, равное длине вектора x;

% x - вектор алгебраической структуры

% sx jx

% [ x*..*x ... x*..*x ... 1 ],

%

% jx - степень переменной;

% sx - максимальная степень переменной.

%

 

Наверх

solsnae2 - решение СНАУ от двух переменных

Синтаксис:

solsnae2

Описание:

Демонстрационный Script-файл, предназначенный для решения систем нелинейных алгебраических уравнений от двух переменных.

%

% ********************************************************

% Решение 

% систем нелинейных алгебраических уравнений (СНАУ)

% от двух переменных:

%

% Axy*[x**y] = 0, 

%

% ******************************************************** 

% Axy - матрица размера p*N;

% N - число столбцов матрицы Axy;

% x, y - вектора алгебраической структуры

% sx jx

% [ x*..*x ... x*..*x ... 1 ],

% sy jy

% [ y*..*y ... y*..*y ... 1 ]

% jx, jy - степени переменных;

% sx, sy - максимальные степени переменных;

% x**y - произведение Кронекера.

 

Наверх

snae1 - решение СНАУ от одной переменной

Синтаксис:

[x, err] = snae1(Ax)

Описание:

Функция [x, err] = snae1(Ax) решает нелинейные алгебраические уравнения и системы таких уравнений от одной переменной.

Входные переменные:

  • Ax - матрица коэффициентов СНАУ.

Выходные переменные:

  • x - решения СНАУ от одной переменной;

  • err - символьная переменная, принимающая значение 'none_solution', что означает отсутствие решения.

Используемые функции: 

MATLAB: null, size, length, eig, sort. 

Пакет СНАУ: pencil, struct.

 

Наверх

snae2 - решение СНАУ от двух переменных

Синтаксис: 

[x, y, err] = snae2(Axy, sx, sy) 

Описание:

Функция [x, y, err] = snae2(Axy, sx, sy) решает системы нелинейных алгебраических уравнений от двух переменных x и у.

Входные переменные:

  • Axy - матрица коэффициентов СНАУ;

  • sx - максимальная степень переменной x;

  • sy - максимальная степень переменной y.

Выходные переменные:

  • {x, y} - решения СНАУ;

  • err - строковая переменная, которая может принимать одно из двух значений:
    - 'Infinity' - количество решений бесконечно;
    - 'None_solution' - СНАУ не имеет решений или приводима.

Используемые функции: 

MATLAB: null. 

ППП СНАУ: pencil, solssp, reduc, rmovstr, snae1.

 

Наверх

solssp, dsolssp - решение системы спектральных задач

Синтаксис:

[x, y, class] = solssp(ax, bx, ay, by) 

[x, y, class] = dsolssp(ax, bx, ay, by) 

Описание:

Функция [x, y, class] = solssp(ax, bx, ay, by) решает следующую систему спектральных задач:

(ax - x*bx)*Rx = 0;

(ay - y*by)*Ry = 0;

[Rx -Ry][X Y]'= 0.

где

ax, bx, ay, ay - матрицы сингулярных пучков D(x), D(y), порожденные ker(A);

Rx, Ry - матрицы собственных векторов спектральных задач по переменным x, y;

X, Y - матрицы размера sy-(p-1)*d и sx-(p-d)*d;

d - дефект матрицы [Rx -Ry]. 

Функция [x, y, class] = dsolssp(ax, bx, ay, by) выполняет те же операции и предназначена для демонстрационной версии.

Входные переменные:

  • ax, bx, ay, by - сингулярные пучки матриц. 

Выходные переменные: 

  • [x y] - возможные пары решений СНАУ;

  • class - информационный вектор, указывающий принадлежность решения к одному из 4-х классов

Используемые функции:

MATLAB: нет.

Пакет СНАУ: struct, pr_table, dimm, poleq.

 

Наверх

ssnae2, dsnae2 - решение СНАУ от двух переменных

Синтаксис: 

[x, y, err] = ssnae2(Axy, P, sx, sy, nv) 

[x, y, err] = dsnae2(Axy, P, sx, sy, nv) 

Описание:

Функция [x, y, err] = ssnae2(Axy, P, sx, sy, nv) решает системы нелинейных алгебраических уравнений от двух переменных x и у.

Функция [x, y, err] = dsnae2(Axy, P, sx, sy, nv) выполняет те же операции и предназначена для демонстрационной версии.

Входные переменные:

  • Axy - матрица коэффициентов СНАУ;

  • Р - матрица перестановок;

  • sx - максимальная степень переменной x;

  • sy - максимальная степень переменной y;

  • nv - длина вектора свободных переменных.

Выходные переменные:

  • {x,y} - пары решений СНАУ;

  • err - символьная переменная, принимающая значения:
    - infinity - СНАУ имеет бесчисленное множество решений или приводима;
    - none_solution - СНАУ не имеет решений.

Используемые функции:

MATLAB: null. 

Пакет СНАУ: pencil, solssp, reduc, snae1.

 

Наверх

struct - вычисляет структуру Кронекера прямоугольного пучка

Синтаксис:

[alr, af, bf, nk, mk, ali] = struct(a, b) 

Описание:

Функция [alr, af, bf, nk, mk, ali] = struct(a, b) вычисляет структуру Кронекера прямоугольного пучка матриц.

Входные переменные:

  • a, b - прямоугольные матрицы пучка D(x) = a - x*b.

Выходные переменные:

  • alr - мультииндекс правых полиномиальных решений;

  • af, bf - регулярная часть ядра D(x);

  • nk - вектор dim.Ker(a);

  • mk - вектор dim.Im(b) ;

  • ali - мультииндекс числа структур элементарных делителей для бесконечных собственных значений.

Используемые функции:

MATLAB: rgsvd, size, norm.

Пакет СНАУ: нет.

 

Наверх

trunc - обработка и усечение вектора решений

Синтаксис:

tx = trunc(x)

Описание:

Функция tx = trunc(x) обрабатывает вектор x, округляя значения до действительных или чисто мнимых, удаляя элементы типа NAN и присваивая элементам, превосходящим 1012, значения inf.

Входные переменные:

  • x - вектор возможных решений СНАУ.

Выходные переменные:

  • tx - преобразованный вектор.

Используемые функции: нет.

 

Наверх

wr3pos - подсчет количества цифр в числе

Синтаксис:

CHAR3 = wr3pos(id) 

Описание:

Функция CHAR3 = wr3pos(id) формирует строку, содержащую информацию о количестве цифр в выводимом числе.

Используемые функции:

MATLAB: int2str.

Пакет СНАУ: нет.

Теги

    15.10.2019

    Комментарии