Алгебра в программе Mathematica

         

Алгебра в программе Mathematica

После изучения школьного курса информатики вы панически боитесь компьютеров, программ и всего, что связано с ними? Тогда вам нужно напрочь забыть этот школьный ужастик и прочесть сначала какую-нибудь совсем простую книгу, с помощью которой вы научитесь нажимать клавиши и будете относиться к монитору так же, как к телевизору. (Впрочем, считаю своим долгом предупредить об опасности телевизоров (и компьютеров): их так легко включить, а оторваться от них иногда просто невозможно.) Если захотите после этого познакомиться с азами программирования, советую прочитать начальные главы книги Программирование на языке C/C++. Самоучитель. Но знакомство с ней, как и с любым другим курсом программирования, совсем не обязательно для того, чтобы приступить к чтению данной книги.
Вы умеете включать компьютер, устанавливать программы, но никогда не слышали о системах компьютерной алгебры? Тогда эта книга для вас. В ней есть все, что нужно знать, чтобы приступить к освоению систем компьютерной алгебры и начать применять их для решения самых разнообразных задач.

Введение
У вас уже есть опыт применения компьютерной алгебры? Тогда эта книга научит вас применять лучшую из таких систем — систему Mathematica — для решения ваших задач. Впрочем, даже если вы студент, в книге, конечно, едва ли можно найти решения именно тех задач, которые вам преподаватель задал на дом, но здесь есть подробно разобранные примеры решения типовых задач по математике. Конечно, данная книга не может заменить всех учебников по математике, но, надеюсь, она сделает знакомство с ними гораздо более приятным, во всяком случае менее утомительным, чем при традиционном способе проведения выкладок с карандашом и ластиком.
Если же ваши проекты связаны с научными исследованиями и выходят далеко за рамки решения типовых задач, во многих главах вы найдете примеры решения довольно трудных задач и получения вполне современных результатов.

История компьютерных вычислений
С давних времен человек мечтал о машине, которая могла бы выполнять вычисления. Однако что значит вычислять! Когда компьютеры только появились, они, в основном, были предназначены для численных расчетов. Затем они начали применяться для решения задач управления. И хотя в этих приложениях численные расчеты играют весьма важную роль, всегда были ученые, которые понимали, что результаты вычислений могут интерпретироваться не только как числовые значения физических величин

Знакомство с системой Mathematica
После того как запустим систему Mathematica 5, получится примерно то что изображено на 2.1. Большое белое окно слева- блокнот. Именно в него вводится информация, и именно в нем отображаются результаты. Окно в середине - заставка-приветствие и справка. Окно справа - панель для ввода математических символов греческих букв и т.п.

Что такое число
Что такое число? Однозначного ответа на этот вопрос нет. Например, комплексное число — это число или все-таки вектор? А действительное число — это число или сечение во множестве рациональных чисел? А если комплексные числа все-таки числа, то кватернионы — тоже числа или уже объекты другой природы? Ну а если даже кватернионы — все-таки числа, то разве не следует к числам причислить и октавы Кэли? Иногда очень удобно считать, что числа — это элементы любого кольца.

Факторизация целых чисел с помощью функции FactorInteger
В ряде задач очень важно знать, насколько быстро можно разложить целое число на простые множители. По этой причине давайте рассмотрим, какие числа функция FactorInteger может разложить на простые множители за приемлемое время. Конечно, мы не собираемся факторизовать все числа подряд (для этого не хватило бы и многотомного труда), а займемся только классическими последовательностями.

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

Наибольший общий делитель
Для нахождения наибольшего общего делителя чисел (целых, рациональных или гауссовых) в системе Mathematica предусмотрено две функции: GCD и ExtendedGCD.

Деление с остатком
При выполнении операции деления с остатком получается частное и остаток. Для нахождения частного и остатка в системе Mathematica предусмотрены функции Quotient и Mod.

Функция Эйлера — EulerPhi Если в полной системе вычетов по модулю nоставить только вычеты, взаимно простые с модулем, получим приведенную систему вычетов по модулю n. Мощность приведенной системы вычетов по модулю n как множества обозначается ?(n), а функция ?:n-?(n) называется функцией Эйлера. Найдем, для примера, приведенную систему вычетов по модулю 10.

