ChM_V_INZhENERNYKh_RASChYoTAKh_chast_1
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Московский государственный машиностроительный университет (МАМИ)
В.И.Калядин, А.И.Макаров, В.Н.Тихомиров
Численные методы в инженерных расчетах
(часть 1)
Учебное пособие по дисциплине «Численные методы» для студентов специальности
190109 - Наземные транспортно-технологические средства
Одобрено методической комиссией по естественнонаучным и математическим дисциплинам
МОСКВА 2013
УДК 519.6(075.8)
Разработано в соответствии с Федеральным государственным образовательным стандартом ВПО третьего поколения для специальности Наземные транспортно-технологические средства (специализация «Автомобили и тракторы») на основе рабочей программы дис-
циплины «Численные методы»
Рецензенты: генеральный директор «Института информационного технологий», д.т.н., профессор В.И. Зубков; доцент кафедры «Автоматика и процессы управления»
Московского государственного машиностроительного университета, к.ф.-м.н., доцент Т.Т.Идиатулов.
Работа подготовлена на кафедре "Информационные системы и дистанционные технологии"
Калядин В.И., Макаров А.И., Тихомиров В.Н. Численные методы в инженерных расчетах (часть 1). Учебное пособие по дисциплине «Численные методы» для студентов, обучающихся по специальности 190109 - Наземные транспортно-технологические средства. М.: Университет машиностроения, 2013, 100с.: ил.
Пособие ориентировано на изучение методов вычислительной математики используемых в инженерной деятельности будущих специалистов. Приведены примеры выполнения расчетов средствами MS Excel, с помощью языка программирования Visual Basic for Application Microsoft Excel и интегрированной среды программирования MATLAB. Приводятся основы синтаксиса и примеры расчетов в среде MATLAB.
Введение и приложение А написал В.Н.Тихомиров, разделы №1 и №4 подготовил А.И. Макаров, а разделы №2, 3, 5 написал В.И Калядин.
©Калядин Вячеслав Иванович
©Макаров Алексей Иванович
©Тихомиров Василий Николаевич
©Московский государственный машиностроительный университет, 2013
2
|
Содержание |
|
Введение ...................................................................................................... |
5 |
|
Правила выполнения заданий по темам ................................................. |
5 |
|
Краткие сведения и знакомство с MATLAB ........................................... |
6 |
|
1 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №1 Решение нелинейных |
||
уравнений .................................................................................................. |
11 |
|
1.1 |
Краткие теоретические сведения ...................................................... |
11 |
1.2 |
Метод простых итераций ................................................................... |
15 |
1.3 |
Метод Ньютона (метод касательных) .............................................. |
19 |
1.4 |
Метод деления отрезка пополам ....................................................... |
22 |
1.5 |
Задание к расчетно-графической работе №1................................... |
33 |
2 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №2 Решение систем |
|
|
линейных алгебраических уравнений методом (прямые методы) .... |
35 |
|
2.1 Краткие теоретические сведения...................................................... |
35 |
|
2.1.1 Формулировка задачи ..................................................................... |
35 |
|
2.1.2 Метод Гаусса (метод исключения неизвестных)......................... |
37 |
|
2.1.3 Решение СЛАУ методом Гаусса с выбором главных элементов |
||
по столбцу ................................................................................................. |
41 |
|
2.1.4 Характеристики метода Гаусса (прямых методов) ..................... |
42 |
|
2.2 |
Программное обеспечение................................................................ |
42 |
2.3 |
Задание к расчетно-графической работе №2................................... |
44 |
2.3.1 Пример выполнения варианта задания ......................................... |
44 |
|
2.3.2 Варианты заданий (варианты СЛАУ) ........................................... |
47 |
|
3 |
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №3 Решение СЛАУ |
|
итерационными методами ....................................................................... |
49 |
|
3.1 |
Краткие теоретические сведения ..................................................... |
49 |
3.1.1 Об итерационных методах ............................................................. |
49 |
|
3.1.2 Метод простых итераций ............................................................... |
49 |
|
3.1.3 Метод Зейделя ................................................................................. |
53 |
|
3.1.4 О применении итерационных методов ......................................... |
54 |
|
3.2 |
Задание к расчетно-графической работе №3................................... |
55 |
3.2.1 Пример выполнения задания 1 ...................................................... |
56 |
|
3.2.2 Пример выполнения задания 2 ...................................................... |
59 |
|
3.2.3 Варианты задания 1......................................................................... |
60 |
|
3.2.4 Варианты задания 2......................................................................... |
60 |
3
4 |
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №4 Интерполяция |
|
табличных данных.................................................................................... |
63 |
|
4.1 |
Краткие теоретические сведения ...................................................... |
63 |
4.2 |
Постановка задачи интерполяция табличной функции ................. |
65 |
4.3 |
Кусочно-линейная интерполяция ..................................................... |
65 |
4.4 |
Интерполяция полиномом ................................................................. |
66 |
4.5 |
Интерполяционный многочлен Лагранжа ....................................... |
68 |
4.6 |
Приближение функций сплайнами................................................... |
72 |
4.7 |
Задание к расчетно-графической работе №4................................... |
73 |
5 |
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №5 Приближения по |
|
методу наименьших квадратов ............................................................... |
74 |
|
5.1 |
Краткие теоретические сведения ...................................................... |
74 |
5.1.1 Решение переопределѐнной системы n линейных уравнений с m |
||
неизвестными (n > m) .............................................................................. |
74 |
|
5.1.2 Сглаживание точечных данных..................................................... |
77 |
|
5.2 |
Задание к расчетно-графической работе №5................................... |
85 |
Рекомендуемая литература ..................................................................... |
88 |
Приложение А Описание интегрированной среды пакета MATLAB 89
4
Введение
Развитие науки и техники современного общества определило потребность развития средств моделирования природных, экономических, технических и иных процессов и систем. Что, в свою очередь, требует от инженера знаний математики и, в частности, такого еѐ раздела как численные методы. В настоящем пособии по численным методам рассматриваются вопросы решения нелинейных уравнений, решения систем линейных уравнений, интерполяции и аппроксимации экспериментальных данных. Вычисления ориентированы на использование в среде Excel макросов на VBA и пакета MATLAB.
Правила выполнения заданий по темам
Для практического освоения указанных тем студенту следует:
–изучить теоретический материал темы по лекциям, методическим указаниям и рекомендуемой литературе;
–выполнить на компьютере лабораторные работы по предложенным преподавателем темам;
–ознакомиться с заданием расчетно-графической работы (РГР) своего варианта по темам заданным преподавателем и подготовить в отчете материал для еѐ выполнения.
–отчет по теме расчетно-графической работы должен быть оформлен на листах бумаги формата А4 и включать в себя следующие разделы:
–титульный лист с названием темы;
–задание по теме расчетно-графической работы;
–материал для выполнения темы в соответствии со своим конкретным вариантом задания, включая краткий конспект по теме;
–перерисовать в отчет или распечатать на принтере полученный при выполнении РГР результат.
На занятиях студенту следует:
5
показать преподавателю оформленный отчет с материалами для выполнения темы и получить допуск к работе на компьютере,
выполнить на компьютере задание по теме,
внести полученные результаты в отчет,
представить результаты выполненной работы и отчет преподавателю для защиты. Защитить тему, отвечая на предложенные преподавателем вопросы и выполняя контрольные задания.
Краткие сведения и знакомство с MATLAB
В последнее время получили большое развитие средства так называемой «компьютерной математики». Они призваны упростить и ускорить проведение исследований поведения различных объектов и процессов на компьютере.
MATLAB является одним из наиболее известных программных средств в области численного моделирования. Пакет развивается уже более 30 лет, имеет большое количество расширений и является практически стандартом.
Само название MATLAB, является аббревиатурой от слов MATrixLABoratory (матричная лаборатория). То есть, пакет ориентирован на матричные вычисления. В MATLAB удачно реализованы средства работы с многомерными массивами, большими и разреженными матрицами и многими типами данных. В нем реализованы различные методы численных расчетов, описанные в специализированных широко известных библиотеках научных программ (EISPACK,NAG).
После запуска программы пользователь работает в среде программирования, главное окно которой представлено на рисунке 1.
В окне 1 отображается содержимое текущей папки пользователя. Окно 2 является окном интерпретатора, в котором собственно и происходит работа. В окне 3 отображаются используемые переменные. В окне 4 можно посмотреть содержимое файлов системы MATLAB из окна 1. В окне 5 сохраняются команды MATLAB, набранные в окне 1.
6
Рисунок 1
Язык MATLAB является высокоуровневым интерпретируемым языком программирования, включающим основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования. Основной особенностью языка являются его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно» (англ. Think vectorized). Язык программирования системы MATLAB создан таким образом, что любые (подчас весьма сложные) вычисления можно выполнять в режиме прямых вычислений, то есть без подготовки программы пользователем. При этом MATLAB выполняет функции суперкалькулятора и работает в
режиме командной строки.
Работа с системой носит диалоговый характер и происходит по правилу «задал вопрос – получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши ENTER.
7
>> 2+2 ans =4
>>
Ввод вектора-строки
>>b=[2 -4 5 7] |
|
||
b = |
|
|
|
2 |
-4 |
5 |
7 |
>> |
|
|
|
Другой способ ввода вектора
>>c=2: 0.2: 4 $нач_знач:шаг:кон_знач
c=
Columns 1 through 9
2.0000 2.2000 2.4000 2.6000 2.8000 3.0000… 3.2000
3.4000 3.6000
Columns 10 through 11 3.8000 4.0000
Вычисление косинуса
>>q=cos(c) q =
Columns 1 through 9
-0.4161 |
-0.5885 -0.7374 -0.8569 -0.9422 -0.9900… |
- |
0.9983 -0.9668 -0.8968 |
|
|
Columns 10 through 11 |
|
|
-0.7910 |
-0.6536 |
|
>> |
|
|
Подробное описание синтаксиса языка программирования пакета MATLAB приведены в приложении А. Основные правила работы в пакете следующие:
приглашение к вводу инструкций осуществляется символом >> ;
завершает ввод инструкции клавиша «ENTER»;
знаком присваивания является привычный математический символ =, массивы задаются в квадратных скобках;
8
встроенные функции (например, sin) записываются строчными буквами, а их аргументы указываются в круглых скобках;
результат вычислений выводится в строках вывода (без знака
>>);
комментарии задаются после символа $ ;
если не указана переменная для значения результата вычислений, то MATLAB присваивает ей имя ans;
диалог происходит в стиле «задал вопрос – получил ответ». Некоторые команды управления окном командного режима:
clс– очищает экран и размещает курсор в левом верхнем углу пустого экрана;
home– возвращает курсор в левый верхний угол окна;
Арифметические операторы задают выполнение арифметических операций. В MATLAB практически все операторы предназначены для выполнения операций над матрицами (табл. А.1 приложения).
MATLAB обладает собственной системой графики. Например, при наличии одномерных массивов
c и q, где c массив с значениями аргумента, а q массив с значениями отображаемой функции рассмотренные выше, после ввода команд:
>>plot(c,q) |
|
|
>>grid |
|
|
>> |
|
|
получим график, представленный на |
Рисунок 2 |
|
рисунке 2. |
||
|
Полученный график можно редактировать при помощи встроенных средств.
Рассмотрим получение более сложного графика функции
f |
sin( x) |
при |
x 2 : 2 с шагом |
|
|
|
x |
32 |
|||||
|
|
|
9
Попытка «лобового» решения задачи приводит к ошибке
>>x=[-2*pi:pi/32:2*pi];
>>f=sin(x)/x;
??? Error using ==>mtimes
Inner matrix dimensions must agree.
Дело в том, что sin(x) и x– матрицы-строки, а символ «/»- операция матричного деления, а деление этих матриц невозможно, о чѐм и сообщает MATLAB (красным цветом). Для правильного умножения в данном случае следует применить оператор./ (поэлементное деление массивов).
>>f1=sin(x)./x; |
|
|
|
|
|
|
|
|
|
|
||
Здесь возникает другая проблема - при x равном 0 будет деление |
||||||||||||
«ноль на ноль» и MATLAB заносит NaN в соответствующий элемент |
||||||||||||
массива f1. Хотя из курса |
|
|
|
|
|
|
|
|
|
|||
математического |
анализа |
1.2 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
||||
известно, |
что |
правильный |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
0.8 |
|
|
|
|
|
|
|
|
ответ такого действия - 1. |
0.6 |
|
|
|
|
|
|
|
|
|||
Поэтому |
следует |
помнить, |
0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
что компьютер |
только вы- |
0.2 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
||||
числяет, |
а думать |
должен |
0 |
|
|
|
|
|
|
|
|
|
-0.2 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
программист. |
|
|
-0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
-8 |
-6 |
-4 |
-2 |
0 |
2 |
4 |
6 |
8 |
Для рисования графика сле- |
|
|
|
Рисунок 3 |
|
|
|
|
||||
дует ввести команды: |
|
|
|
|
|
|
|
|
|
>>plot(x,f)
>>grid
На рисунке 3 заметно, что в точке x=0 на графике линия отсутствует. Для переноса графика построенного в пакете MATLAB в текстовый документ можно использовать буфер обмена. Для этого в меню EDIT следует выбирать командуCopy Figure, в текстовом редакторе выполнить команду Вставка. Для знакомства с возможностями пакета MATLAB по построению графиков студентам предлагается построить график функции своего варианта представленной в таблице 1.1 (РГР №1).
10