Утвърдил: …………………..

                     

                      Декан

Дата .............................

СОФИЙСКИ УНИВЕРСИТЕТ “СВ. КЛИМЕНТ ОХРИДСКИ”

Факултет: Физически

Специалност: (код и наименование)  

 

 

 

 

 

 

 

 

 

Астрофизика, метеорология и геофизика

 

Магистърска програма: (код и наименование)

 

 

 

 

 

 

 

 

 

 

...................................................................................................................................................

 

УЧЕБНА ПРОГРАМА

 

 

 

 

Дисциплина:

Програмиране и изчислителна физика

(код и наименование)

Преподавател: доц. д-р Стоян Христов Русев

Асистент: ас. Атанас Цонев

 

Учебна заетост

Форма

Хорариум

Аудиторна заетост

Лекции

30

Семинарни упражнения

15

Практически упражнения

45

Обща аудиторна заетост

90

Извънаудиторна заетост

Самостоятелна подготовка за упражненията

10

Самостоятелна подготовка за две контролни работи

30

Работа върху курсовия проект

40

Самостоятелна подготовка за изпит

40

Обща извънаудиторна заетост

120

ОБЩА ЗАЕТОСТ

210

Кредити аудиторна заетост

3

Кредити извънаудиторна заетост

4

ОБЩО ЕКСТ

7

 

 

 

 

 


Формиране на оценката по дисциплината

% от оценката

1.      

Работата на студента по упражненията

10

2.      

Две писмени контролни работи (тест и задачи)

40

3.      

Курсов проект

20

4.      

Изпит

30

Анотация на учебната дисциплина:

Курсът “Програмиране и изчислителна физика” е предназаначен за студенти бакалаври втори курс, обучаващи се по специалността “Астрофизика, метеорология и геофизика”.

Курсът има за цел студентите да получат теоретични знания и практически умения за използване на програмирането и числените методи в областта на физиката.

Лекциите към курса (2 ч. седмично) са с основна цел систематично изложение на някои основни теми от областта на числените методи с акцент приложението им в реални проблеми на физиката – обработка и анализ на експериментални данни, числено решаване на физични задачи, числен експеримент. Паралелно с това накратко се разглеждат (и припомнят) основни моменти от програмиране.

В курса са включени семинарни (1 ч. седмично) и практически упражнения (3 ч. седмично) в компютърните класове на Факултета. Основна цел на семинарните упражнения са решаване на илюстративни кратки задачи и заедно с това упражняване на елементи от програмирането и предварителен анализ на задачите и проектите, предвидени за практическите упражнения. Предвижда се тези упражнения също да се провеждат в компютърен клас на Факултета, което ще позволи диференциран подход към студентите в зависимост от тяхната предварителна подготовка по програмиране. Основната цел на практическите упражнения е самостоятелната работа на студентите върху решаването на конкретни задачи и проекти. Част от времето на практическите упражнения (~9 ч.) е предвидено за консултации на студентите по самостоятелен проект, който се оценява допълнително.  Доколкото това е възможно, предлаганите задачи и проекти се стремят да отчитат спецификата на специалността АМГ и са подбрани от тези области на физиката.

 Като основни програмни езици и програмно осигуряване се предвижда използването на FORTRAN (WATFOR) и Matlab (клонингa – SciLab). За студенти, усвоили в достатъчна степен и предпочитащи други eзици или програмни среди (напр. Pascal, Delphi, C, C++ и др., при условие на легален или свободен софтуер) се допуска, по преценка на преподавателя, използването им за решаване на задачите и проектите, предвидени в курса.

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

 

 

 

Предварителни изисквания:

-         Линейна алгебра и аналитична геометрия

-         Математически анализ

-         Вероятности и статистика

 

 

Очаквани резултати:

Студентите, завършили успешно курса по Програмиране и изчислителна физика, могат да:

-         Програмират и използват алгоритми и съответни подпрограми от софтуерни пакети за:

o       числено решаване на системи линейни уравнения;

o       числено решаване на системи нелинейни уравнения;

o       интерполация на данни и функции

o       обработка на експериментални данни и определяне на неизвестни моделни параметри в линейния и нелинеен случай

o       числено диференциране и интегриране.

-         Оценка на надеждността и грешките на резултатите при решаване на горните задачи.

 

 

Учебно съдържание

 

Тема:

Хорариум

1.

Компютърна аритметика. Представяне на числова информация. Грешки. Разпространение на грешки и загуба на точност. Стабилност на пресмятането. “Лош” алгоритъм  или “лошо обусловена” задача?

2

2.

Езици на високо ниво. Алгоритъм. Асемблери, интерпретатори, компилатори, езици. Променливи. Имена, Стойност, Типове данни. Контролни структури. Подпрограми и функции и т.н. Специализиран математически софтуер

и пакети.

4

3.

Системи линейни уравнения. Обусловеност на задачата. Норма на вектор и матрица. Число на обусловеност на матрица. Директни методи и итерационни методи за решаване на системи линейни уравнения.

4

4.

Числени методи за решаване на нелинейни уравнения. Обусловеност на задачата. Методи за решаване на нелинейни уравнения с една променлива. Системи от нелинейни уравнения.

