Вычислить при
(шаг ):1)
по формулам левой, правой и центральной разностных производных.2)
с помощью интерполяции по 5 узлам.3)
по формуле центральной разностной производной.Для всех случаев рассчитать оценки погрешности вычисления производных, сравнить с действительными погрешностями.
Сколько узлов следует взять для вычисления интеграла
с точностью при использовании формулы Симпсона?Целью лабораторных работ является закрепление на практике теоретических знаний, полученных в ходе изучения дисциплины «Вычислительные методы».
Предполагается, что студенты уже теоретически освоили соответствующие методы вычислительной математики и имеют опыт программирования на алгоритмических языках. Весь курс работ поставлен в среде системы для математических и инженерных расчетов MATLAB версии не ниже 4.2. Ознакомиться с системой MATLAB можно в [14-16], а также в сети INTERNET на сайтах www.exponenta.ru\matlab и www.matlab.ru.
Использование данной системы обусловлено тем, что она позволяет отвлечься от чистого программирования и сосредоточить внимание на использовании методов вычислительной математики для решения конкретных задач. В своем составе MATLAB содержит большое число самых разнообразных подпрограмм для решения широкого круга задач различного назначения: задачи линейной алгебры, решение систем уравнений (линейных и нелинейных), приближение функций и аппроксимация данных, численное дифференцирование и интегрирование, задачи одномерной и многомерной оптимизации и многое другое.
Курс лабораторных работ начинается с изучения самой системы и освоения языка программирования MATLAB. Вторая лабораторная работа рассматривает применение метода Гаусса для решения систем линейных алгебраических уравнений. Третья лабораторная работа посвящена изучению линейной интерполяции функций с помощью алгебраических полиномов. В четвертой лабораторной работе студенты должны применить метод наименьших квадратов для сглаживания экспериментальных результатов.
В ходе выполнения лабораторных работ для написания программ на языке MATLAB можно использовать любой текстовый редактор, работающий с ASCII-кодами (например, «Блокнот», текстовый редактор файлового менеджера FAR или NORTON COMMANDER). В состав системы MATLAB 5.x и выше входит специальный редактор/отладчик m-файлов MEdit.
В ходе выполнения каждой работы оформляется отчет, который должен содержать:
вариант и формулировку задания (по каждому пункту);
краткие теоретические сведения по изучаемой проблеме;
описание разрабатываемого или исследуемого алгоритма и программы;
листинг программы и распечатку результатов с достаточным для понимания количеством комментариев;
выводы по каждому пункту работы.
Отчет оформляется согласно требованиям настоящего пособия в печатном или электронном виде с применением редактора MS Word и присылается на проверку в ТМЦ ДО ТУСУР. На титульном листе отчета студент должен указать свои ФИО, идентификатор, пароль и номер варианта.
Вариант задания к лабораторным работам определяется по формуле
Nв=(N*k) div 100,
где Nв – искомый номер варианта;
N – общее число возможных вариантов;
k – две последних цифры пароля (число от 00 до 99);
div – операция целочисленного деления.
Если получается Nв =0, то берется вариант номер N.
Таблицы вариантов заданий для всех лабораторных работ приведены в приложении А в конце данного пособия.
4.2 Лабораторная работа № 1. Знакомство с пакетом для математических и инженерных расчетов MATLAB
Назначение данной работы – знакомство с системой для математических и инженерных расчетов MATLAB. Студенты должны научиться работать с системой в режиме прямых вычислений и освоить принципы программирования на внутреннем языке MATLAB.
Своим названием (MATrix LABoratory) система MATLAB обязана ориентации на матричные и векторные операции [14-16]. Система содержит также средства работы с графикой, методы численного анализа и оптимизации и многое другое.
Система MATLAB может работать как в режиме непосредственных вычислений (диалоговый режим), так и в режиме операционной среды, т.е. программу на языке MATLAB можно запускать на выполнение из командного окна среды. Первое знакомство с системой можно получить, запустив в командном окне MATLAB файл demo.m, который показывает основные возможности системы. Для этого, получив приглашение к вводу (символ «), необходимо набрать имя m-файла demo и нажать Enter.
Файлы, содержащие команды на языке MATLAB, имеют расширение *.m. Они бывают двух типов: script-файлы и функции. Script-файл представляет собой самостоятельную программу, написанную на языке системы MATLAB. Функции (function) представляют собой встроенные в систему или написанные пользователем подпрограммы, которые вызываются обращением к ним по имени с указанием входных аргументов и возвращают вектор, матрицу, скалярное или символьное значение. Информацию по каждой из внутренних функций системы MATLAB можно получить с помощью команды help <имя функции>. Команда help без параметра выдает информацию о всех функциях системы.
Ознакомиться с основными командами системы MATLAB:
Справочные команды - DEMO, WHATSNEW,VERSION, HELP, HELPWIN,
Управление командным окном – СLC, CLF, CLEAR, CD, DIR HOME, PAUSE, DISP, PATH, QUIT, FLOATS.
Арифметические и логические операторы – +, -, *, /, \, ^, ’, <, >, <=, >=, = =, ~ =, &, |, ~, ANS, PI, I, J.
Операторы ввода, вывода данных и операторы циклов – INPUT, PAUSE, ERROR, FPRINTF, SPRINTF, FOR…END, WHILE…END, IF…ELSE…END, BREAK, MENU.
Основные команды для работы с графикой – FIGURE, CLOSE, HOLD, SUBPLOT, PLOT, LOGLOG, POLAR, SEMILOGX,SEMILOGY, MESHGRID, PLOT3, MESH,SURF, CONTOUR.
Замечания:
a) В системе MATLAB реализовано два типа арифметических операций:
операции над матрицами и векторами в соответствии с правилами линейной алгебры (матричные операции);
поэлементные операции над массивами.
Чтобы различать эти операции, перед знаком поэлементной операции ставится точка (для операторов *, /, \, ^).
Пример:
1) X=A./B – поэлементное деление матрицы А на матрицу В. Размеры матриц Aи B должны быть одинаковыми. Результатом является массив с элементами
.2) X=А/В – деление матрицы А на матрицу В по правилам линейной алгебры (это эквивалентно X=А×В–1, где В–1 – обратная матрица).
б) Операции отношения и логические операторы выполняют поэлементное сравнение двух массивов. Они возвращают в качестве результата массив того же размера, элементы которого равны единице, если результат сравнения или выполнения логической операции равен истине, и нулю – в противном случае.
в) Логические операторы &, |, ~ соответствуют операторам булевой алгебры AND, OR, NOT.
Запустить файл demo.m и ознакомится с основными возможностями системы MATLAB. Проделать в режиме непосредственных вычислений следующие операции:
1) Работа с матрицами и векторами.
Ввод векторов, матриц, строковых переменных (из командной строки и с помощью команды INPUT).
Вывод произвольного элемента матрицы (вектора) или нескольких произвольных строк или столбцов. Формирование матрицы меньшего размера из исходной матрицы.
Операции матричного сложения, умножения, деления (умножения на обратную матрицу), возведения в степень, вычисление определителя матрицы, нахождение обратной матрицы, транспонирование матрицы.
Операции поэлементного умножения, деления, возведения в степень векторов и матриц.
Решение систем линейных уравнений вида AX=B с помощью стандартного решателя системы (использование оператора \).
2) Работа с функциями.
Для функции f(x) (см. таблицу 1 в приложении А) в указанных пределах изменения аргумента выполнить следующие действия:
Создать файл-функцию (m-файл типа function).
Построить график y = f(x). Добавить подписи к осям и заголовок графика.
Вычислить интеграл (с помощью функции QUAD) на указанном промежутке.
Построить 3D-график произведения заданной функции, зависящей от переменной x, на функцию sin(y)/y (следует пользоваться функциями MESHGRID и MESH).
1) Составить программу на языке MATLAB (script-файл), выполняющую матричные операции и работу с заданной функцией (см. п.п. 1 и 2 раздела II). Программа должна выполнять следующие действия:
- Запрос ввода пользователем двух матриц;
- Выбор операции над матрицами с помощью меню;
- Выполнение выбранной операции и вывод результата;
- Построение графика функции y=f(x) (см. табл. 1 в приложении А);
- Расчет интеграла для функции y=f(x).
2) Написать программу построения фигуры Лиссажу. Отношение частот k1/k2 указано в таблице вариантов заданий (см. приложение А). Фигура Лиссажу определяется комплексной функцией вида y(x)=cos(k1*x)+j*sin(k2*x), где
– мнимая единица. При этом независимая переменная x изменяется в пределах от 0 до 2p.