Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 1.doc
Скачиваний:
42
Добавлен:
10.05.2015
Размер:
642.56 Кб
Скачать

48

Федеральное агентство по образованию

Томский государственный университет систем управления и радиоэлектроники (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

Романенко В.В.

ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА Лабораторные работы

Методические указания по выполнению лабораторных работ по дисциплине «Вычислительная математика»

для студентов очной формы обучения специальности

220400 – «Программное обеспечение вычислительной техники и автоматизированных систем»

Томск – 2006

Федеральное агентство по образованию

Томский государственный университет систем управления и радиоэлектроники (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

УТВЕРЖДАЮ: зав. каф. АСУ, проф., д.т.н. ________________ КориковА.М.

«____» ________________2006 г.

ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА Лабораторные работы

Методические указания по выполнению лабораторных работ по дисциплине «Вычислительная математика»

для студентов очной формы обучения специальности

220400 – «Программное обеспечение вычислительной техники и автоматизированных систем»

Разработчик: доц. каф. АСУ, к.т.н. ______________ Романенко В.В.

Томск – 2006

Содержание

Введение 4

1. Общие положения 8

1.1. Выполнение и сдача работы 9

1.1.1. Рейтинговая система 10

1.1.2. Требования к отчету 11

1.1.3. Языки программирования 12

1.2. Входные и выходные данные 14

1.2.1. Формат чисел и строк 14

1.2.2. Работа с функциями, заданными в аналитическом виде 19

1.2.3. Использование стандартных потоков ввода-вывода 20

1.2.4. Размещение файлов лабораторной работы 22

1.3. Результаты вычислений. Погрешность 26

2. Лабораторные работы 29

2.1. Лабораторная работа №1 «Решение уравнений с одной переменной» 29

2.1.1. Методы решения 31

2.1.1.1. Интервальные методы 31

2.1.1.2. Итерационные методы 33

2.1.1.2. Комбинированный метод 35

2.1.2. Формат входных данных 36

2.1.3. Формат выходных данных 36

Литература 38

Приложения 39

Приложение А. Формат титульного листа отчета 39

Приложение Б. Листинг модуля POLSTR.H 40

Приложение B. Листинг модуля POLUTILS.PAS 44

Введение

Данное пособие предназначено для студентов специальности 220400 «Программное обеспечение вычислительной техники и автоматизированных систем» (ПО ВТ и АС) ТУСУР и содержит требования к выполнению лабораторных работ по дисциплине «Вычислительная математика». В рамках дисциплины «Вычислительная математика» изучаются практически все разделы численных методов, исключая методы оптимизации, которые будут рассмотрены в рамках отдельной дисциплины.

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

Например, пусть нам требуется решить уравнение f (x) = 0 (т.е. найтинулифункции). Очевидно, что аналитическое решение этого уравнения зависит от вида функцииf (x). Если это линейная функция, то уравнение решается одним методом, если это квадратный полином – другим. Существует множество методов для решения такого уравнения, если функция является полиномиальной, тригонометрической, экспоненциальной, содержит дифференциалы, интегралы и т.д. Однако,ЭВМ не может провести анализ функции (в чем и заключается смысл аналитического решения), и поэтому численные методы поиска нуля функции построены так, что не зависят от ее вида.

Численное решение априори является неточным, т.к. погрешности возникают как из-за использования приближенного алгоритма [1], так и по причине конечности разрядной сетки ЭВМ. Конечность разрядной сетки подразумевает, что не все числа ЭВМ может хранить без погрешности. Например, самый длинный тип данных, поддерживаемый математическим сопроцессором (FPU) и распространенными компиляторами, имеет размер 10 байт. При этом самое большое по модулю число, которое может уместиться в эти рамки, составляет ~104900, а самое маленькое – ~10–4900. Но это не означает, что точность такого числа составляет 4900 знаков после запятой. Если у числа есть целая часть, то количество двоичных разрядов, остающихся для кодирования дробной части, уменьшается. Кроме того, в видудвоичностипредставления чисел вFPU, точно кодируются только те числа, которые являются целой степенью числа 2 (или суммой таких степеней). Например,

210= 102(1·21+ 0·20),

1310= 11012(1·23+ 1·22+ 0·21+ 1·20),

0.510= 0.12(1·2–1),

0.312510= 0.01012(0·2–1+ 1·2–2+ 0·2–3+ 1·2–4).

В противном случае число представляется в ЭВМ только с определенной погрешностью. Например, рассмотрим представление числа 0.1 с точностью до нескольких двоичных разрядов (количество разрядов указано в скобках):

0.110= 0.0002= 010(3);

0.110= 0.00012= 0.06310(4);

0.110= 0.000112= 0.0937510(5);

0.110= 0.0001102= 0.0937510(6);

0.110= 0.00011002= 0.0937510(7);

0.110= 0.000110012= 0.0976562510(8) и т.д.

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

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

f (x) = ax3 + bx2 + сx + d,

f (x) = ax + cos(bx).

Здесь a,b,c,d– произвольные константы.

Проведение сложных математических расчетов требуется во многих отраслях науки и техники. При этом объем этих расчетов таков, что вручную за разумное время их выполнить невозможно. Примеры – распределение нагрузки между подключенными к электростанции объектами (оно должно происходить практически мгновенно при изменении потребляемой мощности), вычисление траектории космических тел, расчет движений земной коры в гео­ин­фор­ма­ци­он­ныхсистемах (а это задачи нефтяной, газовой и других отраслей) и многое другое. Для этого и внедряются в промышленность и науку вычислительные системы и пишутся специализированные пакеты для проведения численных расчетов. Распространение же ЭВМ ставит, в свою очередь, новые математические задачи, не существовавшие ранее – распределениеInternet-трафика, обсчет трехмерных моделей в графических редакторах и играх и т.п.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]