Математический редактор MathCAD



   Девица случайно идет по этой ссылке , там ее мамку трахает пожарный | 2020. Источник: http://www.radioland.net.ua/.    производитель недорогих сумок | магазин бондарных изделий, виски. |    порно     Порно транссексуалы кончают e-batsa.pro | Buy instant YouTube likes  

Математический редактор MathCAD

Mathcad является математическим редактором, позволяющим проводить разнообразные научные и инженерные расчеты, начиная от элементарной арифметики и заканчивая сложными реализациями численных методов. Пользователи Mathcad — это студенты, ученые, инженеры, разнообразные технические специалисты. Благодаря простоте применения, наглядности математических действий, обширной библиотеке встроенных функций и численных методов, возможности символьных вычислений, а также превосходному аппарату представления результатов (графики самых разных типов, мощных средств подготовки печатных документов и Web-страниц), Mathcad стал наиболее популярным математическим приложением.
Mathcad 11, в отличие от большинства других современных математических приложений, построен в соответствии с принципом WYSIWYG ("What You See Is What You Get" — "что Вы видите, то и получите"). Поэтому он очень прост в использовании, в частности, из-за отсутствия необходимости сначала писать программу, реализующую те или иные математические расчеты, а потом запускать ее на исполнение. Вместо этого достаточно просто вводить математические выражения с помощью встроенного редактора формул, причем в виде, максимально приближенном к общепринятому, и тут же получать результат Кроме того, можно изготовить на принтере печатную копию документа или создать страницу в Интернете именно в том виде, который этот документ имеет на экране компьютера при работе с Mathcad Создатели Mathcad сделали все возможное, чтобы пользователь, не обладающий специальными знаниями в программировании (а таких большинство среди ученых и инженеров), мог в полной мере приобщиться к достижениям современной вычислительной науки и компьютерных технологий. Для эффективной работы с редактором Mathcad достаточно базовых навыков пользователя. С другой стороны, профессиональные программисты (к которым относит себя и автор этих строк) могут извлечь из Mathcad намного больше, создавая различные программные решения, существенно расширяющие возможности, непосредственно заложенные в Mathcad.

Начинаем работу
В данной главе рассмотрено назначение приложения Mathcad 11 и, в целях знакомства с его основными возможностями, приведены базовые приемы его использования (см. разд. 1.1—1.2). Если вы уже имели дело с прежними версиями, начиная с Mathcad 7, и у вас неплохие навыки работы с его редактором, то можете смело пропустить эту главу.

Начинаем работу
Назначение Mathcad
Знакомство с Mathcad
Интерфейс пользователя
Меню
Панели инструментов
Настройка панели инструментов
Рабочая область
Строка состояния
Справочная информация

Редактирование документов
В данной главе рассматриваются основные приемы редактирования документов Mathcad. Первый раздел посвящен созданию новых документов и сохранению расчетов в файлах (см. разд. 2 1). В трех следующих рассмотрены способы редактирования формул (см. разд. 2.2), текста (см. разд. 2.3) и правки частей документа Mathcad (см. разд. 2.4). В заключение главы приводятся основные сведения по распечатке документов (см. разд. 2.5), рассылке их по электронной почте (см. разд. 2.6) .

Редактирование документов
Работа с документами
Управление документами
Создание документа на основе шаблона
Сохранение документа
Открытие существующего документа
Закрытие документа
Ввод и редактирование формул
Элементы интерфейса
Ввод формул

Вычисления
Основные инструменты математика — это операции с переменными величинами и функциями. В Mathcad переменные, операторы и функции реализованы в интуитивной форме, т. е. выражения в редакторе вводятся и вычисляются так, как они были бы написаны на листе бумаги. Порядок вычислений в документе Mathcad также очевиден: математические выражения и действия воспринимаются процессором слева направо и сверху вниз.

Переменные и функции
Определение переменных
Присваивание переменным значений
Функции
Определение функции пользователя
Вывод значений переменных и функций
Символьный вывод
Допустимые имена переменных и функций
Операторы
Арифметические операторы

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

Типы данных
Действительные числа
Комплексные числа
Встроенные константы
Строковые выражения
Размерные переменные
Создание размерной переменной
Работа с размерными переменными
Выбор системы единиц
Определение новой размерности

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

Способы символьных вычислений
Символьная алгебра
Упрощение выражений (Simplify)
Разложение выражений (Expand)
Разложение на множители (Factor)
Приведение подобных слагаемых (Collect)
Коэффициенты полинома (Polynomial Coefficients)
Ряды и произведения
Разложение на элементарные дроби (Convert to Partial Fractions)
Подстановка переменной (Substitute)

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

Программирование без программирования
Язык программирования Mathcad
Что такое программа?
Создание программы (Add Line)
Разработка программы
Локальное присваивание (<—)
Условные операторы (if, otherwise)
Операторы цикла (for, while, break, continue)
Возврат значения (return)
Перехват ошибок (on error)

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

Интегрирование
Операторы интегрирования
Об алгоритмах интегрирования
О расходящихся интегралах
Кратные интегралы
Дифференцирование
Первая производная
Производные высших порядков

Алгебраические уравнения и оптимизация
Первый тип функции root требует дополнительного задания начального значения (guess value) переменной х. Для этого нужно просто предварительно присвоить х некоторое число. Поиск корня будет производиться вблизи этого числа. Таким образом, присвоение начального значения требует априорной информации о примерной локализации корня.

Одно уравнение с одним неизвестным
Корни полинома
Системы уравнений
О численных методах решения систем уравнений
Приближенное решение уравнений
Поиск экстремума функции
Экстремум функции одной переменной
Условный экстремум
Экстремум функции многих переменных
Линейное программирование

Матричные вычисления
Простейшие операции матричной алгебры реализованы в Mathcad в виде операторов. Написание операторов по смыслу максимально приближено к их математическому действию. Каждый оператор выражается соответствующим символом Рассмотрим матричные и векторные операции Mathcad 11. Векторы являются частным случаем матриц размерности NXI, поэтому для них справедливы все те операции, что и для матриц, если ограничения особо не оговорены (например некоторые операции применимы только к квадратным матрицам NXN). Какие-то действия допустимы только для векторов (например скалярное произведение), а какие-то, несмотря на одинаковое написание, по-разному действуют на векторы и матрицы.

Транспортирование
Сложение
Умножение
Определитель квадратной матрицы
Модуль вектора
Скалярное произведение векторов
Векторное произведение
Сумма элементов вектора и след матрицы
Обратная матрица
Возведение матрицы в степень

Специальные функции
Функции Бесселя, по определению, являются решениями различных краевых задач для некоторых обыкновенных дифференциальных уравнений (ОДУ).

Обычные функции Бесселя
Модифицированные функции Бесселя
Функции Эйри
Функции Бесселя-Кельвина
Сферические функции Бесселя
Функции работы с комплексными числами
Логарифмы и экспонента (Log and Exponential)
Тригонометрические функции (Trigonometric)
Гиперболические функции (Hyperbolic)
Другие спецфункции (Special)

Обыкновенные дифференциальные уравнения
Для численного интегрирования одного ОДУ у пользователя Mathcad 11 (начиная с версии Mathcad 2000 Pro) имеется выбор — либо использовать вычислительный блок Given/odesoive, либо встроенные функции, как в прежних версиях Mathcad. Первый путь предпочтительнее из соображений наглядности представления задачи и результатов, а второй дает пользователю больше рычагов воздействия на параметры численного метода. Рассмотрим последовательно оба варианта решения.

ОДУ первого порядка
Вычислительный блок Given/Odesolve
Встроенные функции rkflxed, Rkadapt, Bulstoer
ОДУ высшего порядка
Системы ОДУ первого порядка
Встроенные функции для решения систем ОДУ
Решение систем ОДУ в одной заданной точке
Некоторые примеры
Фазовый портрет динамической системы
Жесткие системы ОДУ

Краевые задачи
Постановка краевых задач для ОДУ отличается от задач Коши, рассмотренных в главе 11, тем, что граничные условия для них ставятся не в одной начальной точке, а на обеих границах расчетного интервала. Если имеется система N обыкновенных дифференциальных уравнений первого порядка, то часть из N условий может быть поставлена на одной границе интервала, а оставшиеся условия — на противоположной границе.

Краевые задачи для ОДУ
О постановке краевых задач
Алгоритм стрельбы
Решение двухточечных краевых задач
Задачи на собственные значения для ОДУ
Разностные схемы для ОДУ
О разностном методе решения ОДУ
Жесткие краевые задачи

Дифференциальные уравнения в частных производных
Постановка задач для уравнений в частных производных включает определение самого уравнения (или системы нескольких уравнений), а также необходимого количества краевых условий (число и характер задания которых определяется спецификой уравнения). По своему названию уравнения должны содержать частные производные неизвестной функции и (или нескольких функций, если уравнений несколько) по различным аргументам, например пространственной переменной х и времени t. Соответственно, для решения задачи требуется вычислить функцию нескольких переменных, например u
Постановка задач
Классификация уравнений в частных производных
Пример: уравнение диффузии тепла
Разностные схемы
Явная схема Эйлера
Неявная схема Эйлера
О возможности решения многомерных уравнений
Aункции для решения уравнений в производных
Параболические и гиперболические уравнения
Эллиптические уравнения

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

Случайные величины
Нормальное (Гауссово) распределение
Равномерное распределение
Биномиальное распределение
Другие статистические распределения
Статистические характеристики
Построение гистограмм
Среднее значение и дисперсия
Генерация коррелированных случайных чисел
Ковариация и корреляция

Обработка данных
Для построения интерполяции-экстраполяции в Mathcad имеются несколько встроенных функций, позволяющих "соединить" точки выборки данных (xi, yi) кривой разной степени гладкости. По определению интерполяция означает построение функции д(х), аппроксимирующей зависимость у(х) в промежуточных точках (между xi). Поэтому интерполяцию еще по-другому называют аппроксимацией.

Интерполяция
Линейная интерполяция
Кубическая сплайн-интерполяция
Полиномиальная сплайн-интерполяция
Экстраполяция функцией предсказания
Многомерная интерполяция
Регрессия
Линейная регрессия
Полиномиальная регрессия
Регрессия специального вида

Ввод-вывод данных
Наиболее простой и распространенный ввод-вывод данных в Mathcad реализован присваиванием и (либо численным, либо символьным) выводом непосредственно в документе. Фактически документ Mathcad является одновременно и кодом программы и результатом ее выполнения. Поэтому самый простой и распространенный способ ввода-вывода — это непосредственное присвоение и вывод вычисленных значений в документах.

Числовой ввод-вывод
Создание графиков
Двумерные графики
XY-график двух векторов
XY-график вектора и ранжированной переменной
XY-график функции
Полярный график
Построение нескольких рядов данных
Форматирование осей
Форматирование рядов данных

Оформление документов
Перечислим элементы оформления документов, которые допускается применять в Mathcad как, собственно, для проведения математических расчетов, так и в чисто декоративных целях

Элементы оформления документов
Элементы оформления
Размещение элементов оформления в документах
Выделение областей
Работа с зонами
Форматирование текста и формул
Форматирование текста
Стили текста и формул
Оформление страниц
Параметры страницы

Математические задачи в пакете MathCAD 12

Mathcad — необычная программа. Она относится к классу приложений, называемых PSE (problem solution environment — программная среда для решения задач). Это подразумевает, что ее работа не определяется однозначно действиями пользователя (как, например, в текстовых редакторах и т. п.), а является (в большей степени) результатом работы встроенных алгоритмов, недоступных взору исследователя. Введя в редакторе Mathcad выражение, даже довольно простое, например, df (x)/dx=, и получив некоторый ответ, многие даже не задумываются о том, что для его вычисления проделывается довольно сложная работа, результат которой заранее не предопределен и зависит от целого ряда факторов, не представленных непосредственно на рабочей области документа (свойств функции f, параметров численного алгоритма дифференцирования, значения системных констант и т. д.). Поэтому, проводя даже очень простые расчеты, вам придется иногда сталкиваться с неочевидным поведением программы, которое нельзя понять без ясного представления об основах работы соответствующих алгоритмов, встроенных в Mathcad.
Приложение Mathcad компании MathSoft — самый популярный из компьютерных математических пакетов, остающийся, бесспорно, на протяжении многих последних лет лидером в своем классе математического и образовательного программного обеспечения (ПО). С его помощью можно решать самые разные математические задачи и оформлять результаты расчетов на высоком профессиональном уровне, и сейчас уже сложно представить современного ученого, не пользующегося Mathcad. При помощи этого пакета осуществляются не только простые и вспомогательные вычисления, но и довольно сложные расчеты и научные исследования, использующие комбинации самых разных численных алгоритмов и аналитических преобразований.

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

Основные сведения о Mathcad
В данной главе рассмотрены базовые приемы работы с Mathcad 2001—12. Мы дадим самые основные сведения, касающиеся интерфейса и возможностей Mathcad, пользуясь тем, что он интуитивен и похож на другие программы Windows

Основные сведения о Mathcad
Знакомство с Mathcad
Назначение Mathcad
Интерфейс пользователя
Панели инструментов
Справочная информация
Основы вычислений в Mathcad
Операторы численного и символьного вывода
Математические выражения и функции
Переменные и оператор присваивания

Алгебраические вычисления
В данной главе рассматриваются простые вычисления, осуществляемые в Mathcad. Во-первых, приведено описание имеющихся встроенных операторов (см. разд. 27) и функций (см. разд. 2.2), при помощи которых можно рассчитать значение алгебраических выражений, построить графики и т. п. Во-вторых, составлен обзор наиболее простых символьных операций, реализующих в Mathcad аналитические преобразования для решения типичных задач алгебры. Они проводятся без применения численных методов и, соответственно, без погрешностей вычислений (см. разд. 2.3)

