|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Примеры матричных операций с применением пакета LinearAlgebraПрименение алгоритмов NAG особенно эффективно в том случае, когда используется встроенная в современные микропроцессоры арифметика чисел с плавающей запятой. С помощью специального флага такую арифметику можно отключать или включать: > UseHardwareFloats:= false; # use software floats Use Hardware Floats:= false > UseHardwareFloats:= true; # default behaviour UseHardwareFloats:= true Матрицы в новом пакете линейной алгебры могут задаваться в угловых скобках, как показано ниже: > М1:=<<1|2>,<4|5>>; М2:=<<1|2.>, <4|5>>; После этого можно выполнять с ними типовые матричные операции. Например, можно инвертировать (обращать) матрицы: > М1^(-1); М2^(-1); MatrixInverse: "calling external function" MatrixInverse: "NAG" hw_f07adf MatrixInverse: "NAG" hw_f07ajf Обратите внимание, что Maple теперь выдает информационные сообщения о новых условиях реализации операции инвертирования матриц с вещественными элементами и, в частности, об использовании алгоритмов NAG и арифметики, встроенной в сопроцессор. Следующий пример иллюстрирует создание двух случайных матриц M1 и М2 и затем их умножение: > M1:=RandomMatrix(2,3); М2:=RandomMatrix(3,3); Multiply(M1,M2,'inplace'); M1;
Параметр inplace в функции умножения обеспечивает помещение результата умножения матриц на место исходной матрицы М1 — излюбленный прием создателей быстрых матричных алгоритмов NAG. Поскольку матрицы M1 и М2 заданы как случайные, то при повторении этого примера результаты, естественно, будут иными, чем приведенные. Другой пример иллюстрирует проведение хорошо известной операции LU-разложения над матрицей М, созданной функцией Matrix: > M:=Matrix([[14,-8,1],[-11,-4,18],[3,12,19]], datatype=float); LUDecomposition(М,output=['NAG'],inplace); ipiv:=%[1]; M; LUDecomposition: "calling external function" LUDecomposition: "NAG" hw_f07adf Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |