Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Вычислительные методы. Теория и практика в среде MATLAB

Курс лекций: Учебное пособие для вузов
Покупка
Артикул: 130387.02.01
Изложены основные теоретические положения вычислительных методов, особое внимание уделено развитию у студентов практических навыков программирования классических вычислительных алгоритмов. В качестве среды программирования выбран пакет MATLAB, отличающийся простым в употреблении языком программирования и огромной библиотекой уже имеющихся программ для разного рода расчетов. В курсе из 15 лекций приводятся и разбираются 124 учебные программы MATLAB, на базе которых разработаны 2 контрольные работы, содержащие 180 задач. Для удобства читателей учебные программы, рассмотренные в книге, доступны на сайте издательства. Книга подготовлена на основе курса лекций «Вычислительные методы», прочитанного автором на физическом факультете Московского государственного университета им. М.В. Ломоносова. Для студентов вузов, будет полезна инженерам и преподавателям.
Плохотников, К. Э. Вычислительные методы. Теория и практика в среде MATLAB: Курс лекций: Уч.пос. для вузов / К.Э. Плохотников. - 2-e изд., исправ. - Москва : Гор. линия-Телеком, 2013. - 496 с.: ил.; . - (Уч.пос. для вузов). ISBN 978-5-9912-0354-8, 500 экз. - Текст : электронный. - URL: https://znanium.ru/catalog/product/431384 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов

                                    
УДК 519.6:004.9 (075.8) 
ББК 32.973.26-018я73 

П39 

Р е ц е н з е н т ы :  чл.-корр. РАН, доктор физ.-мат. наук  Н. Н. Калиткин;  
доктор физ.-мат. наук, профессор  В. Ф. Бутузов  

Плохотников К. Э.

П39
Вычислительные методы. Теория и практика в среде MATLAB:

курс лекций. Учебное пособие для вузов. – 2-е изд., испр.– М.: 
Горячая линия – Телеком, 2013. – 496 с.: ил.

ISBN 978-5-9912-0354-8. 

Изложены основные теоретические положения вычислительных методов, особое внимание уделено развитию у студентов практических навыков 
программирования классических вычислительных алгоритмов. В качестве 
среды программирования выбран пакет MATLAB, отличающийся простым 
в употреблении языком программирования и огромной библиотекой уже 
имеющихся программ для разного рода расчетов. В курсе из 15 лекций 
приводятся и разбираются 124 учебные программы MATLAB, на базе 
которых разработаны 2 контрольные работы, содержащие 180 задач. Для 
удобства читателей учебные программы, рассмотренные в книге, доступны на сайте издательства. Книга подготовлена на основе курса лекций 
«Вычислительные методы», прочитанного автором на физическом факультете Московского государственного университета им. М. В. Ломоносова. 
Для студентов вузов, будет полезна инженерам и преподавателям. 
ББК 32.973.26-018я73 
 
Адрес издательства в Интернет WWW.TECHBOOK.RU 
 

Учебное издание 

Плохотников Константин Эдуардович  
Вычислительные методы  
Теория и практика в среде MATLAB: курс лекций 
Учебное пособие для вузов 
2-е издание, исправленное 

Редактор  С. В. Васильев 
Компьютерная верстка  И. М. Чумаковой

Обложка художника  В. Г. Ситникова 

 
Подписано в печать  15.07.2013.  Формат 60×88/16. Уч. изд. л. 31. Тираж 500 экз. (1-й завод 100 экз.) 

ISBN 978-5-9912-0354-8                                                    ©  К. Э. Плохотников,  2013 
©  Издательство «Горячая линия–Телеком», 2013 

Предисловие 

