НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Физико-технический факультет

Кафедра ЭФУ и У

 

УТВЕРЖДАЮ

Декан ФТФ

________________ А. К. ДМИТРИЕВ

«_____»_________________ 2006 г.

 

 

РАБОЧАЯ ПРОГРАММА учебной дисциплины

Элементы компьютерной математики

 

ООП по направлению 010700 Физика

 

ФИЗИКО-ТЕХНИЧЕСКИЙ ФАКУЛЬТЕТ НГТУ

 

Курс 4 семестр 7

Лекции 17

Практические занятия 17

Контрольные работы:

Самостоятельная работа 30 час

Экзамен: 7

Зачет:

Всего 64 часов.

 

Новосибирск, 2006


Рабочая программа составлена на основании Государственного образовательного стандарта высшего профессионального образования по направлению 010700 (510400)  Физика

 

Регистрационный номер № 000 ен/бак, дата утверждения ГОС – 17.03.2000 г.

Шифр дисциплины в ГОС – ЕН.В.00

 

Рабочая программа обсуждена на заседании кафедры ЭФУ и У

27 сентября 2006 года

 

Программу разработали:

 

к. ф.-м. н., доцент ___________

 

Заведующий кафедрой

д. ф.-м. н., профессор ___________

 

Ответственный за основную

образовательную программу: д.ф-м.н, проф.

 

Общая характеристика направления 010700 физика

 

1.1 Направление утверждено приказом Министерства образования Российской Федерации от
02. 03. 2000 № 000.

1.2       Степень выпускника - бакалавр физики.

1.3 Квалификационная характеристика выпускника.

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

НЕ нашли? Не то? Что вы ищете?

•         научно-исследовательская: экспериментальная, теоретическая и расчетная;

•         педагогическая.

 

Бакалавр подготовлен к решению следующих задач:

а) научно-исследовательская (экспериментальная, теоретическая и расчетная деятельность):

•         научные исследования поставленных проблем;

•         выбор необходимых методов исследования;

•         освоение новых методов научных исследований;

•         освоение новых теорий и моделей;

•         обработка полученных результатов научных исследований на современном уровне и их анализ;

•         работа с научной литературой с использованием новых информационных технологий, слежение за научной периодикой;

•         написание и оформление научных статей;

составление отчетов и докладов о научно-исследовательской работе, участие в научных
конференциях;

б) педагогическая деятельность:

• подготовка и ведение семинарских занятий;

•         ведение занятий в учебных лабораториях;

•         руководство научной работой студентов;

•         проведение учебных занятий в среднем учебном заведении.

 

 

2. Особенности курса

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

 

Задачи курса:

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

Схема построения курса

Учет в процессе вычислений особенностей машинного представления чисел.

|

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

|

Упорядочение, хранение, исправление, пополнение и использование массивов информации.

|

Структурирование больших программ. Приемы отладки и тестирования.

|

Этапы постановки и решения вычислительных задач.

Программа курса

Двоичная система счисления и представление чисел в ЭВМ. Фиксированная и плавающая запятая. Особености вычислений, связанные с конечностью разрядной сетки. Переполнение, машинный нуль, потеря точности. Как обнаружить и устранить эти ситуации. Численная неустойчивость. Примеры организации вычислений без потери точности и численной неустойчивости. Важность знания "обычной" математики и соответствующих вычислительных алгоритмов. Лекции+семинары+самост. работа: 3+3+6 Организация циклов как элементарной основы вычислительных процессов. Рекуррентность. Чистка циклов. Типичные простые ситуации (рекуррентное задание функций, суммирование рядов с нужной точностью и т.д.). Рациональная организация разветвлений вычислительных процессов. Работа с индексируемыми переменными (векторами и матрицами). Употребление динамических массивов. Лекции+семинары+самост. работа: 5+5+4 Приемы упорядочения, хранения, исправления и пополнения массивов информации. Организация поиска, выборки, построение гистограмм. Рациональные приемы ввода и вывода данных. Средства машинной графики. Лекции+семинары+самост. работа: 3+3+6 Структурирование больших программ. Блок-схемы. Приемы отладки и тестирования. Обкатка. Требования легкой модифицируемости и удобства отладки программ. Важность вывода сигнальной и аварийной информации. Рациональные приемы обмена данными между подпрограммами. Лекции+семинары+самост. работа: 3+3+6 Этапы постановки и реализации вычислительной задачи. Обезразмеривание, оценки степени малости входных параметров, последовательное включение в рассмотрение разных процессов. Четыре необходимых условия успешного применения компьютеров в исследованиях: знание области науки, откуда возникла задача, общей математики, вычислительных методов и умение программировать. Приемы отладки. Выбор языка программирования. Уровни оптимизации работы транслятора. Использование автокодов и языка ассемблера. Лекции+семинары+самост. работа: 3+3+6

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

 

3. Список литературы (указаны первые издания)

1.    Ж.-П.Ламуатье. Упражнения по программированию на Фортране, 1978

2.    и др. Задачник-практикум по программированию и вычислительной математике, 1973

3.    ,. Вычислительная математика в примерах и задачах, 1972

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ

Контроль усвоения (помимо текущего).

В последней трети семестра - контрольная работа.

Задачи, дающие представление о требуемой степени овладения материалом.

1. Составить подпрограмму-функцию для вычисления f(x)=sin(x)/x-1 с относительной погрешностью, не превышающей 0.000001, если стандартная функция sin(x) вычисляется с абсолютной погрешностью, не превышающей 0.0000001.

2. Оценить, при каких положительных аргументах перестает "работать" алгортитм вычисления функции exp(-x) с помощью разложения в ряд Тейлора, если требуемая относительная погрешность результата не должна превышать 0.00001, а вычисления проводятся на персональном компьютере с обычной (не двойной!) точностью.

3. Функция f(x) задана в виде бесконечного произведения f(x)=П(1+x**2k/k**2) , k=1,2,3, ....... Составить подпрограмму для вычисления этой функции с относительной точностью до 0.000001.

4.    Выпуклый многоугольник задан массивами декартовых координат своих вершин. Упорядочить эти массивы в порядке следования вершин по периметру многоугольника и вычислить его площадь. Оформить алгоритм в виде подпрограммы.

 

5.    Задан массив первых N коэффициентов разложения функции в ряд по полиномам Лежандра. Составить подпрограмму для вычисления полинома p(x) степени N для наилучшего среднеквадратичного приближения к этой функции на интервале -1 <x< 1.

 

6.    Пусть x и y соответственно действительная и мнимая части комплексной переменной z, так что z=x+iy. Составить подпрограмму для суммирования с точностью eps ряда w(x,y)=a(1)+a(2)+a(3)+ ............, где a(k)=z**2k/k**3. Примечание: переменных типа complex не употреблять, поскольку в некоторых старых версиях FORTRANа этого типа нет.