2

5.

Интерполация и приближено пресмятане на функции. Полиномиални интерполации (Лагранж, Нютон…). Сплайн интерполация.

4

6.

Обработка на данни. Метод на най-малките квадрати. Линеен случай. QR и сингулярно разложение (SVD).

2

7.

Обработка на данни. Минимизация (Оптимизация). Методи за многомерна оптимизация - градиентни и безградиентни (директни) методи.

2

8.

Числено интегриране и диференциране.

4

9.

Обикновени диференциални уравнения.

2

10.

Компютърна симулация. Методи на молекулярната динамика. Методи  “Монте Карло”.

2

11.

Фурие анализ. Редове на Фурие. Фурие трансформация. Свойства на Фурие трансформацията. Дискретни Фурие преобразования. Бързо Фурие преобразувание.

2

 

 

 

 

 

Конспект за изпит

 

Въпрос

1.

Представяне (кодиране) на числова информация. Проблеми при кодиране на числова информация. Машинна аритметика.

2.

Прeдставяне (кодиране) на естествените, цели и реални числа. Машинен епсилон.

3.

Грешки. Източници на грешки. Загуба на точност. Разпространение на грешки. Обусловеност на функция.

4.

Алгоритъм. Ефективност и стабилност (обусловеност) на алгоритъм. Стабилност (обусловеност) на задача.

5.

Обусловеност на задачата за решаване на системи линейни уравнения. Норма на вектор. Норма на матрица. Число на обусловеност на матрица.

6.

Директни методи за решаване на системи линейни уравнения. Метод на Гаус. Метод на Гаус с частичен избор на водещ елемент.

7.

LU разлагане на матрица. Метод на Гаус-Джордън. Пресмятане на детерминантата на матрица с методите на Гаус.

8.

Равномерно и експоненциално разпределения. Алгоритми за генериране на случайни числа

9.

Итерационни методи за решаване на системи линейни уравнения. Проста итерация. Методи на Якоби и Гаус-Зайдел.

10.

Нелинейни уравнения. Постановка на задачата. Кратност на корен. Брой на корените. Приближени корени. Обусловеност на задачата.

11.

Методи за решаване на нелинейни уравнения с една променлива. “Директен” метод. Метод на разполовяването. Сходимост на метода на разполовяването.

12.

Методи на итерациите (неподвижна точка). Сходимост на методите на итерациите (неподвижна точка). Критерии за спиране на итерационния процес.

13.

Метод на Нютон. Сходимост на метода на Нютон. Метод на секущите. Комбинирани методи. Корени на полиноми.

14.

Интерполация. Постановка на задачата. Приложения на интерполацията. Интерполация и апроксимация. Избор на интерполационна функция. Базисни функции.

15.

Полиномиална интерполация. Мономиален базис. Пресмятане на полиноми. Метод на Хорнер.

16.

Интерполации на Лагранж и Нютон.Ортогонални полиноми. Интерполация на функция.

17.

Частична полиномиална интерполация. Частична линейна интерполация. Сплайн интерполация. Кубичен сплайн.

18.

Метод на най-малките квадрати. Постановка на задачата. Линеен едномерен и двумерен случай. Метод на нормалните уравнения.

19.

Ортогонални трансформации. QR разложение. Сингулярно разложение (Singular value decomposition – SVD).

20.

Минимизация (Оптимизация). Постановка на задачата. Локална и глобална оптимизация. Връзка на минимизационната задача с тази за решаване на нелинейните уравнения.

21.

Едномерна оптимизация. Метод на златното сечение. Последователна параболична интерполация. Метод на Нютон. Комбинирани методи.

22.

Многомерна оптимизация. Симплекс метод. Методи на случайното търсене.

23.

Градиентни методи. Метод на най-стръмното спускане. Метод на Нютон.

24.

Числено интегриране и диференциране. Полиномиална интерполация на подинтегралната функция.

25.

Квадратурни формули на Нютон-Коутс. Метод на правоъгълника и на трапеците. Метод на Симпсън. Оценка на грешките.

26.

Квадратурни формули на Гаус. Двуточкова квадратурна формула на Гаус. Квадратурни формули на Гаус в общия случай.

27.

Числено диференциране. Приближения с крайни разлики.

 

 

Библиография

Основна:

  1. Записки по курса лекции “Програмиране и изчислителна физика” – е-вариант

2.      Tao Pang, An Introduction to Computational Physics, Cambridge University Press, New York, 1997

 

Допълнителна:

1.      Paul L. DeVries, A First Course in Computational Physics, John Wiley & Sons, Inc., NY, USA , 1993

2.      Franz J. Vesely, Computational Physics - An Introduction, Kluwer Academic / Plenum Publishers, New York-London, 2001

3.      P. K. Mackeown and D. J. Newman, Computational Techniques in Physics, Adam Hilger, Bristol, 1987

4.      Nicholas Giordano, Computational Physics, Prentice Hall, New Jersey, 1996

5.      R. W. Hamming, Numerical Methods for Scientists and Engineers, Dover Publications Inc, New York, 1962

 

Дата: 27.02.2013                                                        Съставил:  

 

 

                                                                                    доц. д-р Стоян Христов Русев