1 ≫
-
На сегодняшний день многообразие производимых в Китае автомобилей достигло такого размера, что многие знатоки успевают даже запутаться в их логичной классификации. Привычное деление по размеру или типу кузова здесь не в почете. Большее внимание будущие владельцы уделяют определению «гены и доноры» их четырехколесного друга. Ведь львиная доля автомобилей не является новой разработкой, а представляет собой в разной степени модернизированные плоды инженеров других школ. Иногда эти модели могут быть лицензионными, чаще просто скопированными. Главное, что радоваться лицензионности приобретения сразу не стоит – копия может быть даже в чем-то лучше оригинала. Тем не менее абсолютное большинство новых китайских моделей является переработанными «японцами» или «корейцами» прошлых лет. Автомобили из Европы подлежали копированию в меньшей степени, ведь это было невыгодно, потому что оригинальные модели производились здесь же, в Китае. Для европейских автогигантов это был единственный способ пройти огромные таможенные пошлины и попасть на рынок с конкурентоспособной ценой. Но все же полностью обойти копирование так и не удалось. В свое время французский концерн PSA продал лицензию на модель Citroёn ZX. Небольшой хетчбэк тогда попадал в С-класс по европейской спецификации, но спустя полтора десятилетия данные размеры отнесли бы его, скорее, к младшему В-классу. ZX некоторое время выпускался под торговой маркой Fukang и пользовался средним успехом.
К чему описание французского автомобиля? Ведь перед нами большой седан от компании SMA (Shanghai Maple Automobail Co. LTD), ведущей свою историю с недалекого 2000 года. У машины традиционно для китайского автопрома своеобразная внешность, в которой «размешаны» многие стили и элементы. Например, передок своей фальшрадиаторной решеткой может напомнить современные автомобили Audi, а оформление «кормы» не вызывает реальных ассоциаций. Оптику дизайнеры не пытались идейно объединить с известными машинами, поэтому выглядит она свежо и оригинально. В задних фонарях можно найти современные светодиоды. Но дальнейшее изучение кузова приводит к некоторым догадкам. Форма дверных проемов оказывается аналогичной французским хетчбэкам пятнадцатилетней давности.
Уплотнители дверей, проводка, даже концевики расположены в тех же местах, где и у доноров, и форма их абсолютно идентична. Следует отметить неплохое качество покраски, а вот зазоры между кузовными панелями не всегда такого размера, как того бы хотелось. Возле некоторых элементов можно увидеть увеличенные щели либо наоборот, снижение их размера до минимума. Единственный стеклоочиститель наводит на мысли, и начинаешь быстро вспоминать, у кого были видны подобные решения.
Как же с максимальной вероятностью определить «донора»? Заглядываем под днище – и все становится на свои места. Задняя независимая торсионная подвеска долгое время была легендой ходовых качеств автомобилей Peugeot и Citroёn. На SMA С81 она перекочевала без каких-либо внешних изменений. Спереди установлен традиционный для переднеприводников МcPherson со стабилизатором поперечной устойчивости. Под капотом поперек нашел свое место 1,8-литровый четырехцилиндровый 16-клапанный бензиновый агрегат мощностью 115 л. с. при 5600 об/мин и крутящим моментом 156 Н·м при 3400 об/мин. Такой агрегат, сблокированный с механической 5-ступенчатой коробкой передач, позволяет достигать максимальной скорости 175 км/ч и разгонять седан до первой сотни за 13 с. Еще одним достоинством мотора для украинского рынка можно считать его способность работать на 92-м бензине. Сквозь легкосплавные 14-дюймовые диски хорошо видны тормозные механизмы: спереди это вентилируемые диски, сзади – барабаны. В списке опций значится антиблокировочная система, из других средств, описывающих безопасность, можно назвать еще и надувную подушку водителя.
Изучение салона начинаем, как обычно, с места водителя. Если вы не успели опознать происхождение автомобиля по его внешности, то особенности расположения органов управления и общая эргономика рабочего места без сомнений выведут вас на быстрое определение оригинала. Ну у каких еще автомобилестроителей бывает кнопка клаксона в торце подрулевого переключателя и немного заваленная вперед рулевая колонка? Такое решение присуще «французам» начала 1990-х годов. Последняя, кстати, регулируется по высоте, а сиденье, обшитое кожей, кроме стандартных регулировок имеет расширенные возможности подстройки высоты передней и задней части подушки. Все регулировки механические, но быстро подобрать удобную позицию удастся лишь любителям городской, высокой посадки. В данном случае и форма сиденья не должна вызвать серьезных нареканий. Его можно оценить как среднее – нет ни ярко выраженной жесткости, ни спортивности, ни комфортности. Педальный узел современный, есть даже небольшая площадка для отдыха левой ноги.
К обзорности привыкнуть достаточно просто. Наружные зеркала хоть и не имеют выпуклых сферических зон, но в достаточной мере передают информацию о ситуации позади автомобиля. Внутрисалонное зеркало антибликовое, а небольшие стойки крыши не перекрывают видимости в поворотах. И аудиосистема, умеющая читать диски формата МР3, и блок управления вентиляцией размещены на привычных и удобных местах. Три вращающихся рукоятки «климата» быстро добавляют взаимопонимания с автомобилем. Непривычным лишь может показаться режим рециркуляции, для включения которого придется крутить рукоятку вентилятора против часовой стрелки, и расположение кнопки включения кондиционера, которая переехала вниз почти на центральный тоннель. Рядом расположились кнопки открытия багажника и «аварийка». Слева от руля можно отметить лишь одно нестандартное решение: так как С81, участвовавший в тест-драйве, был оснащен датчиком света, то инженеры расположили кнопку его активизации отдельно, недалеко от рулевой колонки.
Панель приборов состоит из четырех циферблатов, а по центру расположен монохромный экран, на который выводятся показания счетчиков пробега. Левее все время изображается символ «Р», видимо предусмотренный для версии с автоматической коробкой передач, которой, насколько нам известно, пока не существует. Блок управления стеклоподъемниками разместили на двери, ниже есть объемистые карманы для мелочей, которые можно отклонять на небольшой угол. Перчаточный ящик невелик, традиционный элемент замера – журнал – помещается там только в свернутом виде. Качество сборки и отделочных материалов передней части салона нельзя назвать эталонным, но и к самому дешевому уровню они не относятся. Кроме броской окраски можно сказать, что все собрано вполне опрятно и даже не вызывает откровенной неприязни. Также мы отметили отсутствие в салоне SMA неприятных запахов разносортных пластмасс.
Попасть на задние сиденья не составит труда. Тем не менее за длинной дверью скрывается значительно меньший проем. Такая схема может создавать трудности при посадке в стесненных условиях. Несмотря на то что диван отформован для двоих и по центру имеется удобный выдвижной подлокотник, ширины салона хватит и на троих, тем более что невысокий центральный тоннель позволяет без тесноты сесть посередине. Неудобства могут возникнуть, если ваш рост более 180 см: нависающий потолок будет напоминать о себе на каждой неровности. До спинок передних сидений при среднем росте остается еще небольшое расстояние.
Багажник открывается либо рычагом из салона, либо ключом снаружи. Хорошо выполнена конструкция петель: они не скрадывают полезного объема, но самую малость уменьшают площадь проема. В заявленные 520 л верится с трудом, но в целом багажник вызывает, скорее, положительные впечатления: все стенки отделаны ворсовым материалом, исключающим шум от багажа, а под фальшполом в запасном колесе (которое в отличие от «французов» размещено в салоне, а не снаружи) находится круглый закрывающийся бокс. При перевозке длинномеров можно сложить заднее сиденье; ровной площадки при этом не получится, но проем, соединяющий салон и багажник, будет достаточно большим.
На поворот ключа в замке зажигания стартер отзывается негромкой работой. На холостых оборотах практически не ощущается звука двигателя в салоне, как и вибраций, сопровождающих его работу. Нажатие педали акселератора лишь с некоторой задержкой приводит к желаемому ускорению, но бодрой динамикой С81 не блещет. Мощностных характеристик мотора хватит для уверенной городской езды, но любителям динамики машину рекомендовать нельзя. Несмотря на наличие четырех клапанов, питающих каждый цилиндр, желания «крутить» двигатель до высоких оборотов не возникает – делает он это с ленцой и неприятным шумом. А вот работать рычагом коробки передач вполне удобно…
Материалы: http://testdrive.com.ua/evropeec-iz-kitaya-sma-c81/
2 ≫
-
В представленных выше главах описан ряд пакетов расширения системы Maple, которые широко применяются в практике математических и научно-технических расчетов. Эти пакеты были рассмотрены достаточно подробно. В этой небольшой главе обзорно описаны пакеты расширения системы Maple, представляющие ограниченный интерес для большинства пользователей системы. Но они интересуют опытных пользователей — математиков и специалистов по программированию. Заинтересовавшийся ими читатель может дополнить сведения об этих пакетах просмотром справки и демонстрационных примеров в ней.
Пакет геометрических расчетов загружается командой
которая возвращает весьма внушительный список из более чем 100 функций. Ввиду его громоздкости список не приводится. Функции пакета имеют типовые для объектов двумерной графики имена и рассчитаны на выборочное использование (это, кстати, характерно для средств и других пакетов этой главы).
Этот пакет содержит средства расчета основных параметров ряда геометрических объектов. Для каждого объекта возможно задание различных исходных величин, так что пакет охватывает практически все виды классических геометрических расчетов на плоскости. Несомненно, этот пакет заинтересует всех, кто работает в области геометрии и смежных с нею областях.
Обратите внимание на то, что большинство функций этого пакета вовсе не рисуют на экране соответствующие фигуры, а лишь выполняют типовые геометрические расчеты. Разумеется, в дальнейшем, используя результаты этих расчетов, можно построить соответствующую фигуру с помощью графических функций.
Учитывал идентичность идеологии при работе с функциями этого пакета, большинство из которых имеет вполне прозрачные имена (правда, англоязычные), работу с пакетом поясним на примере одной из функций — circle. Она позволяет математически задать окружность и определить все ее геометрические параметры. Функция может иметь несколько форм записи. Например, в форме
circle(с, [А, В, С], n, 'centername'=m)
она определяет построение окружности, проходящей через три точки А, В и С. Необязательный параметр n — список с именами координатных осей. Параметр 'centername'=m задает имя центра.
circle(с, [А, В], n, 'centername'=m)
задается окружность, проходящая через две точки А и В, а в форме
circle(с, [A, rad], n, 'centername'=m)
задается окружность, проходящая через одну точку А с заданным (и произвольным) радиусом rad и центром с. Наконец, функция circle в форме
circle(с, eqn, n, 'centername'=m )
позволяет задать окружность по заданным уравнению eqn и центру с.
Проиллюстрируем применение функции circle на следующих примерах. Зададим характеристические переменные:
> _EnvHorizontalName := m: _EnvVerticalName := n:
Определим окружность с1, проходящую через три заданные точки А, В и С с указанными после их имен координатами и найдем координаты центра этой окружности:
> circle(c1,[point(А,0,0), point(В,2,0),point(С,1,2)], 'centername'=O1):
Далее найдем радиус окружности
и уравнение окружности, заданное в аналитическом виде:
Наконец, с помощью функции detail получим детальное описание окружности:
name of the object: c1 form of the object: circle2d name of the center: O1 coordinates of the center: [1, 3/4]
Одно из важных достоинств пакета geometry — возможность наглядной визуализации различных геометрических понятий, например, графической иллюстрации доказательства теорем или геометрических преобразований на плоскости. Проиллюстрируем это на нескольких характерных примерах, заодно показывающих технику работы с рядом функций этого пакета.
Рис. 9.1 показывает построение из множества окружностей фигуры — кардиоиды. Вопреки обычному построению этой фигуры, используется алгоритм случайного (но удовлетворяющего требованиям построения данной фигуры) выбора положений центров и радиусов окружностей.
Рис. 9.1. Построение кардиоиды из окружностей
Рис. 9.2 дает графическую иллюстрацию к одной из теорем Фейербаха. Здесь эффектно используются средства выделения геометрических фигур цветом, что, увы, нельзя оценить по книжной чёрно-белой иллюстрации.
Рис. 9.2. Графическая иллюстрация к теореме Фейербаха
На следующем рисунке (рис. 9.3) показано построение фигуры, образованной вращением множества квадратов относительно одной из вершин. Это хороший пример применения функций point, square, rotation и draw из пакета geometry.
Рис. 9.3. Фигура, полученная вращением квадрата
Рис. 9.4 показывает гомологические преобразования квадрата. Заинтересовавшийся читатель может легко разобраться с деталями простого алгоритма этой программы.
Рис. 9.4. Гомологические преобразования квадрата
Обратите особое внимание на последний параметр в функции draw. Он задает построение титульной надписи с заданными шрифтом и размером символов. Сравните титульные надписи на рис. 9.4 и на рис. 9.3, где титульная надпись сделана шрифтом, выбранным по умолчанию. Приятно, что в обоих случаях нет преград для использования символов кириллицы и создания надписей на русском языке.
Наконец, на рис. 9.5 показан пример построения трех окружностей разного радиуса и с разным положением, имеющих две общие точки. Обратите внимание на вывод надписей «о», «о1» и «о2», указывающих положение центров окружностей на рисунке.
Рис. 9.5. Три окружности, имеющие две общие точки
Множество других примеров применения всех функций пакета geometry дано в одноименном с ним файле примеров.
Помимо существенного расширения пакета geometry, в систему Maple введен геометрический пакет geom3d. Он предназначен для решения задач в области стереометрии (трехмерной геометрии). При загрузке пакета командой
появляется доступ к весьма большому (свыше 140) числу новых функций. Ввиду громоздкости списка он также не приводится, но читатель может просмотреть его самостоятельно.
Функции этого пакета обеспечивают задание и определение характеристик и параметров многих геометрических объектов: точек в пространстве, сегментов, отрезков линий и дуг, линий, плоскостей, треугольников, сфер, регулярных и квазирегулярных полиэдров, полиэдров общего типа и др. Назначение многих функций этого пакета ясно из их названия, а характер применения тот же, что для функции описанного выше пакета geometry.
Учитывая сказанное, ограничимся парой примеров применения этого пакета. Один из примеров представлен на рис. 9.6. На нем представлена сфера внутри «малого иглообразного» додекадрона (SinallStelletedDodecahedron).
Рис. 9.6. Иллюстрация применения пакета geom3d
Еще один пример представлен на рис. 9.7. Здесь представлено еще две объемные фигуры, расположенные друг в друге.
Рис. 9.7. Еще один пример применения пакета geom3d
Напоминаем, что цель пакета не в построении рисунков геометрических фигур, а в аналитическом представлении объектов в пространстве. Поэтому в обширной базе данных справочной системы по этому пакету вы встретите очень мало рисунков.
Графы широко используются при решении многих прикладных и фундаментальных задач. Пользователей, занятых решением таких задач, наверняка порадует пакет networks, содержащий весьма представительный набор функций. Список их имен выводит команда:
Теория графов используется достаточно широко даже при решении прикладных задач — например, для вычисления оптимальных маршрутов движения железнодорожных составов, наиболее целесообразной раскройки тканей и листов из различных материалов и т.д.
Рассмотрим некоторые избранные функции этого пакета, которые наиболее часто используются при работе с графами. Функции создания графов:
new — создает пустой граф (без ребер и узлов);
void — создает пустой граф (без ребер);
duplicate — создает копию графа;
complete — создает полный граф;
random — возвращает случайный граф;
Petersen — создает граф Петерсена.
Функции модификации графов:
addedges — добавляет в граф ребро;
addvertex — добавляет в граф вершины;
connect — соединяет одни заданные вершины с другими;
delete — удаляет из графа ребро или вершину.
Функции контроля структуры графов:
draw — рисует граф;
edges — возвращает список ребер графа;
vertices — возвращает список узлов графа;
show — возвращает таблицу с полной информацией о графе;
ends — возвращает имена вершин графа;
head — возвращает имя вершины, которая является головой ребер;
tail — возвращает имя вершины, которая является хвостом ребер;
incidence — возвращает матрицу инцидентности;
adjacency — возвращает матрицу смежности;
eweight — возвращает веса ребер;
vweight — возвращает веса вершин;
isplanar — упрощает граф, удаляя циклы и повторяющиеся ребра, и проверяет его на планарность (возвращает true, если граф оказался планарным и false в противном случае).
Функции с типовыми возможностями графов:
flow — находит максимальный поток в сети от одной заданной вершины к другой;
shortpathtree — находит кратчайший путь в графе с помощью алгоритма Дейкстры.
Каждая из этих команд имеет одну или несколько синтаксических форм записи. Их можно уточнить с помощью справочной системы. С ее помощью можно ознакомиться и с назначением других функций этого обширного пакета. Проиллюстрируем его применение на нескольких типичных примерах.
На рис. 9.8 показан пример создания графа, имеющего четыре вершины, и графа Петерсона с выводом их графиков графической функцией draw.
Рис. 9.8. Построение графов
На рис. 9.9 показан другой пример работы с графами — построение графа функцией complete и затем его преобразование путем удаления части вершин. Исходный и преобразованный графы строятся функцией draw.
Рис. 9.9. Преобразование графа удалением части вершин
В третьем примере (рис. 9.10) граф формируется по частям — вначале задается пустой граф функцией new, а затем с помощью функций addvertex и addedge в него включаются вершины и ребра. Далее функция connect соединяет вершину a с вершиной с, делая граф замкнутым. Функция draw строит сформированный таким образом граф, а функции head и tail используются для выявления «голов» и «хвостов» графа.
Рис. 9.10. Формирование графа и определение его «голов» и «хвостов»
В четвертом примере, представленном на рис. 9.11, показано создание графа G2 (его изображение было приведено на рис. 9.9) с вычислением для этого графа максимального потока от вершины 1. Обратите внимание, что в параметрах функции flow, использованной для этого, заданы две переменные: eset — принимает значение множества с ребрами, по которым проходит максимальный поток, и comp — принимает значение множества, в котором содержатся вершины, по которым проходит максимальный поток. Значения этих переменных выведены в области вывода. В заключительной части этого примера показано применение функции shortpathtree, ищущей наиболее короткий путь от вершины 1 до других вершин.
Рис. 9.11. Пример вычисления максимального потока и наиболее коротких путей для заданного графа
Приведенный ниже еще один пример иллюстрирует работу функции show, выдающей таблицу с полной информацией о графе, созданном функцией complete:
table([_Counttrees = _Counttrees, _Vertices = <1,2,3,4>, _Vweight = table(sparse, []), _Edges =
, _Bicomponents = _Bicomponents, _Emaxname = 6, _Head = table([]), _Tail = table([]), _EdgeIndex = table(symmetric, [(3,4)= ,(2,3)= ,(1,4)=<е3>,(1,2)=<е1>,(1,3)=<е2>,(2,4)= ]), _Neighbors = table([1=<2,3,4>,2=<1,3,4>,3=<1,2,4>,4=<1,2,3>]), _Econnectivity = _Econnectivity, Ends = table([e4=<2,3>,e1=<1,2>,<1,4>,e6=<3,4>,e5=<2,4>,e2=<1,3>]), _Countcuts = _Countcuts, _Eweight = table([e4=1, e1=1, e3=1, e6=1, e5=1, e2=1]), _Status = ]) Разумеется, приведенные примеры далеко не исчерпывают всех задач, которые можно решать с применением графов. Но они наглядно демонстрируют, что для большинства пользователей пакет networks превращает графы из окутанного ореолом таинственности модного средства в простой рабочий инструмент.
Этот пакет полезен математикам, часто использующим рекуррентные отношения и формулы. Он дополняет функцию rsolve основной библиотеки и содержит следующие функции:
[REcontent, REcreate, REplot, REpritnpart, REreduceorder, REtoDE, REtodelta, REtopeoc, autodispersion, constcoeffsol, dispersion, divconq, firstlin, hypergeomsols, polysols, ratpolysols, riccati, shift]
В пакете дифференциальных форм содержится следующий ряд функций:
[&^, d, defform, formpart, parity, scalarpart, simpform, wdegree]
Демонстрационные материалы по применению этого пакета входят в поставку Maple, так что заинтересованный читатель может их просмотреть.
Этот пакет впервые появился в реализации Maple V R5. Он дает средства для работы с тензорами и вычислениями, используемыми в общей теории относительности. В нем использован специальный тип данных tensor_type в виде таблиц с двумя полями: компонентов и характеристик индексов. Поле компонентов — массив с размерностью, эквивалентной рангу объекта. Поле характеристик индексов задается списком чисел 1 и -1. При этом 1 на i-й позиции означает, что соответствующий индекс контравариантный, а -1 — что он ковариантный.
Процедура tensor_type возвращает логическое значение true, если ее первый аргумент удовлетворяет свойствам тензора, и false, если он этому свойству не удовлетворяет.
Каждому тензору соответствуют еще две таблицы. Таблица коэффициентов вращения задает коэффициенты вращения Ньюмена-Пенроуза, которые вычисляются функцией tensor[npspin] и индексируются именами греческих букв alpha, beta, gamma, epsilon и т.д. Другая таблица (компонент кривизны) содержит компоненты кривизны Ньюмена-Пенроуза. Они представлены тремя полями: полем Phi в виде массива размерности (0..2,0..2) с компонентами Риччи, поле Psi с массивом размерности (0..4) с компонентами Вейля и поле R со скаляром Риччи.
дает доступ к множеству функций пакета:
Christoffel1 — вычисление символов Кристоффеля первого рода;
Christoffel2 — вычисление символов Кристоффеля второго рода;
Einstein — возвращает тензор Эйнштейна;
display_alJGR — описывает ненулевые компоненты всех тензоров и параметров, вычисленных командой tensorsGR (общая теория относительности);
displayGR — описывает ненулевые компоненты конкретного тензора (общая теория относительности);
Jacobian — Якобиан преобразования координат;
Killing_eqns — вычисляет компоненты для уравнений Киллинга (имеет отношение к симметриям пространства);
LeviCivita — вычисляет ковариантные и контравариантные псевдотензоры Леви-Чивита;
Lie_diff — вычисляет производную Ли тензора по отношению к контравариантному векторному полю;
Ricci — тензор Риччи;
Ricciscalar — скаляр Риччи;
Riemann — тензор Римана;
RiemannF — тензор кривизны Римана в жесткой системе отсчета;
tensorsGR — вычисляет тензор кривизны в данной системе координат (общая теория относительности);
Weyl — тензор Вейля;
act — применяет операции к элементам тензора, таблицам вращений или кривизны;
antisymmetrize — антисимметризация тензора по любым индексам;
change_basis — преобразование системы координат;
commutator — коммутатор двух контравариантных векторных полей;
compare — сравнивает два тензора, таблицы вращений или кривизны;
conj — комплексное сопряжение;
connexF — вычисляет связующие коэффициенты для жесткой системы координат;
contact — свертка тензора по парам индексов;
convertNP — преобразует связующие коэффициенты или тензор Римана к формализму Ньюмена-Пенроуза;
cov_diff — ковариантное дифференцирование;
create — создает тензорный объект;
d1metric — первая частная производная метрики;
d2metric — вторая частная производная метрики;
directional_diff — производная по направлению,
dual — осуществляет дуальную операцию над индексами тензора;
entermetric — обеспечивает ввод пользователем координатных переменных и ковариантных компонент метрического тензора;
exterior_diff — внешнее дифференцирование полностью антисимметричного ковариантного тензора;
exterior_prod — внешнее произведение двух ковариантных антисимметричных тензоров;
frame — задает систему координат, которая приводит метрические компоненты к диагональной сигнатурной матрице (с положительными или отрицательными единицами);
geodesic_eqns — уравнение Эйлера-Лагранжа для геодезических кривых;
get_char — возвращает признак (ковариантный/контравариантный) объекта;
getcompts — возвращает компоненты объекта;
get_rank — возвращает ранг объекта;
invars — инварианты тензора кривизны Римана (общая теория относительности);
invert — обращение тензора второго ранга;
lincom — линейная комбинация тензорных объектов;
lower — опускает индексы;
npcurve — компонента кривизны Ньюмена-Пенроуза в формализме Дебевера (общая теория относительности);
npspin — компонент вращения Ньюмена-Пенроуза в формализме Дебевера (общая теория относительности);
partial_diff — частная производная тензора;
permute_indices — перестановка индексов;
petrov — классификация Петрова тензора Вейля;
prod — внутреннее и внешнее тензорное произведения;
raise — поднятие индекса;
symmetrize — симметризация тензора по любым индексам;
transform — преобразование системы координат.
Пакет представляет несомненный интерес для физиков-теоретиков, работающих в области общей теории относительности и ее приложений. Для них (но не для большинства пользователей) отмеченные выше данные полезны и понятны.
Этот небольшой пакет служит для создания доменов — таблиц операций для вычислений. При его загрузке появляется сообщение о переопределениях объектов и список из всего лишь шести функций:
Initially defined domains are Z and Q the integers and rationals
Abbreviations, e.g. DUP for DenseUnivariatePolynomial, also made
Warning, the protected names Array, Matrix and Vector have been
redefined and unprotected
[Array, Matrix, MatrixInverse, Vector, init, show]
Пакет допускает применение следующих конструкций:
Приведенный ниже пример поясняет создание и использование доменов Q (для рациональных данных) и Z (для целочисленных данных):
Следующая операция показывает, что домен Z является таблицей:
А функция show позволяет вывести полный перечень всех операций, доступных для домена Z:
` Signatures for constructor Z`
` note: operations prefixed by — are not available`
` Coerce : Integers -> Z`
` EuclideanNorm : Z -> Integers`
` Gcdex : (Z,Z,Name, Narre) -> Z`
` Input : Expression -> Union(Z,FAIL)`
` ModularHomomorphism : () -> (Z -> Z,Z)`
` Output : Z -> Expression`
` Powmod : (Z,Integers,Z) -> Z`
` Prime : Z -> Boolean`
` Relatively Prime : (Z,Z) -> Boolean`
` SmallerEuclideanNorm : (Z,Z) -> Boolean`
` Type : Expression -> Boolean`
` Zero : Z -> Boolean`
Домены позволяют передавать в качестве параметра процедур набор функций в виде единого целого, что и объясняет название этих объектов. Предполагается, что это может привести к заметному сокращению кодов программ вычислений в будущих реализациях системы Maple. Пока же возможности доменов скорее выглядят как очередная экзотика, чем как реальное средство для оптимизации вычислений. Потребуется время, чтобы показать, что это не так.
Пакет Ore_algebra содержит набор функций алгебры линейных операторов, состав которого можно получить после обращения к пакету:
Этот пакет поддерживает решение задач в области алгебры линейных операторов. Примеры на его применения можно найти в справке и в файле Ore_algebra, имеющимся на Интернет-сайте корпорации MapleSoft.
В пакете genfunc, предназначенном для работы с производящими функциями содержатся функции, список которых выводит команда:
Эти функции представляют специальный интерес для пользователей, работающих в области теории чисел и рациональных функций.
Этот пакет содержит довольно представительный набор функций для работы с конечными группами. Вывод списка функций обеспечивает команда:
Функции этого пакета представляют интерес для математиков, работающих в области конечных групп. Но вряд ли они будут полезны большинству пользователей. Тем не менее, наличие таких функций говорит о полноте функциональных возможностей системы Maple.
В этом пакете, являющемся реализацией алгоритма Харрисона-Эстабрука, имеется ряд функций, список которых выводит команда:
Эти функции достаточно специфичны и могу пригодится лишь узким специалистам. Детали применения пакета можно найти в справке по нему.
Пакет команд с весьма многообещающим названием SolveTools на самом деле содержит вовсе не средства для решения уравнений, а несколько весьма специфических функций:
[Basis, CancelInverses, Combine, Complexity, GreaterComplexity, Linear, RationalCoefficients, SortByComplexity]
Они позволяют найти базис выражений, дескрипторы и рациональные коэффициенты. Примеры применения этого пакета очень просты и с ними несложно ознакомиться по справке.
Загрузка этого пакета командой
дает средства для работы с таблицами. Функции пакета не имеют самостоятельного значения и призваны поддерживать работу с электронными таблицами, которая уже была подробно описана. Они дают такие средства, как создание в документе шаблона таблиц, проведение операций по заполнению и редактированию ячеек таблиц, копированию содержимого таблиц в буфер памяти и т.д.
Пакет линейных операторов LinearOperators — новый пакет, содержащий средства для работы с линейными операторами. Состав пакета можно увидеть после его вызова командой:
Набор функций пакета достаточно представителен. Но, поскольку область применения пакета весьма специфична, рекомендуется знакомиться с его возможностями по справке.
Для упрощения работы с массивами в Maple 9 был введен пакет ArrawTools (файл at):
[Alias, ComplexAsFloat, Copy, DataTranspose, Fill]
Он вводит всего пять новых функций. Примеры их применения, взятые из справки по пакету, представлены ниже:
Дублирование первых 5 элементов в следующих 5 элементах
Очистка каждого второго элемента
Формирование матрицы 2×5
Создание матрицы с комплексными элементами
> М := Matrix(2,3,(i,j)->i+I*j, datatype=complex[8], order=C_order);
Создание «двойной» матрицы с элементами в формате плавающей точки
Действие всех функций этого пакета вполне очевидно из приведенных примеров.
В Maple 9 был введен пакет расширения для анализа ошибок научных вычислений. Пакет вызывается командой
С возможностями этого пакета можно познакомиться по справке. На Интернет-сайте корпорации MapleSoft можно найти раздел SEAApps с большим числом примеров применения этого пакета, полезного, прежде всего, физикам, занятым обработкой данных физических экспериментов и прогнозом ошибок в научных вычислениях.
Пакет codegen представляет собой набор команд, предназначенных для организации взаимодействия системы Maple с другими программными средствами:
Warning, the protected name MathML has been redefined and unprotected
[C, GRAD, GRADIENT, HESSIAN, JACOBIAN, MathML, WebEQ, cost, declare, dontreturn, eqn, fortran, horner, intrep2maple, joinprocs, makeglobal, makeparam, makeproc, makevoid, maple2intrep, optimize, packargs, packlocals, packparams, prep2trans, renamevar, split, swapargs ]
Этот пакет очень полезен программистам, занимающимся разработкой сложных программных комплексов. Пакет позволяет создавать процедуры на языке Maple и транслировать их в программные модули, записанные на других языках программирования, таких как Фортран или Си.
В Maple 9 появился пакет генерации кодов — CodeGeneration:
Warning, the name С has been rebound
Warning, the protected name Matlab has been redefined and unprotected
[C, Fortran, IntermediateCode , Java, LanguageDefinition, Matlab, Names, Translate, VisualBasic]
Получение матрицы, элементы которой имеют нулевые действительные части:
Наиболее интересной в новом пакете является поддержка трансляции в коды языков Java, MATLAB и VisualBasiс. Ниже даны примеры трансляции Maple-выражений в codegen):
> f := proc(x) local a; if x =1.0 then a := 1.0 else a := sin(x)/x end if; return a; end proc:
Public Module CodeGenerationModule
Public Function f(ByVal x As Double) As Double
Dim a As Double
If (x = 0.10E1) Then
Применение этих пакетов имеет важное значение при обеспечении совместной работы различных программных средств.
Пакет context служит для создания контекстных меню. Он содержит небольшое число функций:
[buildcontext, clearlabels, defaultcontext, display, installcontext, restoredefault, testactions, troubleshoot]
Этот пакет используется довольно редко и, в основном, пользователями, решающими в среде Maple не вычислительные, а системные задачи. Описание таких задач выходит за рамки данной книги. Множество примеров применения пакета можно найти в справке и в файле context_exmples, который можно найти на Интернет-сайте корпорации MapleSoft.
Этот узкоспециализированный пакет содержит ряд функций по организации работы на нескольких процессорах:
[block, exec, fork, kill, launch, pclose, pipe, popen, wait]
Данные функции представляют интерес для пользователей операционной системой UNIX, так что в проблематику данной книги не входят
Для представления математической информации на страницах Интернета в последние годы был создан специальный язык MathML. Пока для большинства пользователей MathML просто «экзотика», но так как наряду с XML его поддерживает World Wide Web Consortium, его вынуждены поддерживать все солидные фирмы — причем не только создающие системы компьютерной математики. Среди них такие крупные корпорации, как Intel, IBM и Microsoft. Уже в Maple 7 была предусмотрена новая возможность поддержки стандарта MathML 2.0. Для такой поддержки используется MathML Viewer и пакет MathML.
Пакет MathML дает минимальный набор функций для использования языка MathML:
[Export, ExportContent, ExportPresentation, Import, ImportContent]
Первые три функции служат для экспорта выражений:
Export(expr) — преобразует Maple-выражение expr в параллельное MathML-выражение;
ExportContent(expr) — преобразует Maple-выражение expr в MathML-выражение формате содержания;
ExportPresentation(expr) — преобразует Maple-выражение expr в MathML-выражение в формате представления.
Еще две функции служат для импорта строки в формате MathML и его преобразования в Марк-выражение:
Следующий пример наглядно иллюстрирует применение функций пакета расширения MathML для преобразования математического выражения а*х+b вначале в запись на MathML, а затем преобразование этой записи str в Maple-выражение:
> str :=MathML[Export] ( а*х + b );
str := "
3 ≫
-
Справочной системе Maple 7 принадлежит исключительная роль — только в ней можно найти полную информацию обо всех почти трех тысячах функций Maple 7. Использование англоязычной справочной системы может быть полезно и для тех, кто и «двух слов по-английски связать не может», поскольку в ней приведен синтаксис функций и операторов, а также многочисленные примеры их применения — по самым скромным подсчетам их свыше десяти тысяч. К сожалению, справочная система Maple 7 очень громоздка. Но это нельзя считать недостатком справочной системы, поскольку просто велик объем входящего в нее материала. В справочной системе имеются все присущие современным базам данных возможности для быстрого поиска нужной информации и даже для ее структурирования и пополнения.
Основные команды по работе со справочной системой Maple 7 сосредоточены в меню Help , показанном на рис. 2.1.
Рис. 2.1. Меню Help справочной системы Maple 7
Оно содержит команды, объединенные в несколько групп. В первую группу входят следующие команды:
- Introduction — показ начального раздела справки (введения);
- Help on Context — вывод оперативной справки по контексту;
- New User's Tours — запуск обучающей системы;
- What's New — описание новых возможностей системы;
- Using Help — описание правил использования справочной системы;
- Glossary — вывод указателя терминов.
Второй раздел меню содержит команды:
- Topic Search — предметный поиск по заданному образцу;
- Full Text Search — предметный поиск с полным обзором текста справки;
- History — вывод истории поиска.
В третьем разделе имеются две команды для работы с базой данных:
- Save to Database — запись данных в базу данных;
- Remove Topic — восстановление базы данных предметного поиска путем удаления дополнительных данных;
Остальные разделы представлены следующими командами:
- Balloon Help — включение всплывающих подсказок;
- Register Maple 7 — регистрация Maple 7;
- About Maple 7 — вывод окна с информацией о Maple 7.
Рассмотрим детально работу справочной системы Maple 7. Следует отметить, что ценность справочной системы для наших читателей намного снижается из-за того, что она написана на английском языке. Учитывая громоздкость справочной системы и необходимость в наличии компьютера для ее использования, для знакомства с системой Maple 7 более подходят обычные книги, тогда как справочную систему следует применять при необходимости ознакомиться с тонкими деталями применения тех или иных операторов, функций и иных средств Maple 7.
Команда Introduction в меню справки запускает справочную систему на странице введения (рис. 2.2).
В введении определено назначение Maple 7 как системы компьютерной алгебры и дается ссылка на сайт фирмы — разработчика системы (www.maplesoft.com). Щелкнув на гиперссылке, вы перейдете на начальную страницу web-сервера фирмы. На странице введения имеются также гиперссылки на обучающий курс (New User's Tour), на страницы с обзором новых возможностей Maple 7 и справки по различным элементам интерфейса.
Рис. 2.2. Окно справочной системы с введением
Обратите внимание на оригинальный подход к представлению пути нужной справки. Для его определения служат 5 окон-списков. На рис. 2.2 используется только одно окно, а остальные 4 пока пусты. Выбирая последовательно по элементу из каждого списка, вы сможете достигнуть требуемой справочной информации. Подробнее навигация по справочной системе будет описана позже.
Оперативная справка по контексту
Оперативная справка по контексту — сравнительно новая возможность справочных систем. Она особенно удобна при разборе примеров, содержащих незнакомые пользователю функции и иные объекты системы Maple. Полезна она и в том случае, когда пользователь знаком с применяемым объектом, но хотел бы уточнить его свойства и синтаксис.
Для получения оперативной справки по контексту достаточно установить курсор на соответствующий объект, например на имя какой-либо функции, и открыть меню Help . В нем можно обнаружить, что операция Help on Contex t модифицируется и приобретает вид Help on ". ", где на месте многоточия стоит слово, на котором остановился курсор. На рис. 2.1 таким словом является имя функции, вычисляющей синус, — sin.
Допустим, что в тексте документа в строке ввода есть функция sin(x). Если теперь выполнить команду Help on ". " — тут же появится окно со справкой о функции синуса. Существуют и горячие клавиши для этой команды — Ctrl+Fl (или просто F1). Пример справки по функции sin представлен на рис. 2.3.
Рис. 2.3. Пример справки по функции sin
Как видно из рис. 2.3, справка по контексту позволяет судить о назначении функции, синтаксических правилах ее задания и примерах применения. Реализована она по единым правилам справочной системы и содержит открываемые разделы и гипертекстовые ссылки.
В этом примере уже хорошо видна техника использования окон в верхней части справки для уточнения необходимого раздела. Так, обнаруженная функция cos (кстати не sin , это любопытное свойство справки Maple — наличие «союзных» разделов) находится уже в четвертном окне. Последовательность доступа к ней следующая: Mathematics-Basic Mathematics-Exponential, Trig and Hyperbolic-cos. Очевидно, что функция cos найдена потому, что она выступает в паре с функцией sin , — на странице справки приведены примеры и к той, и к другой функции. Учитывая огромное число функций системы Maple 7 и соответственно разделов справки, подобный способ поиска информации представляется очень удобным. Он, кстати, стал использоваться и в Mathematica 3/4 — ближайшем конкуренте Maple.
Обучающий курс New User's Tour
Команда New User's Tour открывает окно курса по обучению основам пользования Maple, показанное на рис. 2.4.
Рис. 2.4. Окно курса обучения основам Maple
В конце страницы (рис. 2.4) имеется гиперссылка Click here to begin the New User's Tour . Она открывает окно обучающего курса по Maple с перечнем ее разделов, представленное на рис. 2.5. Наименования разделов являются гиперссылками. Как видно из рис. 2.5, обучающий курс имеет следующие разделы:
- (1) Working Through the New User's Tour — обучение работе с курсом;
- (2) The Worksheet Environment — создание документов;
- (3) Numerical Calculations — численные вычисления;
- (4) Algebraic Computations — алгебраические преобразования;
- (5) Graphics — графики;
- (6) Calculus — вычисления;
- (7) Differential Equations — дифференциальные уравнения;
- (8) Linear Algebra — линейная алгебра;
- (9) Finance and Statistics — финансы и статистика;
- (10) Programming — программирование;
- (11) Online Help — помощь через Интернет;
- (12 ) Summary — заключение.
Активизация любой из этих гиперссылок приводит к выводу соответствующего раздела обучающего курса. На рис. 2.6 представлено начало раздела 3, посвященного численным вычислениям.
Рис. 2.5. Окно с перечнем разделов обучающего курса
Рис.2.6. Начало раздела обучающего курса по численным вычислениям
Основные достоинства обучающего курса в том, что он (в отличие от справочной базы данных) дает обычное описание работы с системой Maple 7 с «живыми» примерами, которые не надо копировать в документы. Фактически обучающая система является просто набором документов системы. Вначале примеры даны без ячеек вывода, которые появляются после исполнения команды Edit> Execute> Worksheet . Это иллюстрирует рис. 2.7.
Рис. 2.7. Начало раздела обучающей системы по численным вычислениям после исполнения команды Edit> Execute > Worksheet
Пользователь может модифицировать любой пример и немедленно получить новые результаты (попробуйте, например, заменить вычисление 200! на 100! или 500!). К сожалению, написан обучающий курс на английском языке и в отличие от обычной книги для работы с ним нужен компьютер.
Новые возможности Maple 7
Пользователи, знакомые с предшествующими версиями системы Maple, обычно хотят узнать, что нового введено в последней версии. Однако, как у нас говорят, «лучшее — враг хорошего» — при большом числе новых возможностей (и особенно при модификации старых возможностей) появляется несовместимость между документами для старых и новых версий системы. Несмотря на меры, предпринятые по предотвращению такой несовместимости, ее проявление вполне возможно, в частности документы, созданные в Maple 7, уже нельзя использовать в предшествующих версиях из-за различий в их внутренних форматах.
Выполнение команды What's New открывает окно с описанием новых возможностей Maple 7. Оно показано на рис. 2.8.
Рис. 2.8. Окно справки с описанием новых возможностей системы Maple 7
С помощью гиперссылок на этой странице можно получить достаточно подробное описание всех появившихся в Maple 7 возможностей. Мы уже отмечали их в уроке 1.
Правила работы со справочной системой
Справочная система Maple 7, по существу, является мощной базой данных с обширными возможностями поиска нужной информации и многочисленными примерами применения Maple 7. Работа с такой системой может вызвать затруднения у начинающих пользователей, поэтому в состав справочной системы включено описание правил ее использования. При исполнении команды Using Help появляется страница с перечнем разделов описания справочной системы (рис. 2.9).
Рис. 2.9. Окно с перечнем разделов описания справочной системы
Мы не будем подробно описывать содержание страницы и гиперссылок, поскольку весь материал данного урока и является, по существу, таким описанием.
Команда Topic Search (предметный поиск) — одна из самых мощных функций справки. Она выводит окно поиска (рис. 2.10), содержащее в верхней части поле для ввода образца. Образцом может быть слово (например, имя функции) или даже часть слова. В окне под этим полем появляется список всех объектов Maple 7, в индекс которых входит заданный образец (рис. 2.10).
Теперь остается из заданного списка слов выбрать нужное, что приведет к появлению окна справки с информацией по данному слову. Иногда индекс по данному слову будет иметь несколько ссылок, на появившейся странице вам придется уточнить, справку по какому объекту вы хотите получить. Окно предметного поиска в правой части имеет четыре кнопки со следующим назначением:
- Search — поиск по образцу;
- Apply — вывод окна выбранного раздела справки при сохранении окна поиска;
- ОК — окончание поиска (выводится окно с выбранным разделом и исчезает окно поиска);
- Cancel — закрытие окна поиска.
Кроме того, имеется возможность задания двух параметров:
- Same Window — вывод в то же окно (если окно не открыто на полный экран);
- Auto-Search — автоматический поиск по образцу по мере ввода последнего.
Заметим^ что если установлен флажок Auto-Search , то кнопка Search становится недоступна, поскольку отпадает необходимость в ней.
Предметный поиск с полным обзором текста справки
Предметный поиск с полным обзором текста справки (Full Text Search) — еще один эффективный метод получения справочной информации. Он напоминает ранее рассмотренный, но вхождение заданного образца ищется во всем тексте справочной системы, а не только по индексу, составленному создателями Maple. При этом выводится окно, подобное показанному на рис. 2.11. Обратите внимание на то, что в большом Поле этого окна указано существенно больше разделов справки, чем при поиске по индексу — очевидно, что большинство из них будет случайным упоминанием данного образца.
Рис. 2.10. Окно предметного поиска
Рис. 2.11. Окно предметного поиска с полным обзором текста справки
В этом окне используются те же кнопки управления, что и для окна поиска справки по образцу. Флажок Goodness of Match включает вывод статистики повторяемости образца в текстах разделов справочной системы.
История работы со справкой
Было замечено, что пользователь, занятый решением определенного класса задач, обычно неоднократно возвращается к ранее просмотренным разделам справочной системы. Чтобы не искать их всякий раз заново, справочная система хранит список разделов, просмотренных в данном сеансе работы. Он выводится операцией History (рис. 2.12).
Достаточно найти в этом окне нужный раздел справки и нажать кнопку ОК, чтобы вывести его на экран. Кнопка Apply позволяет просматривать каждый новый раздел в своем окне.
Рис. 2.12. Список ранее просмотренных разделов справки
Модернизация справочной базы данных
В справочной базе данных предусмотрена возможность ее расширения путем записи текущего документа, составленного пользователем, в указанный раздел. При выполнении операции Save to Database выводится специальное окно, в котором надо указать соответствующие данные о модернизируемом разделе справки. Вид окна представлен на рис. 2.13.
Ограничимся этим указанием, учитывая, что для нашего пользователя модернизация англоязычной справочной базы данных явно отдает экзотикой.
Удаление разделов базы данных
Для удаления разделов базы данных служит команда Remove Topic . Она выводит окно, показанное на рис. 2.14.
Обратите внимание, что модернизации в обоих случаях подвергается один и тот же файл базы данных maple.hdb.
Рис. 2.13. Окно дополнения базы данных
Рис. 2.14. Окно удаления разделов справочной базы данных
Включение всплывающих подсказок
На первом этапе знакомства с пользовательским интерфейсом системы Maple 7 удобно использовать всплывающие подсказки. Они вводятся при установке флажка Balloon Help. Для получения подсказки по какому-либо объекту достаточно задержать на пару секунд указатель мыши на этом объекте. Пример вывода всплывающей подсказки показан на рис. 2.1 — она указывает на назначение команды меню Help — Help on "sin".
Команда Register Maple 7 меню справочной системы открывает окно регистрации системы Maple 7. Это окно позволяет вызвать браузер Интернета, с помощью которого выполняется регистрация.
Вывод окна с информацией о системе
Последняя команда меню Help — About Maple 7 — выводит окно с информацией о версии Maple 7 (рис. 2.15). В этом окне содержатся данные, необходимые для регистрации системы Maple 7 (номера лицензии и самого продукта), а также данные о времени выпуска системы.
Рис. 2.15. Окно с данными о системе Maple 7
Обратите внимание, что данный продукт датирован концом мая 2001 г. Как уже отмечалось в уроке 1, официально он выпущен на рынок 21 июня 2001 г.
Что нового мы узнали ?
В этом уроке мы научились:
- Использовать контекстную справку.
- Работать со справочной системой.
Усталость света, анг. tired light - это явление потери энергии квантом электромагнитного излучения при прохождении космических расстояний, то же самое, что эффект красного смещения спектра далеких галактик, обнаруженный Эдвином Хабблом в 1926 г.
На самом деле кванты света, проходя миллиарды световых лет, отдают свою энергию эфиру, "пустому пространству", так как он является реальной физической средой - носителем электромагнитных колебаний с ненулевой вязкостью или трением, и, следовательно, колебания в этой среде должны затухать с расходом энергии на трение. Трение это чрезвычайно мало, а потому эффект "старения света" или "красное смещение Хаббла" обнаруживается лишь на межгалактических расстояниях.
Таким образом, свет далеких звезд не суммируется со светом ближних. Далекие звезды становятся красными, а совсем далекие уходят в радиодиапазон и перестают быть видимыми вообще. Это реально наблюдаемое явление астрономии глубокого космоса. Подробнее читайте в FAQ по эфирной физике.
Материалы: http://bourabai.ru/cm/le2.htm