Алгебраические вычисления
Операторы
Арифметические операторы
Вычислительные операторы
Логические операторы
Матричные операторы
Операторы выражения
Функции
Элементарные функции
Вспомогательные функции

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

Дифференцирование
Аналитическое дифференцирование
Аналитическое дифференцирование функции
Вычисление производной функции в точке
Функции через оператор дифференцирования
Дифференцирование при помощи меню
Численное дифференцирование
Дифференцирование в точке
Об алгоритме дифференцирования
Производные высших порядков

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

Интегрирование
Определенный интеграл
Оператор интегрирования
О выборе алгоритма численного интегрирования
О традиционных алгоритмах интегрирования
Алгоритм Ромберга
Неопределенный интеграл
Символьное интегрирование
Интегрирование при помощи меню
Интегралы специального вида

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

Нелинейные алгебраические уравнения
Символьное решение уравнений
Вычислительный блок Given / Find
Одно уравнение
Системы уравнений
Решение уравнений при помощи меню
Численное решение уравнений
Системы уравнений: функция Find
Уравнение с одним неизвестным: функция root
Корни полинома: функция polyroots

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

Оптимизация
Поиск экстремума функции
Локальный экстремум
Условный экстремум
Экстремум функции нескольких переменных
Пример: линейное программирование
Аналитическое решение задач на экстремум
Приближенное решение алгебраических уравнений
Пример: регуляризация некорректных задач
О постановке некорректных задач

Линейная алгебра
Задачи линейной алгебры, решаемые в Mathcad, можно условно разделить на два класса. Первый — это простейшие матричные операции, которые сводятся к определенным арифметическим действиям над элементами матрицы. Они реализованы в виде операторов (см. разд. 7.1 и 7.2) и нескольких специфических функций, предназначенных для создания, объединения, сортировки, получения основных свойств матриц и т. п. (см. разд. 7.4). Второй класс — это более сложные действия, которые реализуют алгоритмы вычислительной линейной алгебры, такие как вычисление определителей и обращение матриц

Линейная алгебра
Простейшие матричные операции
Транспонирование
Сложение и вычитание
Умножение
Векторная алгебра
Модуль вектора
Скалярное произведение
Векторное произведение
Векторизация массива

Системы линейных уравнений
Одной из центральных проблем вычислительной линейной алгебры является решение систем линейных уравнений (см. разд. 8.1 и 8.2), отыскание собственных векторов и собственных значений (см. разд. 8.4), а также различные матричные разложения (см. разд. 8.3). Все они будут рассмотрены в данной главе, являющейся, фактически, продолжением предыдущей (которая была посвящена простейшим матричным вычислениям).

Системы линейных уравнений
Обусловленные системы с квадратной матрицей
Вычислительный блок Given / Find
Функция lsolve
Произвольные системы линейных уравнений
Переопределенные системы
Недоопределенные системы
Вырожденные и плохо обусловленные системы
Матричные разложения
СЛАУ с треугольной матрицей

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

О постановке задач
Задачи Коши для ОДУ
Фазовый портрет динамической системы
Дифференциальное уравнение N-то порядка
Система N дифференциальных уравнений
Встроенные функции для решения систем ОДУ
Решение одного уравнения (N=1)
Решение систем ОДУ в одной заданной точке
О численных методах
Жесткие системы ОДУ

Обыкновенные дифференциальные уравнения: краевые задачи
Несмотря на то, что, в отличие от задач Коши для ОДУ, в Mathcad не предусмотрены встроенные функции для решения жестких краевых задач, с ними все-таки можно справиться, применив программирование разностных схем, подходящих для решения задач этого класса (см. разд. 104). О подходе к решению нелинейных краевых задач написано в конце главы (см. разд. 10.5).

Диф. уравнения: краевые задачи
О постановке задач
Решение краевых задач средствами Mathcad
Алгоритм стрельбы
Двухточечные краевые задачи
Краевые задачи с условием во внутренней точке
Задачи на собственные значения для ОДУ
Разностные схемы для ОДУ
О разностном методе
Жесткие краевые задачи

Дифференциальные уравнения в частных производных
Несмотря на то, что Mathcad обладает довольно ограниченными возможностями по отношению к уравнениям в частных производных, в нем имеется несколько встроенных функций (см. разд. 11.3). Решать уравнения в частных производных можно и путем непосредственного программирования пользовательских алгоритмов (см. разд. 11.2). Автор совершенно сознательно сначала рассматривает численные методы для решения уравнений в частных производных, а уже затем описывает предназначенные для этого встроенные функции, чтобы читатель ясно осознавал, каким образом Mathcad производит расчеты.

Диф. уравнения в частных производных
О постановке задач
Классификация уравнений в частных производных
Пример: уравнение диффузии тепла
Разностные схемы
Явная схема Эйлера
Неявная схема Эйлера
О возможности решения многомерных уравнений
Встроенные функции для решения уравнений
Параболические и гиперболические уравнения

Статистика
Во-первых, имеется большое количество встроенных специальных функций, позволяющих рассчитывать плотности вероятности и другие основные характеристики основных законов распределения случайных величин (см. разд. 12.1). Наряду с этим, в Mathcad запрограммировано соответствующее количество генераторов псевдослучайных чисел для каждого закона распределения (см. разд. 12. Г), что позволяет эффективно проводить моделирование методами Монте-Карло. Во-вторых, предусмотрена возможность построения гистограмм и расчета статистических характеристик выборок случайных чисел и случайных процессов, таких как средние, дисперсии, корреляции и т. п. (см. разд. 12.2). При этом случайные последовательности могут как создаваться генераторами случайных чисел (методы Монте-Карло, см. разд. 12.3), так и вводиться пользователем из файлов. В-третьих, имеется целый арсенал средств, направленных на интерполяцию-экстраполяцию данных, построение регрессии по методу наименьших квадратов, фильтрацию сигналов. Наконец, реализован ряд численных алгоритмов, осуществляющих расчет различных интегральных преобразований, что позволяет организовать спектральный анализ различного типа.

Статистика
Статистические распределения
Статистические функции
Пример: нормальное (Гауссово) распределение
Выборочные статистические характеристики
Гистограммы
Среднее и дисперсия
Примеры: Выборочная оценка дисперсии
Корреляция
Функции корреляционного анализа сигналов

Интерполяция и регрессия
Посвятим данную главу самым простым методам обработки данных — интерполяции-экстраполяции и регрессии. Будем считать, что основным объектом исследования будет выборка экспериментальных данных, которые, чаще всего, представляются в виде массива, состоящего из пар чисел (xi,yi) (проблеме ввода/вывода числовых данных во внешние файлы посвящен заключительный раздел этой главы). В связи с этим возникает задача аппроксимации дискретной зависимости y(xi) непрерывной функцией f(x). Функция f (х), в зависимости от специфики задачи, может отвечать различным требованиям