Литьё пластмасс под давлением

Одной из разновидностей литья под давлением термопластичных материалов является т.н. литье при низком давлении (low-pressure injection molding) /1-5/. Литье при низком давлении применяется для изготовления крупногабаритных изделий (столешницы, двери, различные панели, подставки и пр.), а также изделий с декоративной поверхностью, получаемых методом литья на подложку (ткань, кожу, пленку). В зарубежной литературе для последнего процесса обычно используют термины "In-mold decoration" (IMD) или "In-mold lamination". Методом литья на подложку изготавливают мебель (сиделья стульев и кресел), чемоданы и дипломаты, крупногабаритные детали салона автомобилей и т.д.
Особенностью литья на подложку является невозможность применения высоких скоростей впрыска, характерных для обычного литья под давлением, т.к. при высокой скорости впрыска происходит смещение и смятие подложки. При малых скоростях впрыска резко уменьшаются потери давления: давление впрыска в этом процессе обычно не превышает 10 МПа.

Отечественные изготовители добавок
Назначение и область применения. Нуклеаторы (структурообразователи, нуклеирующие агенты, нуклеазиды, нуклеаты) применяются для улучшения механических характеристик кристаллизующихся материалов: полипропилена (блок-сополимер и др.). Используются в качестве просветлителей (повышают прозрачность и снижают мутность) для гомополимера полипропилена, статистического сополимера полипропилена.

Компьютерный анализ литья термопластов
При литье крышки рыбного ящика из ПЭНД с габаритными размерами 625 х 325 х 19 мм наблюдалось очень большое коробление (до 40 мм), изделие имело седловидную форму. Основная толщина изделия составляла 2.5 мм. Толщина ребер, расположенных крестообразно от центра изделия, была равна 3.5 мм. По периметру изделие имело толщину 2 мм. Впуск материала производился через центральный литник.

Время охлаждения термопластов
Расчет процесса литья под давлением выполнен с помощью программного продукта MPI/Flow фирмы Moldflow (о методике расчета). Температуры формы и расплава соответствуют средним значениям рекомендуемого диапазона переработки.

Дефекты литьевых изделий
Возможные причины и способы устранения. Темные включения появляются вследствие деструкции и обугливания полимера из-за перегрева полимера в материальном цилиндре (см. также подгары), вследствие высокого содержания вторичного материала, наличия в цилиндре остатков предыдущего материала, а также при попадании посторонних примесей.

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

Книги и брошюры
Данный перечень не претендует на полноту, в дальнейшем он будет дополняться. Публикации рекламного характера в этот перечень не включены.

Технология литья термопластов
Во многих случаях эксплуатационные свойства полимеров зависят от метода получения. Разработка новых методов синтеза позволила в последние годы получить материалы с необычным комплексом свойств, расширяющим традиционные области их применения. Поэтому в дальнейшем мы планируем дать в справочнике информацию о методах синтеза полимеров.

База данных по литьевым материалам
Прозрачная литьевая марка. Имеет повышенную светостойкость. Допущена для контакта с пищевыми продуктами, детских игрушек. Примеры применения: детали осветительных приборов, товары народного потребления. Коэффициент светопропускания = 88%.

Режимы литья термопластов
Литьевая марка с высокой текучестью. Имеет высокую ударопрочность, химическую стойкость, стойкость к растрескиванию под напряжением. Примеры применения: детали интерьера автомобилей, корпусные детали и ручки бытовой техники, электроинструмента, садово-паркового оборудования, спортивные товары.

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

Литье термопластов
Класс, группа материалов. Смеси на основе АБС, смеси полиамидов / Конструкционные термопласты. Структура. Аморфный или кристаллизующийся материал. В основном выпускается смесь ABS + PA 6.

Переработка
Механические свойства. Имеет широкий разброс механических характеристик. FPVC - эластичный материал. RPVC имеет высокую прочность и жесткость. Электрические свойства. Материал на основе суспензионного ПВХ имеет хорошие диэлектрические характеристики (но хуже, чем у PE, PP, PS).

