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

Японская косметика интернет магазин по материалам сайта. |

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

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

ЧАСТЬ I. ОБЩИЕ СВЕДЕНИЯ
Глава 1. Начинаем работу
В данной главе рассмотрено назначение приложения Mathcad 11 и, в целях знакомства с его основными возможностями, приведены базовые приемы его использования (см. разд. 1.1—1.2). Если вы уже имели дело с прежними версиями, начиная с Mathcad 7, и у вас неплохие навыки работы с его редактором, то можете смело пропустить эту главу.

Начинаем работу
1.1. Назначение Mathcad
1.2. Знакомство с Mathcad
1.3. Интерфейс пользователя
1.3.1. Меню
1.3.2. Панели инструментов
1.3.3. Настройка панели инструментов
1.3.4. Рабочая область
1.3.5. Строка состояния
1.4. Справочная информация

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

Редактирование документов
2.1. Работа с документами
2.1.1. Управление документами
2.1.2. Создание документа на основе шаблона
2.1.3. Сохранение документа
2.1.4. Открытие существующего документа
2.1.5. Закрытие документа
2.2. Ввод и редактирование формул
2.2.1. Элементы интерфейса
2.2.2. Ввод формул
2.2.3. Перемещение линий ввода внутри формул
2.2.4. Изменение формул
2.2.5. Ввод символов, операторов и функций
2.2.6. Управление отображением некоторых операторов
2.3. Ввод и редактирование текста
2.3.1. Ввод текста
2.3.2. Редактирование текста
2.3.3. Импорт текста
2.3.4. Математические символы внутри текста
2.3.5. Гиперссылки
2.4. Правка документа
2.5. Печать документа
2.6. Посылка документа по электронной почте

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

3.1. Переменные и функции
3.1.1. Определение переменных
3.1.2. Присваивание переменным значений
3.1.3. Функции
3.1.4. Определение функции пользователя
3.1.5. Вывод значений переменных и функций
3.1.6. Символьный вывод
3.1.7. Допустимые имена переменных и функций
3.2. Операторы
3.2.1. Арифметические операторы
3.2.2. Вычислительные операторы
3.2.3. Логические операторы
3.2.4. Матричные операторы
3.2.5. Операторы выражения
3.2.6. Создание оператора пользователя
3.3. Управление вычислениями
3.3.1. Режимы вычислений
3.3.2. Прерывание вычислений
3.3.3. Вычисления в ручном режиме
3.3.4. Отключение вычисления Отдельных формул
3.3.5. Оптимизация вычислений
3.3.6. Диалоговое окно Worksheet Options
3.4. Сообщения об ошибках

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

4.1. Типы данных
4.1.1. Действительные числа
4.1.2. Комплексные числа
4.1.3. Встроенные константы
4.1.4. Строковые выражения
4.2. Размерные переменные
4.2.1. Создание размерной переменной
4.2.2. Работа с размерными переменными
4.2.3. Выбор системы единиц
4.2.4. Определение новой размерности
4.3. Массивы
4.3.1. Доступ к элементам массива
4.3.2. Ранжированные переменные
4.3.3. Создание массивов
4.3.4. Отображение вывода векторов и матриц
4.4. Формат вывода числовых данных
4.4.1. Формат результата
4.4.2. Округление малых чисел до нуля
4.4.3. Вывод чисел в других системах счисления
4.5. Элементы управления (controls)

ЧАСТЬ II. ТОЧНЫЕ ВЫЧИСЛЕНИЯ
Глава 5. Символьные вычисления
Первый способ более удобен, когда требуется быстро получить какой-либо аналитический результат для однократного использования, не сохраняя сам ход вычислений. Второй способ более нагляден, т. к. позволяет записывать выражения в традиционной математической форме и сохранять символьные вычисления в документах Mathcad. Кроме того, аналитические преобразования, проводимые через меню, касаются только одного, выделенного в данный момент, выражения. Соответственно, на них не влияют формулы, находящиеся в документе Mathcad выше этого выделенного выражения (например, операторы присваивания значений каким-либо переменным).

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

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

