Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
разложения | Учебники

Записи с меткой «разложения»

Примеры матричных операций с применением пакета LinearAlgebra

Примеры матричных операций с применением пакета LinearAlgebra
Применение алгоритмов NAG особенно эффективно в том случае, когда используется встроенная в современные микропроцессоры арифметика чисел с плавающей запятой. С помощью специального флага такую арифметику можно отключать или включать:
> UseHardwareFloats := false; # use software floats
UseHardwareFloats :=false 
> UseHardwareFloats := true: # default behaviour
UseHardwareFloats :=true
Матрицы в новом пакете линейной алгебры могут задаваться в угловых скобках, как показано ниже:

После этого можно выполнять с ними типовые матричные операции. Например, можно инвертировать (обращать) матрицы:

Обратите внимание, что Maple 15 теперь выдает информационные сообщения о новых условиях реализации операции инвертирования матриц с вещественными элементами, и в частности об использовании алгоритмов NAG и арифметики, встроенной в сопроцессор. (
Следующий пример иллюстрирует создание двух случайных матриц Ml и М2 и затем их умножение:

Параметр inplace в функции умножения обеспечивает помещение результата умножения матриц на место исходной матрицы Ml — излюбленный прием создателей быстрых матричных алгоритмов NAG. Поскольку матрицы Ml и М2 за- -даны как случайные, то при повторении этого примера результаты, естественно, будут иными, чем приведенные.
Следующий пример иллюстрирует проведение хорошо известной операции/ LU-разложения над матрицей М, созданной функцией Matrix:

Конечной целью большинства матричных операций является решение систем линейных уравнений. Для этого пакет LinearAlgebra предлагает великое множество методов и средств их реализации. Мы ограничимся простым примером одновременного решения сразу трех систем уравнений. Дабы не загромождать книгу массивными выражениями, ограничимся решением систем из двух линейных уравнений, матрица коэффициентов у которых одна, а векторы свободных членов разные. Ниже показан пример решения такой системы:
 

На этом, учитывая ограниченный объем книги, мы завершаем обзор пакета LmearAlgebra. Читатель, познающий или знающий методы линейной алгебры, может опробовать в работе любые функции этого пакета самостоятельно или познакомиться со множеством примеров, размещенных в справочной системе Maple 15. Возможности пакетов linalg и LinearAlgebra удовлетворят самых требовательных специалистов в этой области математики. 

Пакет решения задач линейной алгебры linalg

Пакет решения задач линейной алгебры linalg
Состав пакета linalg
Несомненно, что уникальной возможностью системы Maple 15, как и других систем компьютерной алгебры, является возможность решения задач линейной алгебры в символьном (формульном, аналитическом) виде. Однако такое решение представляет скорее теоретический, чем практический интерес, поскольку даже при небольших размерах матриц (уже при 4-5 строках и столбцах) символьные результаты оказываются очень громоздкими и труднообозримыми. Они полезны только при решении специфических аналитических задач, например с разреженными матрицами, у которых большинство элементов имеют нулевые значения.
Поэтому разработчики Maple 15 были вынуждены реализовать в своей системе численные методы решения задач линейной алгебры, которые широко используются в основных сферах ее приложения — математическом моделировании систем и устройств, расчетах в электротехнике, механике, астрономии и т. д.
В ядро Maple 15, как отмечалось, введены очень скромные и минимально необходимые средства для решения задач линейной алгебры. Основной упор в их реализации сделан на подключаемые пакеты. Основным из них, унаследованным от предшествующих реализаций системы, является пакет решения задач линейной алгебры Unalg. Это один из самых обширных и мощных пакетов в области решения задач линейной алгебры. Он содержит свыше ста функций:
> with(linalg); 
Warning, the names fibonacci, inverse and multiply have been redefined Warning, the protected names norm and trace have been redefined and unprotected[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldim, colspace, colspan, companion, concat, cond, copyinto, crossprod, curl, definite, delcols, delrows, det, diag, diverge, dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects, entermatrix, equal, exponential, extend, ffgausselimfifibonacci,forwardsub,frobenius, gausselim, gaussjord, geneqns, genmatrix, grad, hadamard, hermite, hessian, hilbert,htranspose, thermite, indexfunc, innerprod, intbasis, inverse, ismith, issimilar, iszerojacobian, Jordan, kernel, laplacian, leastsqrs, linsolve,matadd, matrix, minor, minpoly, mulcol, /им/row,multiply, norm, normalize, nullspace, orthog, permanent, pivot, potential, randmatrix, randvector, rank, ratform, row, rowdim, rowspace, rowspan, rref, scalarmul, singularvals, smith, stackmatrix, submatrix, subvector, sumbasis, swapcol, swaprow, Sylvester, toeplitz, trace, transpose, vandermonde, vecpotent, vectdim, vector, wronskian] 
Ниже указано назначение тех функций пакета linalg, которые подробно не описаны:

  •  addcol — добавляет к одному из столбцов другой столбец, умноженный на некоторое число;
  •  addrow — добавляет к одной из строк другую строку, умноженную на некоторое число;
  •  angle — вычисляет угол между векторами;
  •  augment — объединяет две или больше матриц по горизонтали;
  •  backsub — реализует метод обратной подстановки при решении системы линейных уравнений (см. также forwardsub);
  •  band — создает ленточную матрицу;
  •  basis — находит базис векторного пространства;
  •  bezout — создает Bezout-матрицу двух полиномов; . г
  •  BlockDiagonal — создает блок-диагональную матрицу;
  •  blockmatrix — создает блок-матрицу;
  •  cholesky — декомпозиция Холесского для квадратной положительно определенной матрицы;
  •  charmat — создает характеристическую матрицу (charmat(M,v) — матрица, вычисляемая как v E-M);
  •  charpoly — возвращает характеристический полином матрицы;
  •  colspace — вычисляет базис пространства столбцов;
  •  colspan — находит базис линейной оболочки столбцов матрицы;
  •  companion — вычисляет сопровождающую матрицу, ассоциированную с полиномом;
  •  cond — вычисляет число обусловленности матрицы (cond(M) есть величина norm(M) norm(М-1);
  •  curl — вычисляет ротор вектора;
  •  definite — тест на положительную (отрицательную) определенность матрицы;
  •  diag — создает блок-диагональную матрицу;
  •  diverge — вычисляет дивергенцию векторной функции;
  •  eigenvals — вычисляет собственные значения матрицы;
  •  eigenvects — вычисляет собственные векторы матрицы;
  •  equal — определяет, являются ли две матрицы равными;
  •  exponential — создает экспоненциальную матрицу;
  •  ffgausselim — свободное от дробей Гауссово исключение в матрице;
  •  fibonacci — матрица Фибоначчи;
  •  forwardsub — реализует метод прямой подстановки при решении системы линейных уравнений (например, для матрицы L и вектора b
  •  forwardsub(L, b) возвращает вектор решения х системы линейных уравнений L-x=b);
  •  frobenius — вычисляет форму Фробениуса (Frobenius) матрицы;
  •  gausselim — Гауссово исключение в матрице;
  •  gaussjord — синоним для rref (метод исключения Гаусса—Жордана);
  •  geneqns — генерирует элементы матрицы из уравнений;
  •  genmatrix — генерирует матрицу из коэффициентов уравнений;
  •  grad — градиент векторного выражения;
  •  GramSchmidt — вычисляет ортогональные векторы;
  •  hadamard — вычисляет ограничение на коэффициенты детерминанта;
  •  hessian — вычисляет гессиан-матрицу выражения;
  •  hilbert — создает матрицу Гильберта;
  •  htranspose — находит эрмитову транспонированную матрицу;
  •  ihermite — целочисленная эрмитова нормальная форма;
  •  indexfunc — определяет функцию индексации массива;
  •  Innerprod — вычисляет векторное произведение;
  •  Intbasis — определяет базис пересечения пространств;
  •  ismith — целочисленная нормальная форма Шмитта;
  •  iszero — проверяет, является ли матрица ноль-матрицей;
  •  jacobian —’ вычисляет якобиан векторной функции;
  •  JordanBlock — возвращает блок-матрицу Жордана;
  •  kernel — находит базис ядра преобразования, соответствующего данной матрице;
  •  laplacian — вычисляет лапласиан;
  •  leastsqrs — решение уравнений по методу наименьших квадратов;
  •  linsolve — решение линейных уравнений;
  •  LudeComp — осуществляет LU-разложение;
  •  minpoly — вычисляет минимальный полином матрицы;
  •  mulcol — умножает столбец матрицы на заданное выражение;
  •  mulrow — умножает строку матрицы на заданное выражение;
  •  multiply — перемножение ‘матриц или матрицы и вектора;
  •  normalize — нормализация вектора;
  •  orthog — тест на ортогональность матрицы;
  •  permanent — вычисляет перманент матрицы — определитель, вычисляемый без перестановок;
  •  pivot — вращение относительно элементов матрицы;
  •  potential — вычисляет потенциал векторного поля;
  •  Qrdecomp — осуществляет QR-разложение;
  •  randmatrix — генерирует случайные матрицы;
  •  randvector — генерирует случайные векторы;
  •  ratform — вычисляет рациональную каноническую форму;
  •  references — выводит список основополагающих работ по линейной алгебре;
  •  rowspace — вычисляет базис пространства строки;
  •  rowspan — вычисляет векторы охвата для места столбца;
  •  rref — реализует преобразование Гаусса-Жордана матрицы;
  •  scalarmul — умножение матрицы или вектора на заданное выражение;
  •  singval — вычисляет сингулярное значение квадратной матрицы;
  •  singularvals — возвращает список сингулярных значений квадратной матрицы;
  •  smith — вычисляет Шмиттову нормальную форму матрицы;
  •  submatrix — извлекает указанную подматрицу из матрицы;
  •  subvector — извлекает указанный вектор из матрицы;
  •  sumbasis — определяет базис объединения системы векторов;
  •  swapcol — меняет местами два столбца в матрице;
  •  swaprow — меняет местами две строки в матрице;
  •  sylvester — создает матрицу Сильвестра из двух полиномов;
  •  toeplitz — создает матрицу Теплица;
  •  trace — возвращает след матрицы;
  •  vandermonde — создает вандермондову матрицу;
  •  vecpotent — вычисляет векторный потенциал;
  •  vectdim — определяет размерность вектора;
  •  wronskian — вронскиан векторных функций.

Ниже мы рассмотрим более подробно наиболее часто используемые функции из этого пакета. С деталями синтаксиса (достаточно разнообразного) для каждой из указанных функций можно ознакомиться в справочной системе Maple. далее…

Прямое и обратное преобразования Лапласа

Прямое и обратное преобразования Лапласа
Прямое преобразование Лапсаса заключается в переводе некоторой функции времени f(t) в операторную форму F(p). Это преобразование означает вычисление интеграла

Для осуществления прямого преобразования Лапласа Maple 15 имеет функцию
laplace(expr,t,p)
Здесь ехрr— преобразуемое выражение, t — переменная, относительно которой записано ехрr, и р — переменная, относительно которой записывается результат преобразования.
Обратное преобразование Лапласа означает переход от функции F(p) к функции (t) с помощью формулы

 

Для вычисления этого интеграла служит функция:
invlaplace(expr,p, t)
где ехрr — выражение относительно переменной р, t — переменная, относительно которой записывается результирующая зависимость. Оба преобразования широко применяются в практике научно-технических вычислений и отражают суть операторного метода. При этом прямое преобразование создает изображение  а обратное —оригинал функции. Ниже приведены примеры применения прямого и обратного преобразований Лапласа:

Нетрудно заметить, что в данном случае последовательное применение прямого, а затем обратного преобразования восстанавливает исходную функцию sin(t) + acos(t).
Прямое и обратное преобразования Фурье
Прямое преобразование Фурье преобразует функцию времени f(t) в функцию частот и заключается в вычислении следующей интегральной функции:

Оно реализуется следующей функцией пакета интегральных преобразований inttrans:
fourier(expr,t,w)
Здесь ехрr — выражение (уравнение или множество), t — переменная, от которой зависит ехрr, и w — переменная, относительно которой записывается результирующая функция. Обратное преобразование Фурье задается вычислением интеграла:

Оно фактически переводит представление сигнала из частотной области во временную. далее…

Пакет для работы с суммами sumtools

Пакет для работы с суммами sumtools
Состав пакета sumtools
Этот инструментальный пакет предназначен для работы со специальными суммами. Он содержит указанные ниже функции:
> with(suintools);
[Hypersum, Sumtohyper, extended_gosper, gosper, hyperrecursion, hypersum, hyperterm, simpcomb, sumrecursion, sumtohyper]
Назначение функций данного пакета перечислено ниже:

  •  hypersum(U, L, z, n) и Hypersum(U, L, z, n) — вычисление гиперсумм;
  •  sumtohyper(f, k) и Sumtohyper(f, k) — преобразование сумм в гиперсуммы;
  •  extended_gosper(f, k), extended_gosper(f, k=m..n) и extended_gosper(f, k, j) — реализация расширенного алгоритма Госпера;
  •  gosper(f, k) и gosper(f, k=m..n) — реализация алгоритма Госпера;
  •  hyperrecursion(U, L, z, s(n)) — реализация гиперрекурсионного алгоритма;
  •  hyperterm(U, L, z, k) и Hyperterm(U, L,z, k) — ввод гипергеометрического терма.

Работа с пакетом sumtools
Приведем примеры на применение этих функций:
 
Из этих примеров применение функций данного пакета достаточно очевидно.
Пакет реализации степенных разложений powseries
Состав пакета powseries
Степенные разложения часто используются в математических расчетах для приближенного представления разнообразных функций и обеспечения единообразия такого представления. В пакете powseries сосредоточены расширенные средства по реализации таких разложений. Они представлены 22 функциями:
> with(powseries);
[compose, evalpow, inverse, multconst, multiply, negative, pawadd, powcos, powcreate, powdijff, powexp, powint, powlog, powpoly, powsin, powsolve, powsqrt, quotient, reversion, subtract, template, tpsform ]
Ниже представлено определение этих функций:

  •  compose(а,b) — объединяет ряды а и b;
  •  evalpow(expr) — вычисляет выражение ехрr и возвращает его в виде ряда;
  •  inverse(р) — инвертирует ряд р;
  •  mu1tconst(p,const) — умножает ряд р на константу const; ,
  •  multiply(a,b) — умножает ряд а на ряд b;
  •  negative(p) — возвращает аддитивный, обратный по отношению к р ряд;
  •  powadd(a,b,…) — складывает ряды а, b, …;
  •  powcreate(expr) — создает ряд для выражения ехрr;
  •  powpoly(pol ,var) — создает ряд для полинома pol по переменной van;
  •  powsolve(sys) — создает ряд для решения дифференциальных уравнений sys;
  •  quotient(a,b) — возвращает частное для а и b в виде ряда;
  • reversion(a) — дает обратное к композиции разложение ряда а;
  •  subtract(а,b) — дает разность рядов а и b.

В выражении ехрr могут использоваться операторы +, -, *, / и  ^. С ними могут комбинироваться встроенные функции и функции пользователя, например /(g). Кроме того, могут использоваться следующие функции:

Powexp

powi nv

powlog

powneg

powrev

Powdiff

powi nt

powquo

powsub

powcos

Powtan

powsec

powcsc

powcot

powsinh

Powcosh

powtanh

powsech

powcsch

powcot h.

Powsqrt

powadd

multiply

 

Примеры применения пакета powseries
Назначение большинства этих функций очевидно из их названий — они возвращают соответствующую функцию (указанную после слова pow в имени) в виде разложения в ряд или полинома. Например, powexp раскладывает выражения с экспоненциальными функциями в ряд.
Получаемые функциями ряды представляются в специальном формате. Поэтому для их применения в обычном виде необходимо использовать функцию tpsform в следующих видах:

  •  tpsform(p, var, order) — преобразует ряд р в обычную форму с заданием порядка order;
  •  tpsform(p, var) — преобразует ряд р в обычную форму с порядком, заданным переменной Order.

Здесь р — имя степенного ряда, var.— переменная, относительно которой записан ряд, order — порядок ряда. Если параметр order не указан, используется значение глобальной переменной Order. Ниже даны примеры, иллюстрирующие технику работы со степенными разложениями:

Применение функций этого пакета достаточно просто и прозрачно, так что заинтересованный читатель может сам опробовать на примерах работу тех функций, которые не были использованы в приведенных примерах.

далее…

Дифференциальные уравнения с кусочными функциями

Дифференциальные уравнения с кусочными функциями
Функции кусочного типа широко используются при математическом моделировании различных физических объектов и систем. В основе такого моделирования обычно лежит решение дифференциальных уравнений, описывающих поведение объектов и систем. Покажем возможность применения кусочных функций для решения дифференциальных уравнений. 
Ниже представлено задание дифференциального уравнения первого порядка, содержащего кусочную функцию:

Используя функцию dsolve, выполним решение этого дифференциального уравнения:

Нетрудно заметить, что результат получен также в форме кусочной функции, полностью определяющей решение на трех интервалах изменениях. Приведем пример решения дифференциального уравнения второго порядка с кусочной функцией:

В конце этого раздела приведем пример решения нелинейного дифференциального уравнения Риккати с кусочной функцией:

В ряде случаев желательна проверка решения дифференциальных уравнений. Ниже показано, как она делается для последнего уравнения:

ПРИМЕЧАНИЕ 
Как видно из приведенных достаточно простых и наглядных примеров, результаты решения дифференциальных уравнений с кусочными функциями могут быть довольно громоздкими. Это, однако, не мешает эффективному применению функций данного класса.

Структура неявного представления дифференциальных уравнений — DESol
В ряде случаев иметь явное представление дифференциальных уравнений нецелесообразно. Для неявного их представления в Maple 15 введена специальная структура:
DESol(expr.vars)
где exprs — выражение для исходной системы дифференциальных уравнений, vars — заданный в виде опции список переменных (или одна переменная). далее…

Решение ОДУ первого порядка

Решение ОДУ первого порядка
Начнем рассмотрение практических примеров с решения одиночных обыкновенных дифференциальных уравнений (ОДУ) первого порядка:

Следующие примеры иллюстрируют возможность решения одного и того же дифференциального уравнения ode_L разными методами:

Объем данной книги не позволяет остановиться на всех тонкостях аналитического решения дифференциальных уравнений. Множество примеров такого решения дано в справочной базе данных Maple,. 7- К ней нужно обратиться в случае, если решение того или иного дифференциального уравнения выходит за рамки учебного курса.
Решение дифференциальных уравнений второго порядка
Здесь видно, что для задания производной используется ранее рассмотренная функция diff. С помощью символа $ можно задать производную более высокого порядка. Ниже представлено решение двух дифференциальных уравнений второго порядка:
 

Обратите внимание на решение второго из этих уравнений. далее…