Характеристики марочного ассортимента
Характеристики марочного ассортимента (минимальные и максимальные значения для литьевых промышленных марок)

Химическая стойкость
Интерполимерами (interpolymer) или называют сополимеры или смеси полимеров, образующие гомогенную структуру, в которой компоненты не выделяются в отдельные фазы. ESIполучают сополимеризацией стирола с этиленом с помощью металлоценовых катализаторов (процесс INSITE фирмы Dow, начало производства: 1995).

Торговые марки и изготовители материалов
Торговое название может соответствовать различным типам материалов

Примеры применения
Детали автомобилей. Автомобильные дворники. Приборные щитки. Детали механизма ремней безопасности, механизма сидений, стеклоподъемников, дверных замков, устройств регулирования отопления, осевых вентиляторов, водоотделителей, кондиционера. Рычаги для открывания бензобака. Подрулевые переключатели. Устройства регулировки наружных зеркал.

Зарубежные изготовители полимерных материалов
Abu Dhabi Polymers Company (Borouge). Совместное предприятие ADNOC и Borealis, расположено в Арабских Эмиратах. Основано в 1997. Выпускает материалы: Borstar (HDPE), MDPE, LDPE, LLDPE и др.

Литьевая усадка термопластичных материалов
Важно иметь в виду, что при высокой температуре формы ПЭТ кристаллизуется и дает высокую усадку. При низкой температуре формы ПЭТ остается аморфным, усадка имеет невысокие значения.

Литьевая усадка материалов
Рекомендуется использовать данную информацию только для предварительных оценок. Актуальную информацию об усадке материала можно получить у его изготовителя или поставщика.

Литье при низком давлении
Одной из разновидностей литья под давлением термопластичных материалов является т.н. литье при низком давлении (low-pressure injection molding) /1-5/. Литье при низком давлении применяется для изготовления крупногабаритных изделий (столешницы, двери, различные панели, подставки и пр.), а также изделий с декоративной поверхностью, получаемых методом литья на подложку (ткань, кожу, пленку).

Зарубежные изготовители термопластавтоматов
Arburg. Немецкая фирма, специализирующаяся на небольших термопластавтоматах. Выпускает гидроприводные, электроприводные машины с массой впрыска от 18 г, усилием замыкания от 15 до 400 тс; вертикальные машины; машины для литья PET-преформ; машины для многокомпонентного и многоцветного литья; машины для литья CD.

Названия марок термопластичных материалов

Удивительная механика

Проблема накопления энергии – одна из важнейших научно-технических проблем современности. Во всех промышленно развитых странах ведется научный поиск в этом направлении. Еще бы – топлива становится все меньше, энергия дорожает с каждым днем, а накопитель энергии мог бы основательно помочь в ее экономии. Действительно, сейчас мы используем подавляющее количество энергии в момент ее выработки. А если бы человечество обладало эффективным накопителем энергии, той «энергетической капсулой», которую ищет автор книги, то можно было бы запасать энергию впрок, как бы передавать ее во времени. Трудно переоценить, какие выгоды дало бы человечеству использование «энергетической капсулы». Вместо двигателей на автомобилях стояли бы накопители, запасающие дешевую и экологичную – безвредную для природы – энергию мощных электростанций. Сами электростанции могли бы запасать в огромных накопителях энергию ночью, когда она сравнительно дешевая, и расходовать ее в часы пик. Энергия транспортных машин не переходила бы бесцельно в нагрев тормозов, а, проходя через накопитель, использовалась бы снова и снова. Ведь не секрет, что сейчас около половины энергии, вырабатываемой двигателями городских транспортных машин – автомобилей, автобусов, троллейбусов, поездов метро – бесполезно «гасится» в тормозах. Нетрудно представить, сколько энергии, горючего можно было бы сохранить в этих машинах с помощью накопителя. Есть и другая сторона этой проблемы: проходя через накопитель, энергия становится как бы экологичнее, безвреднее для окружающей среды.

В поисках «энергетической капсулы»
Кто в юности не мечтает совершить выдающееся открытие, сделать ценное изобретение? Кто не хочет удивить современников и остаться в памяти потомков? Кто не хочет, чтобы его называли гением? Вот с этих честолюбивых замыслов и начался мой путь к «энергетической капсуле». Предыдущие мои попытки поразить мир – то игрой на скрипке, то сочинением стихов – кончались глубоким, почти летаргическим сном слушателей

