Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vychmat_lektsii / Лекция 1 Вводная.doc
Скачиваний:
11
Добавлен:
19.07.2019
Размер:
150.53 Кб
Скачать

1.2.Технические средства вычислительных технологий

Для решения большинства инженерных задач подходят современные персональные компьютеры (ПК). Большой объём вычислительных операций (например, при расчете сложных пространственных конструкций, имитационном моделировании многокомпонентных систем и др.) требует больших компьютеров (суперкомпьютеров, mainframe) с параллельной обработкой данных. Для «сверхбольших» задач могут применяться методы распределенных вычислений «коллективом» компьютеров, работающих в сети над отдельными блоками общей программы.

Основные характеристики ЭВМ, важные для вычислений: быстродействие, объем оперативной памяти и дисковой памяти, длина машинного слова, темп работ устройств ввода/вывода, стоимость.

Быстродействие современных ЭВМ составляет 1-100 миллионов операций в секунду. Время выполнения команды, содержащей много операций, значительно больше. Серийные суперкомпьютеры работают примерно в 10 раз быстрее, чем ПК.

Оперативная память ПК может составлять 16-512 Мбайт, дисковая 20-80 Гбайт. Объём оперативной памяти влияет на темп обработки данных, что можно компенсировать за счет увеличения быстродействия.

Требования к оперативной памяти повышаются при матричных вычислениях и при использовании растровой графики. Экран с сеткой 1000x1000 пикселей с возможностью цветного изображения в трех основных цветах восьми оттенков каждого требует для записи одного кадра 2,4107 бит. Массив с размерностью 103103 может оказаться достаточным для заполнения всей оперативной памяти.

Число значащих цифр при вычислениях определяет длина слова. Слово распространённых ПК в зависимости от класса процессора бывает 32- или 64-разрядным. Режим двойной точности (строго говоря, речь идёт о двойной значности, так как точность при этом может возрастать многократно) вдвое увеличивает затраты оперативной памяти и замедляет выполнение операций. Объем необходимой памяти при вычислениях оценивается с учетом длины слова и ресурсов памяти, доступных пользователю.

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

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

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

1.3.Алгоритмические и программные ресурсы. Математические пакеты

Алгоритмы вычислений определяются характером задачи.

Классификация типовых задач

  • Вычислительные и манипуляционные

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

  • Прикидочные и прецизионные ( точные)

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

  • Одномерные и многомерные ( с ростом размерности увеличивается трудности)

  • Однократные и потоковые ( однократное решение или для множества значений параметров)

  • «ON line» или «OFF line» ( решение в режиме реального времени)

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

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

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

  • наличие доступных программных средств,

  • требования к быстродействию и объёму оперативной памяти,

  • степень автоматизации (трудоемкость подготовки входных данных,

защита от неверных данных, необходимость программирования и настройки алгоритма),

  • возможность оценки точности результата, устойчивость решения.

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

Рассмотрим в качестве примера задачу интерполяции функции полиномом девятой степени, для нахождения которого нужно решить систему из десяти уравнений. Решение системы из N уравнений требует cN3 арифметических операций, где c зависит от типа используемой схемы вычислений. Для нашей задачи требуется выполнить не менее 1000 операций. Для функции двух переменных получим сетку из 100 точек. Для решения задачи потребуется миллион операций, а для трехмерной задачи – миллиард операций, что существенно даже для современной ЭВМ.

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

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

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

Могут быть полезными системы автоматизированного проектирования.

Специальное программное обеспечение инженерных вычислений включает в себя библиотеки и математические пакеты прикладных программ.

Библиотеки – это наборы файлов, используемых как готовые процедуры в программах, создаваемых на универсальных языках программирования. Широкое распространение получили библиотеки SSP (Scientific Subroutine Package) и NAG (Numerical Algorithms Group). Они содержат хорошо документированные программы практически по всем разделам вычислительной математики, количество программ исчисляется тысячами. Создание полной программы при использовании библиотек сводится к организации межмодульных связей, ввода/вывода и пользовательского интерфейса.

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