Данный курс “Вычислительные методы. Теория и практика в среде 
MATLAB” из 15 лекций (рассчитан на 1 семестр) читается на физическом факультете Московского государственного университета им. М. В. Ломоносова. 
Цель курса состоит не только в знакомстве студентов с основными понятиями и методами, принятыми в вычислительной практике научной деятельности, но и в активном овладении базовыми алгоритмами вычислительных 
процедур. В основу курса положены учебные материалы [1–15]. 
Под активным овладением вычислительными процедурами понимается 
способность студентов создавать простые программы для решения тех или 
иных задач с последующим получением ответа в виде числа. В конечном счете проблема вычислений должна перестать быть проблемой, а внимание 
должно быть сосредоточено, прежде всего, на постановке вопросов в конкретных предметных областях. 
Для реализации цели активного овладения студентами вычислительными 
процедурами в курсе лекций представлены 124 учебные программы 
MATLAB, каждая из которых содержит подробные комментарии. Кроме того, разработаны 2 контрольные работы, содержащие 180 задач с ответами. 
Рекомендуется использовать версию MATLAB 7.0 или последующие версии. 
Отметим, что в целом данная книга не является учебником по пакету 
MATLAB. Есть множество других учебников по данному пакету [9–11]. 
Условно материал книги можно поделить на 2 части.  
Первая часть включает лекции 1–8. Для изучения первой части необходимо знакомство с общими курсами линейной алгебры, математического анализа и курса дифференциальных уравнений. Завершение первой части предполагает проведение контрольной работы № 1 с последующей оценкой глубины 
проработки материала студентами.  
Вторая часть книги включает лекции 9–15 и предполагает знакомство 
с курсом уравнений математической физики и методами решения уравнений 
в частных производных. 
Особняком стоят последние 2 лекции, в которых разбираются методы решения интегральных уравнений, а также метод статистических испытаний 
(метод Монте-Карло). Завершение второй части также предполагает проведение контрольной работы № 2.  
Как предполагается, курс лекций “Вычислительные методы. Теория 
и практика в среде MATLAB” должен быть завершен экзаменом с оценкой. 
Для удобства читателей и пользователей на сайте издательства 
(www.techbook.ru) к данному учебному пособию размещены дополнительные 
материалы с программами MATLAB. На диске содержатся 15 папок: 

Плохотников К. Э. Вычислительные методы. Теория и практика в среде MATLAB 