Небольшая экскурсия в молодость
Как быстро пролетело время! Еще пятнадцатилетним юношей я принялся за поиск «энергетической капсулы», а сегодня мне уже страшно сказать сколько. Прошло полвека, пятьдесят лет непрерывной работы, но задача создания «энергетической капсулы», пожалуй, только сейчас встала передо мной во всей своей грандиозности. Энергия и топливо стали как никогда дорогими, экология – глобальной проблемой, запасание энергии впрок – насущной жизненной потребностью человека.

Основы технологии изготовления деталей из пластмасс

Пластмассы - материалы на основе органических природных, синтетических  или органических полимеров, из которых можно после нагрева и приложения давления формовать изделия сложной конфигурации. Полимеры - это высоко молекулярные соединения, состоящие из длинных молекул с большим количеством одинаковых группировок атомов, соединенных химическими связями. Кроме полимера в пластмассе могут быть некоторые добавки.
Переработка пластмасс - это совокупность технологических процессов, обеспечивающих получение изделий - деталей с заданными конфигурацией, точностью и эксплуатационными свойствами.
Высокое качество изделия будет достигнуто, если выбранные материал и технологический процесс будут удовлетворять заданным эксплуатационным требованиям изделия: электрической и механической прочности, диэлектрической проницаемости, тангенсу угла диэлектрических потерь, прочности, плотности и т.п. Эти требования должны быть учтены при создании элементной базы (микросхем, микросборок и т.п.) и элементов базовых несущих конструкций (БНК), печатных плат, панелей, рам, стоек, каркасов и др. 

Структура полимеров.

Уплотнение неподвижных соединений

Прокладочный материал выбирают в зависимости от условий работы, величины давления, температурного режима и т. д. Для уплотнения сое­динений общего назначения, например крышек маслосодержащих полостей, чаще всего применяют прокладочную бумагу толщиной 0,05—0,15 мм, ка­бельную бумагу (бумагу, пропитанную бакелитом или другими синтети­ческими смолами), прокладочный картон толщиной 0,5—1,5 мм, прессшпан и т. д. Наилучшими свойствами обладают прокладки из синтетических материалов типа полихлорвинила и политрифторэтилена.

Листовые прокладки

Основы объектно-ориентированного проектирования

Люди верят заповедям. Сражения за незыблемые "Принципы Истинной Веры" не являются чем-то новым и характерны не только для разработчиков ПО.
Программистская литература, включая ОО-ветвь, учитывает эти естественные желания и предлагает массу рецептов. В результате существует много полезных советов, наряду с еще большим количеством весьма спорных идей.
Следует помнить, что нет простых путей, ведущих к созданию качественного ПО. В предыдущих лекциях несколько раз звучала мысль, что конструирование ПО - это не тривиальная задача, каждый раз бросающая вызов разработчику. За последние годы наше понимание проблем существенно усовершенствовалось, о чем свидетельствует техника, представленная в этой книге. Одновременно выросли наши амбиции и желание создавать проекты больших размеров, работающие быстрее. В конечном счете проблемы остались такими же трудными, как и ранее.
По этим причинам важно понимать достоинства и ограничения, присущие методологии конструирования ПО. От последующих лекций этой книги, как и от всей обширной ОО-литературы, вы имеете право ожидать полезных советов и тех преимуществ, которые может дать опыт людей, создававших ПО. Но ни здесь, и нигде вы не найдете надежного и легкого пути создания качественного ПО.

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

Многопанельные системы
Наша задача - спроектировать систему, представляющую некоторый общий тип интерактивных систем. В этих системах работа пользователя состоит в выполнении ряда этапов, и каждый этап поддерживается полноэкранной диалоговой панелью.

Проделки дьявола
Человеку свойственно ошибаться - чтобы окончательно все запутать, дайте ему компьютер. Чем быстрее становятся наши интерактивные системы, тем проще выполнить совсем не желанные действия. Вот почему хотелось бы иметь способ стереть прошлое, но не "большой красной кнопкой", стирающей все, - одной из компьютерных шуток, а иметь Большую Зеленую Кнопку, нажатие которой избавляет нас от сделанных ошибок.