ЧАСТЬ III. ЧИСЛЕННЫЕ МЕТОДЫ
Глава 7. Интегрирование и дифференцирование
Интегрирование в Mathcad реализовано в виде вычислительного оператора. Допускается вычислять интегралы от скалярных функций в пределах интегрирования, которые также должны быть скалярами. Несмотря на то что пределы интегрирования обязаны быть действительными, подынтегральная функция может иметь и комплексные значения, поэтому и значение интеграла может быть комплексным.

7.1. Интегрирование
7.1.1. Операторы интегрирования
7.1.2. Об алгоритмах интегрирования
7.1.3. О расходящихся интегралах
7.1.4. Кратные интегралы
7.2. Дифференцирование
7.2.1. Первая производная
7.2.2. Производные высших порядков
7.2.3. Частные производные

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

8.1. Одно уравнение с одним неизвестным
8.2. Корни полинома
8.3. Системы уравнений
8.4. О численных методах решения систем уравнений
8.5. Приближенное решение уравнений
8.6. Поиск экстремума функции
8.6.1. Экстремум функции одной переменной
8.6.2. Условный экстремум
8.6.3. Экстремум функции многих переменных
8.6.4. Линейное программирование
8.7. Символьное решение уравнений
8.8. Метод продолжения по параметру

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

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

10.1.1. Обычные функции Бесселя
10.1.2. Модифицированные функции Бесселя
10.1.3. Функции Эйри
10.1.4. Функции Бесселя-Кельвина
10.1.5. Сферические функции Бесселя
10.2. Функции работы с комплексными числами (Complex Numbers)
10.3. Логарифмы и экспонента (Log and Exponential)
10.4. Тригонометрические функции (Trigonometric)
10.5. Гиперболические функции (Hyperbolic)
10.6. Другие спецфункции (Special)
10.7. Строковые функции (String)
10.8. Функции сокращения и округления (Truncation and Round-Off)
10.9. Кусочно-непрерывные функции (Piecewise Continuous)
10.10. Функции преобразования координат (Vector and Matrix)
10.11. Финансовые функции (Finance)

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

11.1. ОДУ первого порядка
11.1.1. Вычислительный блок Given/Odesolve
11.1.2. Встроенные функции rkflxed, Rkadapt, Bulstoer
11.2. ОДУ высшего порядка
11.3. Системы ОДУ первого порядка
11.3.1. Встроенные функции для решения систем ОДУ
11.3.2. Решение систем ОДУ в одной заданной точке
11.3.3. Некоторые примеры
11.4. Фазовый портрет динамической системы
11.5. Жесткие системы ОДУ
11.5.1. Что такое жесткие ОДУ?
11.5.2. Функции для решения жестких ОДУ

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

12.1. Краевые задачи для ОДУ
12.1.1. О постановке краевых задач
12.1.2. Алгоритм стрельбы
12.1.3. Решение двухточечных краевых задач
12.1.4. Решение краевых задач с дополнительным условием в промежуточной точке
12.2. Задачи на собственные значения для ОДУ
12.3. Разностные схемы для ОДУ
12.3.1. О разностном методе решения ОДУ
12.3.2. Жесткие краевые задачи

Глава 13. Дифференциальные уравнения в частных производных
Постановка задач для уравнений в частных производных включает определение самого уравнения (или системы нескольких уравнений), а также необходимого количества краевых условий (число и характер задания которых определяется спецификой уравнения). По своему названию уравнения должны содержать частные производные неизвестной функции и (или нескольких функций, если уравнений несколько) по различным аргументам, например пространственной переменной х и времени t. Соответственно, для решения задачи требуется вычислить функцию нескольких переменных, например u
13.1. Постановка задач
13.1.1. Классификация уравнений в частных производных
13.1.2. Пример: уравнение диффузии тепла
13.2. Разностные схемы
13.2.1. Явная схема Эйлера
13.2.2. Неявная схема Эйлера
13.2.3. О возможности решения многомерных уравнений
13.3. Встроенные функции для решения уравнений в частных производных
13.3.1. Параболические и гиперболические уравнения
13.3.2. Эллиптические уравнения

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