Lecture#1, …, Lecture#15, в которые помещены 124 учебные программы 
(Data_sheet1.m, …), а также две папки Test1 и Test2 с контрольными работами по 30 вариантов (variant#1, …, variant#30) в каждой из них. Все варианты 
контрольных работ содержат 3 программамы MATLAB (task1.m, task2.m, 
task3.m), которые возвращают численные ответы задач контрольных работ. 
Эти же ответы приведены в конце данного учебного пособия. 

Лекция 1. Численные методы 

Методологическое введение 

Дисциплина под названием Численные методы часто характеризуется 
также термином вычислительная математика. Из этих двух названий следует, что в курсе лекций будет представлен набор вычислительных или численных методов, процедур, наиболее употребляемых в современных задачах физики, и, прежде всего, математической физики и вообще во всех тех областях 
знания, которые принято называть естественно-научными. 
В настоящее время применение численных методов не ограничивается 
только естественно-научными областями знания, но и активно востребовано 
в сфере, традиционно относимой к гуманитарной. Это – история, политика, 
экономика, психология и некоторые другие области знаковой деятельности 
человека [16, 17]. Более того, на примере экономики можно констатировать 
значительные злоупотребления в использовании математического метода 
в ущерб содержанию предметной области [18]. 
Активное продвижение математических методов и технологий во все 
сферы знаковой деятельности человека стало возможным с появлением компьютера, т. е. с появлением компьютерной или, более точно, информационной индустрии. 
Традиционное использование в науке компьютера, как универсального 
вычислительного устройства получило в последнее время новое содержание 
в рамках таких понятий, как виртуальная реальность и интерактивный интерфейс. Современные вычислительные мощности и средства программирования позволяют в ряде случаев не просто решить ту или иную задачу, но и 
построить нечто большее – виртуальную реальность (или просто виртуал), 
в котором исследователь может осознать решение задачи во всем возможном 
многообразии. Привлечение средств интерактивного интерфейса позволяет 
активно манипулировать доступным многообразием для получения оптимального в том или ином смысле решения исходной задачи. В этом контексте 
курс лекций построен таким образом, чтобы студенты могли непосредственно использовать такой широко известный пакет программирования, как 
MATLAB, для активного овладения вычислительными методами. 
С точки зрения внешнего наблюдателя, физика, а также все прочие естественно-научные отрасли знания представляют собой свод, перечень или набор теорий, моделей, которые могут объединяться в еще более крупные единицы – парадигмы. Теории или модели могут быть насыщены в той или иной 
мере математикой, тогда они становятся математическими теориями или математическими моделями. Более употребляемым является термин математическая модель, так как модели в отличие от теорий представляются более 
мелкими единицами знания и более разнообразными, они интенсивно гене
Плохотников К. Э. Вычислительные методы. Теория и практика в среде MATLAB 

рируются, а также могут активно устаревать, выходя из употребления. Более 
подробно понятие математическая модель разобрано во введении к монографии [16] и курсе лекций [17]. Грубо говоря, “расстояние” между математическими моделями той или иной предметной области и компьютером в 
широком смысле слова заполняют вычислительные методы. Вычислительные 
методы свой наивысший статус – статус вычислительного эксперимента – 
достигают в контексте некоторой математической модели, описывающей тот 
или иной объект исследования. 
Постановка и проведение вычислительного эксперимента нам необходимы не сами по себе, а для контроля и управления объектом исследования. 
В более широком смысле слова и уже применительно к моделям любой 
предметной области нас в конечном счете интересует власть над тем или 
иным фрагментом природой или социальной реальностями. 
Приведенный перечень понятий проиллюстрируем на примере современных методов прогноза погоды. Предметная область или объект исследования 
может быть назван физикой атмосферы. В частности, физика атмосферы 
включает ряд математических моделей, описывающих динамику и термодинамику атмосферы в целом. Как известно, для целей прогноза погоды используются уравнения в частных производных Навье-Стокса. Эти уравнения 
описывают динамику и термодинамику сплошной среды, они традиционно 
привлекаются для описания движения жидкостей и газов. Чтобы эти уравнения использовать для прогноза погоды, их необходимо дискретизировать, 
т. е. перейти от континуального описания сплошной среды к дискретному в 
том или ином смысле описанию. Сам по себе этот переход является одной из 
основных процедур, обсуждаемых в вычислительных методах. После осуществления процедуры дискретизации становится возможным привлечение 
компьютеров для расчетов основных метеорологических параметров: скорости, температуры, давления и прочих характеристик. Когда нам, массовым 
потребителям прогноза погоды, демонстрируют на экране телевизора соответствующие карты, и мы переживаем чувство власти над стихией – это и 
есть выражение триумфа вычислительных методов в форме вычислительного 
эксперимента. 
Объект исследования допускает множество математических моделей для 
своего описания. Естественно, может возникнуть вопрос: почему моделей 
множество? Потому что сам объект исследования не удается раз и навсегда 
определить, текущая модель и есть одно из возможных определений объекта 
исследования. Современное положение дел в области моделирования таково, 
что объект исследования допускает в общем случае бесконечно много моделей для своего описания. Основная трудность, стоящая перед исследователем, состоит в проблеме выбора из потенциально бесконечного набора конкурирующих моделей. Более подробно о природе выбора и построения моделей изложено в курсе лекций [17]. 

Лекция 1. Численные методы 
7 

На рис. 1.1 приведена схема позиционирования вычислительных методов 
в рамках так называемого “колеса” научно-технической деятельности. Под 
колесом, или циклом, понимается реализация цепочки: объект → модель → 
вычислительные методы → вычислительный эксперимент → контроль → 
объект′, где штрих обозначает возврат к исходному объекту исследования, но 
на другом научно-техническом, познавательном уровне. 

объект 
исследования 

модель1 

модель2 

модель3 

вычислительные 
методы

вычислительный 
эксперимент

контроль, 
управление
 
Рис. 1.1. Блок-схема позиционирования вычислительных методов 
в рамках “колеса” научно-технической деятельности 

Примеры математических моделей 

Модель 1. Модель маятника. Смоделируем движение маятника в некоторой среде, характеризуемой трением (рис. 1.2, а). На рис. 1.2, б – его математическая модель в виде дифференциального уравнения. Груз некоторой массы прикреплен к абсолютно упругому и невесомому стержню длины l, стержень крепится к шарнирной опоре в точке О, ϕ – угол отклонения маятника 
от вертикального положения, g – ускорение свободного падения, t – время, 
µ – коэффициент трения при движении маятника в некоторой среде. При 
описании объекта исследования имеют в виду отсечение огромного количества иных возможных моделей маятника с учетом других особенностей его 
определения и моделирования. 

g 

l 
ϕ 

О 

а 

2

2
sin
0
d
d
l
g
dt
dt
ϕ
ϕ
+ µ
+
ϕ =

б 

Рис. 1.2. Механический маятник: 
а – образ маятника; б – математическая модель маятника 

На рис. 1.2, б приведена математическая модель движения маятника в виде нелинейного дифференциального уравнения 2-го порядка. Необходимо 
решить это уравнение, т. е. найти решения этого уравнения в том или ином 

Плохотников К. Э. Вычислительные методы. Теория и практика в среде MATLAB 

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

 

1
2

2
2
2
1

,

sin
,

dy
y
dt
dy
y
y
dt

⎧
=
⎪⎪⎨
⎪
= −ν
− ω
⎪⎩

 
(1.1) 

где y1 =ϕ, y2 =ϕ ′, ν = µ / l, ω2 = g / l. 
Наряду с моделью движения маятника, согласно уравнениям (1.1) рассмотрим также модель линейного маятника, когда считается, что sinϕ ≈ ϕ. 
Соответствующие уравнения для описания движения линеаризованного маятника: 

 

1
2

2
2
2
1

,

.

dy
y
dt
dy
y
y
dt

⎧
=
⎪⎪⎨
⎪
= −ν
− ω
⎪⎩

 
(1.2) 

Ниже приведен код программы с комментариями в среде MATLAB, который обеспечивает численное решение систем уравнений (1.1) и (1.2) и представление решений в виде графиков (рис. 1.3). Отметим, что в целях упрощения кода программы не используются элементы графического интерфейса 
(кнопки, редактируемые поля и пр.), которые легко могут быть введены в 
программу приложения (более подробно с соответствующими процедурами 
можно ознакомиться в учебном пособии [11]). 

Листинг 1.1 
 %MATLAB сценарий или m-сценарий для 
 %моделирования движения маятника 
function pendulum 
 %определяем значения входных параметров задачи 
nu=0.1; omega2=1; 
 %вводим начальный и конечный моменты времени 
tin=0; tfin=30; 
 %определяем анонимную функцию правых частей 
 %системы уравнений (1.1) 
f=@(t,y)[y(2);-nu*y(2)-omega2*sin(y(1))]; 
 %обращаемся к одному из решателей  
 %дифференциальных уравнений в среде MATLAB ode23 

Лекция 1. Численные методы 
9

 %задаем относительную и абсолютную точности 
options = odeset('RelTol',1e-3,'AbsTol',[1e-6 1e-6]); 
 %решаем систему дифференциальных уравнений (1) 
[time,z]=ode23(f,[tin tfin],[pi/4 0],options); 
 %строим график искомого решения 
plot(time,z(:,1)); 
 %решение упрощенной линеаризованной модели 
 %движения маятника (2) 
fl=@(t,y)[y(2);-nu*y(2)-omega2*y(1)]; 
[timel,zl]=ode23(fl,[tin tfin],[pi/4 0],options); 
hold on 
plot(timel,zl(:,1),'-.'); 

Действия студентов по запуску программы pendulum следующие: входим 
в MATLAB, нажимаем File → New → M-File, в появившееся окно с помощью буфера обмена загружаем код программы. Если требуется, корректируем код программы и запускаем ее на исполнение с помощью либо кнопки 
Run, либо – нажатий Debug → Run, либо просто F5. MATLAB также запросит имя и место дислокации соответствующего файла. 

Рис. 1.3. Решения систем уравнений (1.1) и (1.2) согласно коду листинга 1.1 

Изучение листинга 1.1 показывает наличие возможности задания уровней 
относительной и абсолютной погрешностей или соответствующей относительной или (и) абсолютной точности  при решении уравнений (1.1) 
и (1.2). В общем случае различают 4 источника погрешности результата: 
• 
математическая модель; 
• 
исходные данные; 
• 
приближенный метод; 
• 
округления при вычислениях. 

Плохотников К. Э. Вычислительные методы. Теория и практика в среде MATLAB 

Иллюстрация погрешности математической модели приведена на рис. 1.3 
при сравнении двух моделей: нелинейной, более реалистичной модели и линейной упрощенной модели движения маятника. 
Приближенным числом a называется число, незначительно отличающееся 
от точного A и заменяющее последнее в вычислениях. Под ошибкой или погрешностью ∆a приближенного числа a обычно понимается разность между 
точным и приближенным значениями, т. е. ∆a = A − a. Как правило, знак 
ошибки неизвестен. В этом случае используют абсолютную погрешность 
приближенного числа ∆ = |∆a|. Относительной погрешностью δ приближенного числа a называется отношение абсолютной погрешности ∆ к модулю 
точного числа A, т. е. δ = ∆ / |A|. Под предельной абсолютной погрешностью 
приближенного числа a понимается всякое число ∆a , не меньшее абсолютной 
погрешности этого числа, т. е. ∆ = |A − a| ≤ ∆a. Под предельной относительной погрешностью приближенного числа a понимается всякое число δa, не 
меньшее относительной погрешности этого числа, т. е. δ  ≤ δa. Согласно введенным определениям имеем 
a − ∆a ≤ A ≤ a + ∆a или, что то же, A = a ± ∆a; 
a(1 − δa) ≤ A ≤ a(1 + δa) или, что то же, A = a(1 ± δa). 

Второе из неравенств получено из предположения о том, что на практике 
A ≈ a. 
Возвращаемся к источнику погрешности результата в исходных данных. 
Так, согласно работе [19], измерение лэмбовского сдвига δ (МГц) в атоме 
водорода по сравнению с теорией имеет следующую абсолютную точность: 
δэксп = 1057,862 ± 0,020; δтеор = 1057,912 ± 0,011. Нетрудно оценить относительную точность измерения и погрешность теоретической оценки: соответственно 1,89⋅10−4 и 1,04⋅10−5. Точность в особых прецизионных измерениях 
доходит до 10−12. Это, конечно, не типичная ситуация в физике и технике. 
Часто приходится ограничиваться относительной погрешностью измерений 
от 1 % до 10 % и более. 
Погрешности результата, связанного с особенностями метода, весьма разнообразны. Они выражаются, например, в том, что ряды суммируются с конечным, а не бесконечным числом слагаемых, функции аппроксимируются 
полиномами с заданной точностью, итерационные процессы прекращаются 
после конечного числа шагов и пр. Особенности тех или иных вычислительных методов обсуждаются на протяжении всего данного курса. 
Погрешности при вычислениях вследствие округлений неизбежны, поскольку на компьютере под числа отводится ограниченное число байт. Например, под число с плавающей запятой типа double в MATLAB отводится 
8 байт или 64 бит памяти, что позволяет достигать точность порядка 15 значащих цифр. Отметим, что в MATLAB в рамках символических вычислений