Интерполяция и регрессия
Интерполяция
Линейная интерполяция
Кубическая сплайн-интерполяция
Полиномиальная сплайн-интерполяция
Сплайн-экстраполяция
Экстраполяция функцией предсказания
Многомерная интерполяция
Регрессия
Линейная регрессия

Спектральный анализ
Задачами, непосредственно связанными со спектральным анализом, являются проблемы сглаживания и фильтрации данных (см. разд. 14.3). Они заключаются в построении для исходной экспериментальной зависимости y(xi) некоторой (непрерывной или дискретной) зависимости f (х), которая должна приближать ее, учитывая к тому же, что данные (xi,yi) получены с некоторой погрешностью, выражающей шумовую компоненту измерений. При этом функция f (х) с помощью того или иного алгоритма уменьшает погрешность, присутствующую в данных (xi,yi). Такого типа задачи называют задачами фильтрации. Сглаживание путем построения регрессии данных (см. разд. 13.2) — это частный случай фильтрации.

Спектральный анализ
Фурье-спектр
Фурье-спектр действительных данных
Обратное преобразование Фурье
Преобразование Фурье комплексных данных
Артефакты дискретного Фурье-преобразования
Пример: спектр модели сигнал/шум
Двумерный спектр Фурье
Вейвлет-спектры
Встроенная функция вейвлет-преобразования

Приложения
Пользователям предыдущих версий Mathcad
Команды меню и панели инструментов
Встроенные операторы и функции
Сообщения об ошибках
Ресурсы Mathcad

MathCAD 7.0

Посвящено одной из самых мощных и эффективных математических систем — MathCAD 7.0. Она существует в двух вариантах:
Cтандартном MathCAD 7.0 Standard и
Профессиональном MathCAD 7.0 Professional Edition (PRO).
Стандартная версия ориентирована на большинство пользователей, а профессиональная — на профессионалов, серьезно занимающихся математическими расчетами.
Системы MathCAD традиционно занимают особое место среди множества таких систем (Eureka, Mercury, MatLAB, Mathematica 2 и 3, Maple V R3 и R4 и др.) и по праву могут называться самыми современными, универсальными и массовыми математическими системами. Они позволяют выполнять как численные, так и аналитические (символьные) вычисления, имеют чрезвычайно удобный математико-ориентированный интерфейс и прекрасные средства графики [6, 15,16]. Системы начиная с версии 3.9 работают под управлением графических операционных систем Windows 3.1/3.11 [16,17], а новая версия MathCAD 7.0 - под Windows 95/NT.
Системы класса MathCAD предоставляют уже привычные, мощные, удобные и наглядные средства описания алгоритмов решения математических задач. Преподаватели и студенты вузов получили возможность подготовки с их помощью наглядных и красочных обучающих программ в виде электронных книг с действующими в реальном времени примерами. Новейшая система MathCAD PLUS 7.0 PRO настолько гибка и универсальна, что может оказать неоценимую помощь в решении математических задач как школьнику, постигающему азы математики, так и академику, работавшему со сложнейшими научными проблемами. Система имеет достаточные возможности для выполнения наиболее массовых символьных (аналитических) вычислений и преобразований [18, 19].
Более 600 000 только зарегистрированных пользователей владеют ранними версиями системы MathCAD во всем мире, а с выходом новых версии системы это число наверняка заметно увеличится. Ну а незарегистрированных пользователей, пожалуй, еще больше. О системе с такой вычислительной мощью, как у MathCAD 6.0/7.0 PRO, еще пару десятков лет назад не могли мечтать даже разработчики уникальной научной и космической аппаратуры. Но эта мощь нисколько не затрудняет удивительно простое и интуитивно предсказуемое общение с системой на общепринятом языке математических формул и графиков.
Исключительно велика роль систем класса MathCAD в образовании. Облегчая решение сложных математических задач, система снимает психологический барьер при изучении математики, делая его интересным и достаточно простым. Грамотное применение систем в учебном процессе обеспечивает повышение фундаментальности математического и технического образования, содействует подлинной интеграции процесса образования в нашей стране и наиболее развитых западных странах, где подобные системы применяются уже давно. Новые версии MathCAD позволяют готовить электронные уроки и книги с использованием новейших средств мультимедиа, включая гипертекстовые и гипермедиа-ссылки, изысканные графики (в том числе анимационные), фрагменты видеофильмов и звуковое сопровождение.

Предисловие
Миллионы людей занимаются математическими расчетами, иногда в силу влечения к таинствам математики и ее внутренней красоте, а чаще в силу профессиональной или иной необходимости, не говоря уже об учебе. Ни одна серьезная разработка в любой отрасли науки и производства не обходится без трудоемких математических расчетов. Вначале эти расчеты выполнялись на программируемых микрокалькуляторах [1] или с помощью программ на универсальных языках программирования, таких, как Бейсик [2] или Паскаль. Постепенно для облегчения расчетов ' были созданы специальные математические компьютерные системы [3—14].

Основы работы с системой MathCAD 7. 0 PRO
Вскоре после окончания второй мировой войны потребность в автоматизации математических расчетов привела к созданию компьютеров (computer — в буквальном переводе "счетная машина"). Но широкого применения первые поколения таких машин на электронных лампах не получили. Они были дороги и громоздки, а потому доступны лишь специалистам. С развитием микроэлектроники появились специализированные, предназначенные для математических расчетов миниатюрные компьютеры личного пользования — программируемые калькуляторы [I]. Они широко применяются и сейчас. Однако в последние годы массовое распространение получили куда более мощные, быстрые и универсальные персональные компьютеры (ПК), имеющие превосходные графические возможности и используемые практически во всех сферах науки, производства, бизнеса и образования.

Инсталляция и запуск системы
Группа значков MathCAD 7. 0 PRO в Win 95
Титульная заставка системы MathCAD PLUS 6. 0
Окно системы MathCAD PLUS 7. 0
Основы пользовательского интерфейса
Окно редактирования
Экран системы MathCAD с окном редактирования
Экран системы MathCAD с документом
Экран системы MathCAD с закрытыми окнами
Главное меню

Работа с файлами
Файлы документов MathCAD содержат полный текст программы, выводящей документ в окно редактирования, с указаниями координат расположения блоков, фактического содержания и характера выполняемых операций, форматов предоставления информации и т д Таким образом, файл является по сути программой, записанной на внутреннем (промежуточном) языке программирования системы Файлы могут содержать и результаты вычислений Предусмотрена возможность записи документов и в особом формате RTF, созданном для хранения сложных многокомпонентных данных (содержащих тексты и 1рафики)

Позиция главного меню File
Переднее панно системы MathCAD
Подготовка к вводу нового документа (New)
Окно выбора стиля документа
Часть документа в стиле Bookone
Ввод документа с диска (Open...)
Пример задания новой папки из окна Open
Запись документа на диск без переименования
Запись документа на диск с переименованием
Окно для записи файла с указанием имени