14.1. Случайные величины
14.1.1. Нормальное (Гауссово) распределение
14.1.2. Равномерное распределение
14.1.3. Биномиальное распределение
14.1.4. Другие статистические распределения
14.2. Статистические характеристики
14.2.1. Построение гистограмм
14.2.2. Среднее значение и дисперсия
14.2.3. Генерация коррелированных случайных чисел
14.2.4. Ковариация и корреляция
14.2.5. Коэффициенты асимметрии и эксцесса
14.2.6. Другие статистические характеристики
14.2.7. Действие статистических функций на матрицы
14.3. Случайные процессы
14.4. Некоторые примеры
14.4.1. Интервальная оценка дисперсии
14.4.2. Проверка статистических гипотез

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

15.1. Интерполяция
15.1.1. Линейная интерполяция
15.1.2. Кубическая сплайн-интерполяция
15.1.3. Полиномиальная сплайн-интерполяция
15.1.4. Экстраполяция функцией предсказания
15.1.5. Многомерная интерполяция
15.2. Регрессия
15.2.1. Линейная регрессия
15.2.2. Полиномиальная регрессия
15.2.3. Регрессия специального вида
15.2.4. Регрессия общего вида
15.3. Сглаживание и фильтрация
15.3.1. Встроенные функции для сглаживания
15.3.2. Скользящее усреднение
15.3.3. Устранение тренда
15.3.4. Полосовая фильтрация
15.4. Интегральные преобразования
15.4.1. Преобразование Фурье
15.4.2. Вейвлетное преобразование
Встроенная функция вейвлет-преобразования
Программирование других вейвлет-преобразований

ЧАСТЬ IV. ОФОРМЛЕНИЕ РАСЧЕТОВ
Глава 16. Ввод-вывод данных
Наиболее простой и распространенный ввод-вывод данных в Mathcad реализован присваиванием и (либо численным, либо символьным) выводом непосредственно в документе. Фактически документ Mathcad является одновременно и кодом программы и результатом ее выполнения. Поэтому самый простой и распространенный способ ввода-вывода — это непосредственное присвоение и вывод вычисленных значений в документах.

16.1. Числовой ввод-вывод
16.2. Создание графиков
16.3. Двумерные графики
16.3.1. XY-график двух векторов
16.3.2. XY-график вектора и ранжированной переменной
16.3.3. XY-график функции
16.3.4. Полярный график
16.3.5. Построение нескольких рядов данных
16.3.6. Форматирование осей
16.3.7. Форматирование рядов данных
16.3.8. Создание заголовка графика
16.3.9. Изменение размера и положения графиков
16.3.10. Трассировка и увеличение графиков
16.4. Трехмерные графики
16.4.1. Создание трехмерных графиков
16.4.2. Форматирование трехмерных графиков
16.5. Создание анимации
16.6. Ввод-вывод во внешние файлы
16.6.1. Текстовые файлы
16.6.2. Графические файлы
16.6.3. Звуковые файлы

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

17.1. Элементы оформления документов
17.1.1. Элементы оформления
17.1.2. Размещение элементов оформления в документах
17.1.3. Выделение областей
17.1.4. Работа с зонами
17.2. Форматирование текста и формул
17.2.1. Форматирование текста
17.2.2. Стили текста и формул
17.3. Оформление страниц
17.3.1. Параметры страницы
17.3.2. Колонтитулы
17.3.3. Установки документа
17.4. Ссылки и гиперссылки
17.4.1. Установка тега
17.4.2. Вставка гиперссылки
17.4.3. Ссылки
17.5. Рисунки

Приложение 1. Новые возможности Mathcad.
Приложение 2. Команды меню и панели инструментов
Приложение 3. Встроенные операторы и функции
Приложение 4. Сообщения об ошибках

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

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

Введение

ЧАСТЬ I. ОСНОВНЫЕ МАТЕМАТИЧЕСКИЕ ОПЕРАЦИИ
Глава 1. Основные сведения о Mathcad
В данной главе рассмотрены базовые приемы работы с Mathcad 2001—12. Мы дадим самые основные сведения, касающиеся интерфейса и возможностей Mathcad, пользуясь тем, что он интуитивен и похож на другие программы Windows