Математические пакеты классифицируют на специальные (для решения конкретных математических задач) и универсальные (языки математических вычислений).

Специальные пакеты разработаны для многих разделов вычислительной математики. Решение обыкновенных дифференциальных уравнений обеспечивают пакеты PHAZER и MODELVISION, для статистического анализа данных: MICROSTAT, 4 CAST/2, SORITEC, SPSS/PS, STATA, STATGRAPHICS, STATPACK GOLD, STATPRO, STATISTICA, STATVIEW, SYSSTAT, WORMSTAT и т.д.

Универсальные пакеты c точки зрения формы представления информации можно разделить на текстовые языки и языки с меню интерфейсом.

Примерами текстовых языков являются MatLab, TKSOLVER PLUS, POINT FIVE, GAUSS, APL PLUS .

Наиболее распространённые языки с меню интерфейсом – EUREKA, DERIVE, MATHCAD, MATHEMATICA, MAPLE.

Компактный по размеру (360 Кбайт) пакет EUREKA предназначен для типовых математических расчетов. Основной режим работы – текстовый, хотя решение может быть представлено и в монохромном графическом виде. Программа расчетов готовится на математическом языке в виде последовательности операций и функций. Имеется набор стандартных функций и возможность определить любую функцию пользователя. Число используемых переменных не должно быть более 12, а констант – не более 200. Можно вычислять производные и интегралы, корни нелинейных уравнений, работать с комплексными числами, системами из 2-12 линейных и нелинейных уравнений, искать экстремум функции одной или многих переменных. Возможно решение задач линейного программирования.

Система компьютерной алгебры DERIVE cодержит более 400 функций преобразования формул, решения уравнений, неравенств, систем линейных алгебраических уравнений, пределов функций, расчета вероятностных характеристик, дифференцирования и интегрирования, преобразования Фурье, обработки матриц и полиномов, решения обыкновенных дифференциальных уравнений I и II порядка. Графические двух и трёх мерные редакторы позволяют формировать сложные пространственные кривые. Система использует удобный меню интерфейс, язык функционального программирования. С системой работают школьники, студенты и инженеры.

Пакет thd наиболее популярен среди студентов и специалистов- инженеров и экономистов. Он объединяет текстовый, математический и графический процессоры. Текстовый процессор позволяет записывать тексты в общепринятом виде. Математический процессор позволяет записывать формулы и выполнять основные математические действия, имеет встроенные и пользовательские функции, вычисляет ряды, суммы, произведения, определенные интегралы и производные, работает с комплексными числами, решает системы линейных и нелинейных алгебраических и дифференциальных уравнений, выполняет минимизацию функций, векторные и матричные операции, интерполяцию, преобразования Фурье, статистические расчеты. Графический процессор строит двух и трёх мерные графики в прямоугольных и полярных координатах, выполняет трехмерную анимацию. Внутренний язык позволяет программировать многопроцедурные алгоритмы. Для работы со сложными документами имеется возможность работы в многооконном режиме. Система считается перспективной, и для нее разрабатываются пакеты расширения (MAP – MathСad Applications Packs) с задачами из математики, физики, механики, электротехники, экономики. Многие из таких пакетов расширения разрабатываются за пределами фирмы-разработчика, в том числе, в России. Регулярно создаются новые версии MathСad’а с возросшими возможностями (но и с более высокими требованиями к пользовательским характеристикам компьютера).

Пакет MatLab начал разрабатываться в 1972 г. по инициативе известного американского специалиста в области вычислительной математики Дж. Форсайта. Пакет создавался С.В. Молером как набор программ, реализующий наиболее эффективные алгоритмы линейной алгебры. Построен на основе известных в прошлом пакетов LINPACK и EISPACK. Это один из первых «программных суперкалькуляторов». Мощный пакет расширения -SIMULINK