Редактирование документов
Редактирование документов в ранних версиях системы MathCAD под MS-DOS было в определенном смысле искусством. Следовало помнить десятки сочетаний клавиш для ввода математических спецсимволов, шаблонов и греческих букв, правила стирания и вставки знаков в формулы и т. д. Все эти правила (несмотря на некоторые элементы их интуитивности) быстро забывались, и пользователю приходилось рыться в документах для их поиска или действительно полагаться на свою интуицию. Нередко это вело к тому, что замена в формуле какой-либо переменной или показателя степени легче обеспечивалась повторным набором блока целиком, чем применением напрочь забытых приемов редактирования.

Общие приемы редактирования документов (Edit)
Экран системы при активной позиции Edit
Отмена операции редактирования (Undo)
Выделение объектов и перенос их в буфер обмена
Пример выделения объектов в разных местах
Пример перенесения выделенных блоков
Пример выделения мышью части формулы
Копирование объекта в буфер обмена (Copy)
Пример переноса части выражения в окно
Перенос блоков из окна в окно

Управление обзором (View)
Как уже не раз отмечалось, пользовательский интерфейс новых версий MathCAD содержит такие элементы, как панель инструментов, панель форматирования и наборные панели для ввода математических символов. Наряду с полезными функциями (облегчение начальной работы с системой) эти средства имеют и недостаток: они заметно сужают полезную область рабочего экрана, уменьшая ее примерно на 3—4 строки. Существует три операции в подменю View (Обзор), позволяющие управлять выводом дополнительных элементов пользовательского интерфейса:

Управление элементами интерфейса
Выделение областей (Regions)
Изменение масштаба документа (Zoom)
Вид документа с выделенными областями
Вид документа в увеличенном масштабе (200%)
Вид документа в уменьшенном масштабе (75%)
Восстановление искажений экрана (Refresh)
Анимация графиков (Animation)
Подготовка к построению анимационного графика
Просмотр анимационных кадров

Работа со вставками
Вид подменю позиции Insert главного меню показан на рис. 5. 1. Для создания графиков в системе MathCAD имеется программный графический процессор. Основное внимание при его разработке было уделено обеспечению простоты задания графиков и их модификации с помощью соответствующих опций. Процессор позволяет строить самые разные графики, например в декартовой и полярной системах координат, трехмерные поверхности, графики уровней и т д

Подменю позиции Insert (Вставка) главного меню
Экран системы с открытым подменю Insert
Установка шаблона двумерных графиков
Задание трех функций и вывод шаблона графика
Задание функций и вывод шаблона графика
Пример построения двух графиков трех функций
График в полярной системе координат
Шаблон графиков типа Polar Plot
Графики функций в полярной системе координат
Пример прямого построения графика функции

Установки форматов объектов системы MathCAD
В соответствии с новой концепцией пользовательского интерфейса системы MathCAD 7. 0 PRO, ориентированной на стандартный Windows-интерфейс, все операции изменения формата сведены в подменю позиции Format (Форматирование) главного меню. В прежних версиях MathCAD операции форматирования были разбросаны по разным позициям главного меню.

Позиция Format главного меню
Установка формата чисел (Number...)
Окно для установки формата чисел
Представление большого массива в виде матрицы
Представление большого массива в виде таблицы
Форматирование математических выражений
Окно форматирования выражений
Окна выбора шрифтов для переменных
Замена латинских букв на греческие (Ctrl+ G)
Таблица ввода греческих букв

Управление вычислительными процессами
По умолчанию MathCAD работает в режиме автоматических вычислений. Однако иногда бывает удобнее работать в ручном режиме, например, если вычисления объектов при их изменении выполняются заново и долго. Ручной режим вводится операцией Calculate (Вычисления) из главного меню. Для ее выполнения надо нажать кнопку со знаком = в панели инструментов или клавишу F9. Разумеется, режим автоматических вычислений при этом должен быть отключен.

Вычисление в пределах экрана (Calculate)
Документ в режиме ручных вычислений
Ввод операции Calculate
Демонстрация неполного исполнения документа
Исполнение всего документа (Calculate Worksheet)
Исполнение операции Calculate Worksheet
Вычисления в автоматическом режиме
Оптимизация вычислений (Optimization)
Пример на оптимизацию вычислений
Установка опций (Options...)

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

Возможности символьного процессора (Symbolic)
Вид экрана системы с подменю позиции Symbolic
Операции с выделенными выражениями
Операции с выделенными переменными
Операции с выделенными матрицами
Стиль эволюции
Выделение объектов символьных операций
Выполнение символьных вычислений
Действие операции Evaluate Symbolically
Упрощение выражений (Simplify)

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

Подменю для работы с окнами (Window)
Вид экрана MathCAD с подменю Window
Каскадное расположение окон (Cascade)
Расположение окон после операции Cascade
Расположение окон по горизонтали (Horizontal)
Показывает вид экрана после выполнения...
Расположение окон после операции Gorizontal
Расположение окон по вертикали (Vertical)
Вид экрана после выполнения этой операции
Расположение окон после операции Vertical

Работа с информационными ресурсами
К информационным ресурсам системы MathCAD 7. 0 PRO относятся подсказка начального уровня Tip of the Day, электронный справочник по системе обучающая программа по ней, примеры применения (шпаргалки), электронные книги, справочные таблицы, доступ в Internet и др. Доступ ко всем этим ресурсам сосредоточен в подменю позиции Help (Справка) главного меню (рис. 10. 1).

Ресурсы системы MathCAD 7. 0 PRO
Экран системы MathCAD 7. 0 PRO
Работа со справочной системой (MathCAD Help)
Окно справочной системы
Пример получения справки
Панель справочной системы
Справочная база данных
Окно создания справочной базы данных
Окно поиска темы справочной базы данных
Работа с центром информационных ресурсов

Входной язык системы MathCAD 7.0
Система MathCAD практически избавляет нас от необходимости программировать решение многих задач. Уходит в прошлое подход, когда пользователь, прежде чем вычислить определенный интеграл или производную заданной функции либо просто рассчитать ряд ее значений, был вынужден изучать основы программирования на Фортране, Бейсике или Паскале, а затем составлять свои простенькие и не очень надежные программы или же разыскивать их в статьях и книгах, подобных [2], и самостоятельно загружать эти программы в ПК.

Базовые понятия входного языка системы
Алфавит MathCAD 7. 0 PRO
Числовые константы
Восьмеричные и шестнадцатеричные числа
Комплексные числа
Единицы измерения
Строковые константы
Переменные
Системные переменные
Операторы

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

Назначение системы SmartMath
Оператор символьного вывода
Оператор расширенного символьного вывода
Примеры применения символьных операций
Состав директив
Примеры применения символьных директив
Примеры символьных преобразований
Примеры применения символьных вычислений
Примеры на применение директив complex
Символьное вычисления интегралов