Основные сведения о Mathcad
1.1. Знакомство с Mathcad
1.1.1. Назначение Mathcad
1.1.2. Интерфейс пользователя
1.1.3. Панели инструментов
1.1.4. Справочная информация
1.2 Основы вычислений в Mathcad
1.2.1. Операторы численного и символьного вывода
1.2.2. Математические выражения и встроенные функции
1.2.3. Переменные и оператор присваивания
1.2.4. Функции пользователя
1.2.5. Типы чисел
1.2.6. Ранжированные переменные и матрицы
1.2.7. Размерные переменные
1.3. Ввод и редактирование формул
1.3.1. Элементы интерфейса редактора формул
1.3.2. Ввод формул
1.3.3. Перемещение линий ввода внутри формул
1.3.4. Изменение формул
1.3.5. Программирование
1.4. Графики
1.4.1. Типы графиков
1.4.2. Создание графика
1.4.3. X-Y график двух векторов
1.4.4. X-Y график функции
1.4.5. Построение нескольких рядов данных
1.4.6. Форматирование графиков
1.4.7. Трехмерные графики

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

Алгебраические вычисления
2.1. Операторы
2.1.1. Арифметические операторы
2.1.2. Вычислительные операторы
2.1.3. Логические операторы
2.1.4. Матричные операторы
2.1.5. Операторы выражения
2.2. Функции
2.2.1. Элементарные функции
2.2.2. Вспомогательные функции
2.2.3. Функция вывода текущего времени
2.2.4. Спецфункции
2.3. Алгебраические преобразования
2.3.1. О способах символьных вычислений
2.3.2. Разложение выражений
2.3.3. Упрощение выражений
2.3.4. Разложение на множители
2.3.5. Приведение подобных слагаемых
2.3.6. Вычисление коэффициентов полинома
2.3.7. Разложение на простые дроби
2.3.8. Вычисление рядов и произведений
2.3.9. Подстановка переменной
2.3.10. Получение численного значения выражения
2.3.11. Вычисление предела
2.3.12. О специфике аналитических вычислений

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

Дифференцирование
3.1. Аналитическое дифференцирование
3.1.1. Аналитическое дифференцирование функции
3.1.2. Вычисление производной функции в точке
3.1.3. Определение функций пользователя через оператор дифференцирования
3.1.4. Дифференцирование при помощи меню
3.2. Численное дифференцирование
3.2.1. Дифференцирование в точке
3.2.2. Об алгоритме дифференцирования
3.3. Производные высших порядков
3.4. Частные производные
3.4.1. Частные производные
3.4.2. Примеры: градиент, дивергенция и ротор
3.4.3. Пример: якобиан
3.5. Разложение функции в ряд Тейлора
3.5.1. Разложение в ряд при помощи меню
3.5.2. Оператор разложения в ряд

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

Интегрирование
4.1. Определенный интеграл
4.1.1. Оператор интегрирования
4.1.2. О выборе алгоритма численного интегрирования
4.1.3. О традиционных алгоритмах интегрирования
4.1.4. Алгоритм Ромберга
4.2. Неопределенный интеграл
4.2.1. Символьное интегрирование
4.2.2. Интегрирование при помощи меню
4.3. Интегралы специального вида
4.3.1. Интегралы с бесконечными пределами
4.3.2. Расходящиеся интегралы
4.3.3. Интеграл с переменным пределом
4.3.4. Кратные интегралы
4.3.5. Пример: длина дуги кривой
4.4. Интеграл Фурье
4.4.1. Об интегральных преобразованиях функций
4.4.2. Аналитическое преобразование Фурье
4.4.3. Дискретное преобразование Фурье
4.4.4. Преобразование Фурье комплексных данных
4.4.5. Двумерное преобразование Фурье
4.5. Другие интегральные преобразования
4.5.1. Преобразование Лапласа
4.5.2. Z-преобразование
4.5.3. Вейвлет-преобразование