Изучение документа "технические требования"
Для понимания проблемы поиска классов, возможно, лучше всего начать с известного и широко опубликованного подхода.

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

Как не следует использовать наследование
Для выработки методологического принципа часто полезно - как показано во многих обсуждениях этой книги - вначале понять, как не следует делать вещи. Понимание того, "что такое плохо", позволяет осознать, "что такое хорошо". Если постоянно тепло, то грушевое дерево не зацветет, ему необходима встряска зимним морозом - тогда оно расцветет весной.

Общая схема разработки
Разработка снизу вверх: постройте прочный базис, затем применяйте его к специальным случаям. Бесшовность: применяйте согласованные приемы и инструментарий на этапах анализа, проектирования, разработки и сопровождения. Обратимость: извлекайте пользу из уроков реализации и корректируйте функциональную спецификацию.

Дела косметические!
Хотя правила, представленные здесь, не столь фундаментальны, как принципы ОО-конструирования ПО, было бы глупо рассматривать их просто как "косметику". Хорошее ПО хорошо в большом и в малом - в архитектуре высокого уровня и в деталях низкого уровня. Качество деталей еще не гарантирует качества в целом, но небрежность в деталях верный признак более серьезных ошибок

Цели анализа
Для понимания задач необходимо разобраться в роли анализа в разработке ПО и определить требования к методу анализа.

Кластеры
В основе модульной структуры ОО-метода лежит класс. Классы обычно группируют в коллекции, называемые кластерами. Кластер - это группа связанных классов или связанных кластеров (рекурсивное определение).

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

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

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

Необходимые средства
Для устранения непонимания начнем с терминологии. Слово "пользователь" (одно из самых оскорбительных для компьютерщиков) здесь может ввести в заблуждение. Некоторые люди, называемые разработчиками приложений, создают интерактивные приложения, используемые другими людьми, называемыми конечными пользователями.

Немного контекста
Создание языка Ada было реакцией на кризис середины 70-х годов, ощутимый для политики в области разработки ПО в Департаменте Обороны США (DoD). В отчете, предшествовашем появлению языка Ada, отмечалось, что в военной отрасли в тот момент использовалось более 450 языков программирования, многие из которых технически устарели.

Уровни языковой поддержки
К функциональному уровню отнесем языки, где единицей декомпозиции является подпрограмма, функциональная абстракция, описывающая шаг обработки. Абстракция данных, если она есть, обрабатывается через определения структур данных, либо локальных для подпрограммы, либо глобальных.Языки инкапсулирующего уровня позволяют группировать подпрограммы и данные в синтаксической единице, называемой модулем или пакетом.

Simula
Simula - это несомненный основатель Дома Классов (Дворца Объектов). Создание его было завершено (если не принимать во внимание небольшие более поздние обновления) в 1967 г. В это, возможно, трудно поверить: оформившийся ОО-язык существовал и был реализован до структурного программирования, до публикации Парнасом статей по скрытию информации, задолго до появления фразы "абстрактный тип данных".

Компоненты среды
Среда объединяет следующие элементы: лежащий в основе метод: ОО-метод, описанный в этой книге;язык - нотацию, представленную в этой книге и используемую на этапах анализа, проектирования и реализации;набор инструментальных средств, необходимых для использования метода и языка: средства компиляции, просмотра, документирования, проектирования;библиотеки программных компонент повторного использования.

Извлечения из библиотек Base
В течение всего нашего обсуждения мы неоднократно встречались со ссылками на базовые библиотеки Base, в особенности на библиотеку ядра Kernel, в которой сгруппированы наиболее фундаментальные классы.

Универсальность и (versus) наследование
Последующий материал и его появление в приложении требует некоторых пояснений. Начальным толчком, приведшим в итоге к появлению этой книги, было исследование, проведенное в 1984 году при подготовке курса для студентов "Концепции в языках программирования", в котором я сравнивал "горизонтальный" механизм универсальности с "вертикальным" механизмом наследования, введенным в Simula.