Интегратор приложений MathConnex
В сущности MathConnex является вполне самостоятельным приложением, включенным в систему MathCAD и выполняющим функции системного интегратора. Благодаря ему возможно простое и наглядное установление сложных взаимосвязей между различными приложениями: математической системой MathCAD, матричной системой MatLAB, графической системой Axum, электронными таблицами Excel из пакета Microsoft Office и др. Мощь такой объединенной системы возрастает многократно, позволяет использовать для решения задач пользователя целый арсенал различных программных систем, включая встроенные в них специфические и подчас уникальные функции.

Что такое MathConnex?
Общий обзор окна
Главное окно системы MathConnex
Главное меню MathConnex
Панель инструментов MathConnex
Палитра компонентов
Подготовка документов в MathConnex
Пример вывода и применения блока MathCAD
Пример построения блок-схемы из 4 блоков
Редактирование блоков и документов системы

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

Общие замечания
Параметрическая трехмерная графика
Построение сферы
Построение сферы
Построение фигуры вращением линии вокруг оси Х
Построение фигуры вращением линии вокруг оси Y
Построение фигуры вращением линии вокруг осиХ
Построение фигуры вращением линии вокруг оси Y
Построение графика объемной спирали
Построение графика вида 3D Scatter Plot

MathCAD 7.0 PRO в Internet
В настоящее время ни одна программная система не может претендовать на высокое место в рейтинге качества, если она не поддерживает работу с Internet. Система MathCAD 7. 0 PRO такую поддержку обеспечивает, она позволяет напрямую (т. е. непосредственно из ее среды) отправлять файлы своих документов по электронной почте. Более того, система предоставляет возможность ведения совместной работы над документами, в частности серьезными математическими проектами.

Web-страница фирмы MathSoft
Основная страница браузера Internet Explorer
Основная Web-страница фирмы MathSoft
Начало страницы Collaboratory
Тематический перечень совместных проектов
Страница с перечнем совместных проектов
MathCAD 7. 0 PRO для работы с Internet
Окно установок для работы с Internet
Окно установки конфигурации
Сеанс связи по электронной почте

Введение в анализ, синтез и моделирование систем

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

История, предмет, цели системного анализа
Эта наука, как и любая другая, ставит своей целью исследование новых связей и отношений объектов и явлений. Но, тем не менее, основной проблемой нашей науки является исследование связей и отношений таким образом, чтобы изучаемые объекты стали бы более управляемыми, изучаемыми, а "вскрытый" в результате исследования механизм взаимодействия этих объектов - более применимым к другим объектам и явлениям. Задачи и принципы системного подхода не зависят от природы объектов и явлений.

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

Описания, структуры и анализ систем
Описания, структуры и анализ систем - 2
Описания, структуры и анализ систем - 3
Описания, структуры и анализ систем - 4
Описания, структуры и анализ систем - 5
Описания, структуры и анализ систем - 6
Описания, структуры и анализ систем - 7
Описания, структуры и анализ систем - 8
Описания, структуры и анализ систем - 9
Вопросы для самоконтроля

Функционирование и развитие системы
Информатизация страны в ее наивысшей стадии - всемерное использование различных баз знаний, экспертных систем, когнитивных методов и средств, моделирования, коммуникационных средств, сетей связи, обеспечение информационной а, следовательно, любой безопасности и др.; это революционное изменение, развитие общества. Компьютеризация общества, региона, организации без постановки новых актуальных проблем, т.е. "навешивание компьютеров на старые методы и технологии обработки информации" - это функционирование, а не развитие.

Функционирование и развитие системы
Функционирование и развитие системы - 2
Функционирование и развитие системы - 3
Функционирование и развитие системы - 4
Функционирование и развитие системы - 5
Функционирование и развитие системы - 6
Функционирование и развитие системы - 7
Функционирование и развитие системы - 8
Функционирование и развитие системы - 9
Функционирование и развитие системы - 10

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

Классификация систем
Классификация систем - 2
Классификация систем - 3
Классификация систем - 4
Классификация систем - 5
Классификация систем - 6
Классификация систем - 7
Классификация систем - 8
Классификация систем - 9
Классификация систем - 10

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

Система, информация, знания
Система, информация, знания - 2
Система, информация, знания - 3
Система, информация, знания - 4
Система, информация, знания - 5
Система, информация, знания - 6
Система, информация, знания - 7
Система, информация, знания - 8

Меры информации в системе
Меры могут быть статические и динамические, в зависимости от того, какую информацию они позволяют оценивать: статическую (не актуализированную; на самом деле оцениваются сообщения без учета ресурсов и формы актуализации) или динамическую (актуализированную т.е. оцениваются также и затраты ресурсов для актуализации информации).

Меры информации в системе
Меры информации в системе - 2
Меры информации в системе - 3
Меры информации в системе - 4
Меры информации в системе - 5
Меры информации в системе - 6
Меры информации в системе - 7
Меры информации в системе - 8
Меры информации в системе - 9
Меры информации в системе - 10

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

Система и управление
Система и управление - 2
Система и управление - 3
Система и управление - 4
Система и управление - 5
Система и управление - 6
Система и управление - 7
Система и управление - 8

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

Информационные системы
Информационные системы - 2
Информационные системы - 3
Информационные системы - 4
Информационные системы - 5
Информационные системы - 6
Информационные системы - 7
Информационные системы - 8
Информационные системы - 9
Информационные системы - 10

Информация и самоорганизация систем
Любая открытая система эволюционирует, начиная с состояния наибольшей энтропии (неопределенности), спиралеобразно, актуализируя все новые связи и отношения, стремясь к организованности и порядку в системе в процессе взаимоотношений со средой, перестраивая свою структуру с целью уменьшения энтропии.

Информация и самоорганизация систем
Информация и самоорганизация систем - 2
Информация и самоорганизация систем - 3
Информация и самоорганизация систем - 4
Информация и самоорганизация систем - 5
Информация и самоорганизация систем - 6
Информация и самоорганизация систем - 7
Информация и самоорганизация систем - 8
Информация и самоорганизация систем - 9
Информация и самоорганизация систем - 10

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

Основы моделирования систем
Основы моделирования систем - 2
Основы моделирования систем - 3
Основы моделирования систем - 4
Основы моделирования систем - 5
Основы моделирования систем - 6
Основы моделирования систем - 7
Основы моделирования систем - 8
Основы моделирования систем - 9
Основы моделирования систем - 10

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

Мат. и компьютерное моделирование
Мат. и компьютерное моделирование - 2
Мат. и компьютерное моделирование - 3
Мат. и компьютерное моделирование - 4
Мат. и компьютерное моделирование - 5
Содержательная постановка задачи
Формулировка гипотез, построение, исследование
Построение алгоритма и программы
Построение алгоритма и программы - 2
Проведение вычислительных экспериментов

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

