Дьяконов В.П. Maple 9.5 и 10 в математике, физике и образовании (1185901), страница 79
Текст из файла (страница 79)
9.5.7. Пакет создания внешних программ Ехтегпа!Са1!1п9 Пакет Ех(егпа(СаП!пя служит для создания внешних программ, записанных на языке Мар!е (или С++). Состав пакета представлен небольшим числом функций: Ое()пеЕХ(егпа((1п,ех(!(Ь) — используя функцию с!ейпе ех1егпа! Мар!е задает внешнюю функцию гп в таблице функций внешних библиотек ехй1Ь; Ех(еп)ай.(Ьгагу)чап)е(Ьавепап)е. ргес)аюп) — задает имя Ьавепап)е функции и точность вычислений ргесвзюп для функции внешней библиотеки.
Детальное знакомство с этим пакетом мы опускаем. Заинтересованный читатель найдет нужные сведения в справке по этому пакету. 1).6. Пакет растиреиия Б)и(1елг РасИайе 9.5.6. Пакет работы с документами УУогкв))еет !Сотраге, Солгегг, Рйр(ау, Рпрlаугле, Ргон~51пщ, КеадН!е, То3тгищ, И'г(ге)Ие, я ог( злеег! Пакет обеспечивает сравнение документов, различные преобразования их, запись и считывание файлов документов и другие возможности. Детали применения функций пакета можно найти в справке. 9.6. Пакет расширения 8$ибеп1 Рас!саце 9.6.1.
Состав пакета Зтцг[епт Раскаяе и его идеология Одним из самых серьезных усовершенствований системы Мар)е 9 стал необычный пакет расширения Яц([еп( Ряс[(аде. Он состоит из трех частей — подпакетов: ° Са[сц!цз! — пакет вычислений с функциями одной переменнои для студентов первого курса; ° [.!пеаг А!деЬга — расширенный пакет по линейной алгебре; ° Ргеса!сц1цв — пакет вычислений по стандартному курсу математики.
В принципе, пакет Яц([еп( Рас[(аяе не имеет чего-либо принципиально нового, по сравнению со средствами математических вычислении, описанными в предшествуюших главах. Однако подборка его средств наилучшим образом соответствует задачам обучения студентов вузов. Наряду с со средствами командного режима, новый пакет содержит множество специальных интерактивных панелей (окон) в которых весьма наглядно представлены данные для вычислений и результаты вычислений. Эти панели имеют стандартный вид. так что мы ограничимся только несколькими характерными примерами применения данного пакета. 9.6.2.
Подпакет линейной алгебры Ыпеаг А19еЬга Подпакет [.!пеаг А[яеЬга содержит свыше 60 операторов и функций линейной алгебры. С ними можно познакомиться, используя команду: > е).ГП(аеееепг(Ь>пеаг)(19еьга]); Для использования какой либо отдельно взятой функции можно использовать следующую синтаксическую конструкцию выбранной функции: Бсп<)епт[ЬзпеагА1деЬга![сопапапг)!(аг9пвепев) Приведем пример вычисления определителя (детерминанта) матрицы М при вызове функции вычисления определителя Ое(егпйпап( двумя возможными способами: > м:= «1,2,3>)<4,5,6>(<7,9,8» м:=[ 2 5 8] В Мар[е 9 был введен пакет расширения для работы и подготовки документов — ууог[(зйее( вводится командой: > е>еь(иогкепее<); > е~с): (Бг ппепе (йхпеа пх1чеьга) ): йееегпгпапе (и); > яеие)епе(й~пеапА1денпа) [йееепв1папг) (И) В разделе !п(егас(пе...
справки по этому пакету можно найти интерактивные примеры по линейной алгебре: вычислению собственных значений и векторов матриц, метолам исключения Гаусса н Гаусса-Джордана, обрашению матриц и решению систем линейных уравнений. В названии функций присутствует слово «Тц(ог». Например, команда вщепеа1иеатпсое( М ) вызывает появление интерактивного окна, вычисляюшего характеристическии полином и вектор собственных значений матрицы М. Например, введем команды: ",;;-',..,С) '. «-...;;:,'% ' '.; )и ""и> 4 .'а: !:-"а: 1.7!; ',': Г'й',,."А',,."-..й 1 ФМ~-':":!-"-":- З ЕА! (:пх-,'-е;,:„:.",:,;а:",-"",:;.--;,":„.-,.Ь;,-,::.„...,::.„:.„-;;,;.„и:.,г - г -..";,;:- п>п, п,.а;:,' м~;а г пз:;:е,) 9.б.
Пакет расширения Бшйеп( Раскладе рнс. 93 3. Окно с нычисленнымн корнями характеристического оолинома гпиои >. иивгююююп уигюииугпип пюиуюг оююгю< ни пи а> 1 Ою) ю»». )пп юоюию > Оао > геегагаю и11)ю)аеи)еюю1111пеага30еЬга)) > чесгоггипР1ог(<1,1юз>.<1/7,-1>) ю Оп Оюза д 2 Ргю)пю О -0 ° ОВ > юЮеооогаопР1оа (<-1, О, О>,<0, 1, 0>,<0, О, 1>); Оп Оююе д 3 Расвюп еа 0 1 УОУ В О1О .«~ 0 О>,<0.-1 О>ю<0,0,122>.
ОиВ ~=- )ю. 11ОЮЮ ~ ае Ег< аг реп и иа и и Ьег > ьгпеагггап>Еог пр1ог!«2,1>!<1,-1/2»1; +. > !хпеагтгапеЕогпр1оЕ! «1,2,3>!<3,4,5>!<5.5,7», еЬоееЕцепчессога Еа1>е, по11арасеор11опа [ГЫ<1;пега З,со1ог Ы1ас27, ерЬегецгЕЕ=.10): 77еа ц аВ !>ЕЗ~Ю В>5! 9.б. Лакет расширения Виден/ РасКаяе ~и ние е ~г и-а си т е1суепе1о~(«1/~,1/»!<~/я,1/е»,аонпи~ ннс *в~ ~ Иоеа ~ е: .ЕВ9 и ~си~~ сь: 1 Е-д г =с ~: с .Е ВЗ, . > Еще . а.
е . Е51 3 Е р .' сс: -2.0ЬВ 1 э веьадюаиамкьазивь~ е и,~ 9.6.4. Визуализация метода наименьших квадратов Задача приближения облака точек данных отрезком прямых или линией с минимальной ошибкой (регрессия) обычно решается методом наименьших квадратов. Приближающая линия проходит в облаке точек так„чтобы алгебраическое значение площади всех квадратов со сторонам, равными отклонениям точек от линии приближения (регрессии) было равно нулю. Как правило, реализация метода наименьших квадратов основана на решении соответствующим образом подготовленнои системы линейных уравнений. Функция (.еаЖс)цагеР)ог обеспечивает наглядную визуализацию результатов метода наименьших квадратов.
Рис. 9.22 показывает пример визуализации одномерной линейной регрессии для 6 точек. Выводятся данные регрессии (ее уравнение и погрешности — средне- квадратическая и максимальная), линия регрессии„исходные точки и квадраты, характеризующие плошади отклонения. х ион х. пи ° оа у аиус юиуас па Ч «лииосо пиэли-клнл 9.6.6.
Подпакет вычислений длв первокурсников Са1си1ив1 Подпакет вычислений для первокурсников Са)си!вя! содержит довольно изысканные средства для решения задач математического анализа. Практически все из них уже были рассмотрены в Главе 4 применительно к работе в командном режиме. Поэтому отметим лишь возможности этого подпакета в интерактивном режиме. В интерактивном режиме подпакет Са!со!пз) имеет эффектные средства для визуализапии таких операний, как вычисление производных и интегралов, представление касательных и перпендикуляров, дуг, линий уравнений, поверхностей и т. д.
Эти средства находятся в разделе справки 1п)егас)еге данного подпакета. С ними легко познакомиться, поэтому ограничимся парой примеров. Пусть надо вычислить корень уравнения 0.1'х 3-100 = О. Для этого исполним команды: > е1се(эеис)еее[оа1еи1иа1!): Иехгогвие1ооптесог [. 1*х" 3-100, х=0 .. 2); )!-':;;".-':;:::;:!:: '.;,:'::) ,.!'-'*-',*'.,„:... ' "';,;,',„„". '. " °: ".; „".,':,")е ,ь'",'»" '' "' "''х'"" ",''х л:„"..;,*'а..' ' "''„',,'"'::'":', "'. ",Г".':: '-.';"'Р ':-;.:з"';:" "о",.'.;""'н-г ' 1';".
° ':г! " е, "' ",ъ',. ' 0 '".: ',':"-; "";.'.'„"" ',",'г ' '' '.;;.**"' ' ° .:::~" .', ';;". ', й':".', ',',", г 599 9.6. Пакет расширения згидеиг Расправе строится график преобразованной функции. Используется линейное преобразова- ние с набором заданных параметров а, Ь, с и гА 9 5.5. Другие возможности и особенности пакета 81цдепт Расйа9е Из других возможностен пакета Б~цдеп! можно отметить расширение возможностей графики с помощью десятков модифицированных или новых опций графики и графических функций. Познакомиться с набором опций можно по справке для данного пакета. К сожалению, ввиду новизны пакета он содержит явные недоработки.
Например, на рис. 9.25 непонятно, что выводит третья кривая на рисунке — объяснения по этому поводу нет в справке по примененной функции. При больших х места на графике для представления чисел, отложенных по осям, явно не хватает и цифры отображаются с большими искажениями. Впрочелп стоит отметить, что по пакету представлены исходные коды на Мар!е-языке, так что чересчур требовательный пользователь может довести пакет «до ума». Несомненно, что корпорация Мар!еЯой планирует существенное расширение средств Мар!е1з в программных утилитах, включенных в пакеты расширений систем Мар!е. Глава 10 Типовые средства программирования По существу все описанные выше средства (операторы, команды и функции) систем Мар!е 9.5/10 являются компонентами языка программирования системы Мар!е.
Но есть ряд типовых средств программирования (функции пользователя, условные выражения, циклы, средства вывода, маплеты и др.), которые и рассматриваются в данной главе (23, 51, 521. Применение таких средств существенно расширяет возможности систем Мар!е в решении ряда математических и научно-технических задач. 10.1. Задание функций 10.1.1. Задание функции пользователя Хотя ядро Мар!е 9.5/10, библиотека и встроенные пакеты расширения содержат свыше 3500 команд и функций, всегда может оказаться, что именно нужной пользователю (и порою довольно простой) функции все же нет.
Тогда возникает необходимость в создании собственной функции, именуемой функцией нользовагнеля. Для этого используется следующая конструкцигп паве:=(х,у,...)->ехрк После этого вызов функции осуществляется в виде пате(х,у,...), где (х,у,...)— список формальных параметров функции пользователя с именем пате.
Переменные, указанные в списке формальных параметров, являются локальными. При подстановке на их место фактических параметров они сохраняют их значения только в теле функции (ехрг). За пределами этой функции переменные с этими именами оказываются либо неопределенными, либо имеют ранее присвоенные им значения. Следующие примеры иллюстрирует сказанное (файл р1): > кехкакк; > х:=О;у:=О; у:=0 > в: = (х, у) ->аякс (х" 2+у" 2) р т:=(х,у) > ф +у 601 10.1. Задание функций > в(3.,4)( 5.000000000 > [х.у1' (О, О! Нетрудно заметить, что при вычислении функции п)(х,у) переменные х и у имели значения 3 и 4, однако за пределами функции они сохраняют нулевые значения, заданные им перед введением определения функции пользователя.