ЧАСТЬ II. АЛГЕБРАИЧЕСКИЕ УРАВНЕНИЯ
Глава 5. Нелинейные алгебраические уравнения
Огромное количество задач вычислительной математики связано с решением нелинейных алгебраических уравнений, а также систем таких уравнений. При этом необходимость решения нелинейных уравнений возникает зачастую на промежуточных шагах, при реализации фрагментов более сложных алгоритмов (к примеру, при расчетах дифференциальных уравнений при помощи разностных схем и т. п.).

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

Оптимизация
6.1. Поиск экстремума функции
6.1.1. Локальный экстремум
6.1.2. Условный экстремум
6.1.3. Экстремум функции нескольких переменных
6.1.4. Пример: линейное программирование
6.1.5. Аналитическое решение задач на экстремум
6.2. Приближенное решение алгебраических уравнений
6.3. Пример: регуляризация некорректных задач
6.3.1. О постановке некорректных задач
6.3.2. Квазирешение
6.3.3. Регуляризация Тихонова

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

Линейная алгебра
7.1. Простейшие матричные операции
7.1.1. Транспонирование
7.1.2. Сложение и вычитание
7.1.3. Умножение
7.2. Векторная алгебра
7.2.1. Модуль вектора
7.2.2. Скалярное произведение
7.2.3. Векторное произведение
7.2.4. Векторизация массива
7.3. Вычисление определителей и обращение квадратных матриц
7.3.1. Определитель квадратной матрицы
7.3.2. Ранг матрицы
7.3.3. Обращение квадратной матрицы
7.3.4. Возведение квадратной матрицы в степень
7.3.5. Матричные нормы
7.3.6. Число обусловленности квадратной матрицы
7.4. Вспомогательные матричные функции
7.4.1. Автоматическая генерация матриц
7.4.2. Разбиение и слияние матриц
7.4.3. Сортировка элементов матриц
7.4.4. Вывод размера матрицы

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

Системы линейных уравнений
8.1. Хорошо обусловленные системы с квадратной матрицей
8.1.1. Вычислительный блок Given / Find
8.1.2. Функция lsolve
8.2. Произвольные системы линейных уравнений
8.2.1. Переопределенные системы
8.2.2. Недоопределенные системы
8.2.3. Вырожденные и плохо обусловленные системы
8.3. Матричные разложения
8.3.1. СЛАУ с треугольной матрицей
8.3.2. Разложение Холецкого
8.3.3. LU-разложение
8.3.4. QR-разложение
8.3.5. SVD-(сингулярное) разложение
8.4. Собственные векторы и собственные значения матриц

ЧАСТЬ III. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ
Глава 9. Обыкновенные дифференциальные уравнения: динамические системы
В этой главе рассматриваются численные методы решений задач с начальными условиями (называемых задачами Коши) для обыкновенных дифференциальных уравнений (далее используется сокращение ОДУ). Такие задачи требуют нахождения функции (или нескольких функций) одной переменной, если, во-первых, определено дифференциальное уравнение (или система уравнений), содержащее производную функции, и, во-вторых, необходимое количество дополнительных условий, задающих значение функции в некоторой начальной точке.

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

Обыкновенные дифференциальные уравнения: краевые задачи
10.1. О постановке задач
10.2. Решение краевых задач средствами Mathcad
10.2.1. Алгоритм стрельбы
10.2.2. Двухточечные краевые задачи
10.2.3. Краевые задачи с условием во внутренней точке
10.3. Задачи на собственные значения для ОДУ
10.4. Разностные схемы для ОДУ
10.4.1. О разностном методе
10.4.2. Жесткие краевые задачи
10.5. Нелинейные краевые задачи
10.5.1. О постановке задачи
10.5.2. Метод стрельбы
10.5.3. Разностные схемы

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

Дифференциальные уравнения в частных производных
11.1. О постановке задач
11.1.1. Классификация уравнений в частных производных
11.1.2. Пример: уравнение диффузии тепла
11.2. Разностные схемы
11.2.1. Явная схема Эйлера
11.2.2. Неявная схема Эйлера
11.2.3. О возможности решения многомерных уравнений
11.3. Встроенные функции для решения уравнений в частных производных
11.3.1. Параболические и гиперболические уравнения
11.3.2. Эллиптические уравнения

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