Эволюционное моделирование и алгоритмы
Эволюционное моделирование и алгоритмы - 2
Эволюционное моделирование и алгоритмы - 3
Эволюционное моделирование и алгоритмы - 4
Эволюционное моделирование и алгоритмы - 5
Эволюционное моделирование и алгоритмы - 6
Эволюционное моделирование и алгоритмы - 7
Эволюционное моделирование и алгоритмы - 8

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

Основы принятия решений и моделирования
Основы принятия решений и моделирования - 2
Основы принятия решений и моделирования - 3
Основы принятия решений и моделирования - 4
Основы принятия решений и моделирования - 5
Основы принятия решений и моделирования - 6
Основы принятия решений и моделирования - 7
Основы принятия решений и моделирования - 8
Основы принятия решений и моделирования - 9
Основы принятия решений и моделирования - 10

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

Модели знаний
Модели знаний - 2
Модели знаний - 3
Модели знаний - 4
Модели знаний - 5
Модели знаний - 6
Модели знаний - 7
Модели знаний - 8
Модели знаний - 9
Модели знаний - 10

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

Технологии проектирования и анализа
Технологии проектирования и анализа - 2
Технологии проектирования и анализа - 3
Технологии проектирования и анализа - 4
Технологии проектирования и анализа - 5
Технологии проектирования и анализа - 6
Технологии проектирования и анализа - 7
Технологии проектирования и анализа - 8
Технологии проектирования и анализа - 9
Технологии проектирования и анализа - 10

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

Е2Е-проекты по анализу и моделированию
Е2Е-проекты по анализу и моделированию - 2
Е2Е-проекты по анализу и моделированию - 3
Е2Е-проекты по анализу и моделированию - 4
Е2Е-проекты по анализу и моделированию - 5
Е2Е-проекты по анализу и моделированию - 6
Е2Е-проекты по анализу и моделированию - 7
Е2Е-проекты по анализу и моделированию - 8
Е2Е-проекты по анализу и моделированию - 9
Е2Е-проекты по анализу и моделированию - 10

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

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

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

Обзор внешних факторов
Корректность (Correctness)
Устойчивость (Robustness)
Расширяемость (Extendibility)
Повторное использование (Reusability)
Совместимость (Compatibility)
Эффективность (Efficiency)
Эффективность (Efficiency) - 2
Эффективность (Efficiency) - 3
Переносимость (Portability)

О критериях
Рассмотрим выбор критериев, позволяющих оценить объектную ориентированность системы (objectness).

До какой степени мы догматичными?
Категории
Метод и язык
Бесшовность (seamlessness)
Классы
Утверждения (Assertions)
Классы как модули
Классы как типы
Вычисления, основанные на компонентах
Скрытие информации (information hiding)

Пять критериев
Метод проектирования, который можно называть "модульным", должен удовлетворять пяти основным требованиям: Декомпозиции (decomposability). Композиции (composability). Понятности (understandability). Непрерывности (continuity). Защищенности (protection).

Декомпозиция
Декомпозиция - 2
Модульная Композиция
Модульная Композиция - 2
Модульная Понятность
Модульная Непрерывность
Модульная Непрерывность - 2
Модульная Защищенность
Пять правил
Прямое отображение

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

Ожидаемые преимущества
Ожидаемые преимущества - 2
Потребители повторно используемых программ
Что следует повторно использовать?
Повторное использование персонала
Повторное использование проектов
Образцы проектов (design patterns)
Образцы проектов (design patterns) - 2
Повторное использование исходного текста
Повторное использование абстрактных модулей

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

Базисный треугольник
Базисный треугольник - 2
Функциональная декомпозиция
Непрерывность
Проектирование сверху вниз
Проектирование сверху вниз - 2
Не только одна главная функция
Не только одна главная функция - 2
Обнаружение вершины
Функции и эволюция

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

Представления стеков
Представления стеков - 2
Опасность излишней спецификации
Какова длина второго имени?
К абстрактному взгляду на объекты
Использование операций
Политика невмешательства в обществе модулей
Согласованность имен
Можно ли обойтись без абстракций?
Можно ли обойтись без абстракций? - 2

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

Устранение традиционной путаницы
Роль классов
Модули и типы
Класс как модуль и как тип
Унифицированная система типов
Унифицированная система типов - 2
Простой класс
Компоненты
Атрибуты и подпрограммы
Атрибуты и подпрограммы - 2

Объекты
В процессе выполнения ОО-система создает некоторое число объектов. Организация этих объектов и отношения между ними определяют конструкцию времени выполнения. Рассмотрим свойства объектов.

Что такое объект?
Базовая форма
Простые поля
Простое представление книги - класс BOOK
Писатели
Ссылки
Ссылки - 2
Идентичность объектов
Объявление ссылок
Ссылка на себя

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

Создание объектов
Создание объектов - 2
Использование динамического режима
Повторное использование памяти в трех режимах
Отсоединение
Недостижимые объекты
Достижимые объекты в классическом подходе
Достижимые объекты в классическом подходе - 2
Достижимые объекты в ОО-модели
Проблема управления памятью в ОО-модели

Горизонтальное и вертикальное обобщение типа
Уже изученные механизмы позволяют написать класс, помещенный в центр рисунка - LIST_OF_BOOKS, экземпляр которого представляет список книг. У класса следующие компоненты: put для вставки элемента, remove для удаления элемента, count для подсчета числа элементов и т.д. Очевидны два пути обобщения понятия LIST_OF_BOOKS.

Необходимость параметризованных классов
Родовые АТД
Проблема
Роль типизации
Родовые классы
Объявление родового класса
Использование родового класса
Терминология
Проверка типов
Правило типизации

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

О корректности ПО
О корректности ПО - 2
Выражение спецификаций
Формула корректности
Сильные и слабые условия
Сильные и слабые условия - 2
Введение утверждений в программные тексты
Предусловия и постусловия
Класс стек
Предусловия

Базисные концепции обработки исключений
Литература по обработке исключений зачастую не очень точно определяет, что вызывает исключение. Как следствие, механизм исключений, представленный в таких языках программирования как PL/I и Ada, часто неправильно используется: вместо того, чтобы резервироваться только для истинно чрезвычайных ситуаций, они заканчивают службу как внутрипрограммные инструкции goto, нарушающие принцип Защищенности.

Отказы
Исключения
Источники исключений
Ситуации отказа
Обработка исключений
Как не следует делать это - C-Unix пример
Как не следует делать это - Ada пример
Как не следует делать это - Ada пример - 2
Принципы обработки исключений
Принципы обработки исключений - 2

Взаимодействие с не объектным ПО
До сих пор, элементы ПО выражались полностью в ОО-нотации. Но программы появились задолго до распространения ОО-технологии. Часто возникает необходимость соединить объектное ПО с элементами, написанными, например, на языках С, Fortran или Pascal. Нотация должна поддерживать этот процесс.

Внешние программы
Улучшенные варианты
Использование внешних программ
ОО-изменение архитектуры (re-architecturing)
ОО-изменение архитектуры (re-architecturing) - 2
Гибридный продукт или гибридные языки?
Передача аргументов
Передача аргументов - 2
Инструкции
Вызов процедуры

Многоугольники и прямоугольники
Для объяснения основных понятий рассмотрим простой пример. Здесь приведен скорее набросок этого примера, а не полный его вариант, но он хорошо показывает все существенные идеи.

Многоугольники
Многоугольники - 2
Прямоугольники
Прямоугольники - 2
Основные соглашения и терминология
Наследование инварианта
Наследование и конструкторы
Пример иерархии
Полиморфизм
Полиморфное присоединение

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

Пример, неподходящий для введения
Может ли самолет быть имуществом?
Числовые и сравнимые значения
Окна - это деревья и прямоугольники
Деревья - это списки и их элементы
Составные фигуры
Составные фигуры - 2
Брак по расчету
Брак по расчету - 2
Структурное наследование

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

Инварианты
Предусловия при динамическом связывании
Предусловия при динамическом связывании - 2
Как обмануть клиентов
Как быть честным
Пример
Пример - 2
Устранение посредника
Субподряды
Абстрактные предусловия

Проблема типизации
О типизации при ОО-разработке можно сказать одно: эта задача проста в своей постановке, но решить ее подчас нелегко.

Базисная конструкция
Статическая и динамическая типизация
Правила типизации
Реализм
Пессимизм
Статическая типизация: как и почему
Преимущества
Преимущества - 2
Аргументы в пользу динамической типизации
Типизация: слагаемые успеха

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

Атрибуты-константы
Использование констант
Константы пользовательских классов
Константы с манифестом для этого непригодны
Однократные функции
Применение однократных подпрограмм
Разделяемые объекты
Однократные функции с базовыми типами
Однократные процедуры
Параметры

Пособие по практике программирования

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

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

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

Стиль
Пример 1.1
Имена
Пример 1.4
Пример 1.5
Пример 1.6
Упражнение 1-1
Пример 1.9
Выражения
Пример 1.11

Алгоритмы и структуры данных
Исследование алгоритмов и структур данных является одной из основ программирования, а также богатым полем элегантных технологий и сложных математических изысканий. И это — что-то большее, чем развлечение для теоретически подготовленных: хороший алгоритм или структура данных могут позволить решить в течение нескольких секунд проблему, которая без них решалась бы годы.

Хэш-таблицы
Пример 2.50
Пример 2.53
Пример 2.55
Пример 2.55 - 2
Упражнение 2-14
Упражнение 2-15
Упражнение 2-16
Упражнение 2-17
Заключение

Проектирование и реализация
Одним из аспектов этой точки зрения является то, что выбор конкретного языка программирования оказывается сравнительно неважным для общего проектирования. Мы сначала спроектируем программу абстрактно, а потом реализуем ее на С, Java, C++, Awk и Perl. Сравнив реализации, мы увидим, как тот или иной язык может облегчать или, наоборот, затруднять кодирование и в каких аспектах выбор языка не является важным. Выбранный для реализации язык может, конечно, чем-то украсить программу, но не доминирует в ее разработке.

Алгоритм цепей Маркова
Пример 3.2
Варианты структуры данных
Создание структуры данных в языке С
Пример 3.4
Пример 3.6
Пример 3.8
Пример 3.9
Пример 3.10
Пример 3.11

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

Значения, разделенные запятой
Пример 4.1
Пример 4.2
Пример 4.4
Прототип библиотеки
Пример 4.5
Пример 4.8
Пример 4.6
Пример 4.8
Пример 4.7

Отладка
В предыдущих четырех главах мы продемонстрировали много различного кода и при этом притворялись, что весь этот код работал должным образом с первого раза. Естественно, это было не так: на самом деле было множество "багов". Слово "баг" появилось вовсе не среди программистов, но считается одним из самых распространенных терминов в программировании. Почему программирование столь сложно?

Отладчики
Хорошие подсказки, простые ошибки
Пример 5.1
Пример 5.2
Пример 5.4
Трудные ошибки, нет зацепок
Трудные ошибки, нет зацепок - 2
Трудные ошибки, нет зацепок - 3
Пример 5.6
Пример 5.7

Тестирование
Тестирование и отладка часто упоминаются вместе, однако это две разные вещи. Сильно упрощая, можно сказать, что отладкой называется то, что вы делаете, когда знаете, что программа не работает. Тестирование же — это последовательные, систематические попытки добиться ошибки от программы, которая считается работающей.

Систематическое тестирование
Систематическое тестирование - 2
Пример 6.16
Пример 6.17
Пример 6.17 - 2
Упражнение 6-4
Автоматизация тестирования
Пример 6.18
Пример 6.19
Пример 6.20

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

Узкое место
Пример 7.1
Пример 7.2
Пример 7.2 - 2
Пример 7.3
Пример 7.4
Пример 7.6
Пример 7.7. Код для построения этих таблиц весьма прост
Упражнение 7-1
Замеры времени и профилирование

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

Язык
Язык - 2
Язык - 3
Пример 8.1
Пример 8.1 - 2
Пример 8.2
Пример 8.3
Пример 8.4
Пример 8.5
Заголовочные файлы и библиотеки

Нотация
Преимущества хорошей нотации — способа записи — появляются при переходе от традиционного программирования к узкоспециальным проблемным областям. Регулярные выражения позволяют использовать компактные (из-за этого подчас превращающиеся в тайнопись) описания классов строк. Язык HTML позволяет определять внешний вид интерактивных документов, нередко используя встроенные программы на других языках, вроде JavaScript. PostScript рассматривает целый документ — например эту книгу — как стилизованную программу. Электронные таблицы и текстовые процессоры часто содержат в себе языки программирования типа Visual Basic, они используются для вычисления выражений, доступа к информации, управления размещением данных в документе.

Форматирование данных
Пример 9.1
Пример 9.3a
Пример 9.4
Пример 9.6
Пример 9.7
Пример 9.9
Пример 9.10b
Пример 9.11
Пример 9.12

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

Стиль
Интерфейсы
Отладка
Тестирование
Производительность


Ассемблер для Windows
Справочник Ассемблер
Справочник по языку Ассемблера IBM PC
Как написать игру для ZX Spectrum на ассемблере
Сборник по задачам и примерам Assembler
Атеев Алексей - Серебряная Пуля
Асприн Роберт - Кровные Узы
Введение в схемы, автоматы и алгоритмы
Расширяемый язык разметки
Статьи по Assembler
Продукты Pinnacle
Разработка компиляторов
Автоматизация работы с текстом
CISCO порусски. Набор статей
Архитектура Unix
AutoCAD 2005 - среда проектирования
Программа AutoCAD 2004 - руководство
Система топологической трассировки печатных плат TopoR
ObjectARX, AutoCAD. Среда программирования библиотеки C++
Методы описания встраиваемой аппаратуры и построения инструментария кросс-разработки