Статистика
12.1. Статистические распределения
12.1.1. Статистические функции
12.1.2. Пример: нормальное (Гауссово) распределение
12.2. Выборочные статистические характеристики
12.2.1. Гистограммы
12.2.2. Среднее и дисперсия
12.2.3. Примеры: Выборочная оценка дисперсии и среднего нормальной случайной величины
12.2.4. Корреляция
12.2.5. Новые функции корреляционного анализа сигналов
12.2.6. Коэффициенты асимметрии и эксцесса
12.2.7. Статистические функции матричного аргумента
12.3. Методы Монте-Карло
12.3.1. Генерация псевдослучайных чисел
12.3.2. Генерация коррелированных выборок
12.3.3. Моделирование случайного процесса
12.3.4. Пример: огибающая и фаза нормального случайного процесса

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

Интерполяция и регрессия
13.1. Интерполяция
13.1.1. Линейная интерполяция
13.1.2. Кубическая сплайн-интерполяция
13.1.3. Полиномиальная сплайн-интерполяция
13.1.4. Сплайн-экстраполяция
13.1.5. Экстраполяция функцией предсказания
13.1.6. Многомерная интерполяция
13.2. Регрессия
13.2.1. Линейная регрессия
13.2.2. Полиномиальная регрессия
13.2.3. Другие типы регрессии
13.2.4. Регрессия общего вида
13.3. Ввод/вывод данных
13.3.1. Ввод/вывод в текстовые файлы
13.3.2. Ввод/вывод в файлы других типов
13.3.3. Мастер импорта данных и функция READFILE

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

Спектральный анализ
14.1. Фурье-спектр
14.1.1. Фурье-спектр действительных данных
14.1.2. Обратное преобразование Фурье
14.1.3. Преобразование Фурье комплексных данных
14.1.4. Пример: артефакты дискретного Фурье-преобразования
14.1.5. Пример: спектр модели сигнал/шум
14.1.6. Двумерный спектр Фурье
14.2. Вейвлет-спектры
14.2.1. Встроенная функция вейвлет-преобразования
14.2.2. Программирование вейвлет-преобразований
14.3. Сглаживание и фильтрация
14.3.1. Встроенные функции для сглаживания: ВЧ-фильтр
14.3.2. Скользящее усреднение: ВЧ-фильтр
14.3.3. Устранение тренда: НЧ-фильтр
14.3.4. Полосовая фильтрация
14.3.5. Спектральная фильтрация
14.3.6. Пример: вычисление спектра мощности

ПРИЛОЖЕНИЯ
Приложение 1. Пользователям предыдущих версий Mathcad
Приложение 2. Команды меню и панели инструментов
Приложение 3. Встроенные операторы и функции
Приложение 4. Сообщения об ошибках
Приложение 5. Ресурсы 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].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

История, предмет, цели системного анализа
Описания, базовые структуры и этапы анализа систем
Функционирование и развитие системы
Классификация систем
Система, информация, знания
Меры информации в системе
Система и управление
Информационные системы
Информация и самоорганизация систем
Основы моделирования систем
Математическое и компьютерное моделирование
Эволюционное моделирование и генетические алгоритмы
Основы принятия решений и ситуационного моделирования
Модели знаний
Новые технологии проектирования и анализа систем
Е2Е-проекты по системному анализу и моделированию

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

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

Внешние и внутренние факторы
О критериях
Пять критериев
Цели повторного использования
Ингредиенты вычисления
Различные реализации
Классы, а не объекты - предмет обсуждения
Объекты
Что происходит с объектами
Горизонтальное и вертикальное обобщение типа
Базисные механизмы надежности
Базисные концепции обработки исключений
Взаимодействие с не объектным ПО
Многоугольники и прямоугольники
Примеры множественного наследования
Наследование и утверждения
Проблема типизации
Константы базовых типов

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

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

Введение
Стиль
Алгоритмы и структуры данных
Проектирование и реализация
Интерфейсы
Отладка
Тестирование
Производительность
Переносимость
Нотация
Приложения

*