Мет.указания по лабораторным работам. Лабораторная работа 1. 3 Основы теории погрешностей 3 Лабораторная работа 2. 11 Основы теории погрешностей 11
Скачать 0.72 Mb.
|
Лабораторная работа №3-4.«Решение нелинейных уравнений»Цель: Научиться находить корни нелинейных уравнений различными методами. Задание: Отделить корни уравнения графическим и аналитическим методом. Уточнить один из коней с точностью =0,001 методом: Бисекций; Простой итерации; Ньютона; Хорд; Решение данного задания должно быть выполнено как в «ручную» так и с использованием среды MatLab. Варианты заданий:
Теоретический материал: Графический метод отделения корней. Строят график функции y=f(x). Визуально определяют отрезки, в которых заключено только по одному корню (только одной абсциссе точек пересечения). Количество действительных корней уравнения y=f(x)определяется числом пересечения графика с осью ОХ. Если y=f(x) касается ось абсцисс, то уравнение имеет в этой точке двукратный корень Если y=f(x) имеет перегиб в точке пересечения с осью абсцисс то уравнение имеет в этой точке трехкратный корень Аналитический метод. Найти первую производную f`(x) Составить таблицу знаков функции y=f(x), пологая аргумент х равным: Критическим значениям Граничным значениям Определить интервалы, на концах которых функция принимает значения противоположных знаков. Внутри этих интервалов находится по одному, и только по одному, корню. Создание М-файлов в MatLab: М-файл- это список команд MATLAB, сохраненный на диске. Для подготовки, редактирования и отладки М-файлов служит специальный редактор, который можно вызвать, выполнив команду главного меню File -> New -> M-file. В результате работы этой команды будет создан новый М-файл. (см. Рисунок 2) Рисунок 2. Редактор для создания М-Файлов Привести операторы М-файла к выполнению можно несколькими способами: вызвать команду Debug > Run из меню редактора М-файлов; воспользоваться клавиатурой и нажать на кнопку F5; набрать имя М-файла в командной строки и нажать ENTER. Текстовый комментарий в MATLAB – это строка, начинающаяся с символа %. Построение графиков в MatLab: MatLab обладает хорошо развитыми графическими возможностями для визуализации данных. Вывод функции одной переменной в виде графика состоит из следующих этапов: 1. Задание вектора значений аргумента х. 2. Вычисление вектора у значений функции y(х). 3. Вызов команды plot для построения графика. Команды для задания вектора х и вычисления функции лучше завершать точкой с запятой для подавления вывода в командное окно их значений (после команды plot точку с запятой ставить необязательно, т. к. она ничего не выводит в командное окно). Пример решения нелинейного уравнения в среде MatLab: Уравнение имеет вид : 3x4+8x3+6x2-11=0 Строим график (см. Рисунок 3) >> x=[-2:0.1:5] >> f= 3*x.^4-8*x.^3-18*x.^2+2 >> plot(x,f) >> grid Функция имеет 4 точки пересечения с осью ОХ. -1 -0,5 0,5 4,1 Рисунок 3. График функции Уточним методом Бисекции корни уравнения, для этого создадим два м-файла с именами ex1.m , bisec.m function ex1 % Решить уравнение f(x)=0, % Введём функцию f(x) f = inline('3*x.^4-8*x.^3-18*x.^2+2'); root1 = bisec(f, -1.5, -0.4) root2 = bisec(f, -0.6, 0) root3 = bisec(f, 0, 0.5) root4 = bisec(f, 4.0, 4,3) function center = bisec(f, left, right) % Классический метод бисекции с точностью 2 eps while right - left > 0.0001 center = (right - left) / 2 + left; if f(center) * f(left) > 0 left = center; else right = center; end end Далее в командной строке введем ex1, и получим уточненные значения корней >> ex1 root1 = -1.3933 root2 = -0.3697 root3 = 0.3145 root4 = 4.1151 Уточним методом Ньютона корни уравнения, для этого создадим два м-файла с именами ex2.m , newton.m function ex2 % Решить уравнение f(x)=0, методом Ньютона % Введём функцию f(x) f = inline('3*x.^4-8*x.^3-18*x.^2+2'); % Её производная df = inline('12*x.^3-24*x.^2-36*x'); root1 = newton(f, df, -1) root2 = newton(f, df, -0.5) root3 = newton(f, df, 0.5) root4 = newton(f, df, 4.1) function root = newton(f, df, x0) root = x0 - f(x0) / df(x0); old_root = x0; while abs(old_root - root) > 2 * eps t = old_root; old_root = root; root = t - f(t) / df(t); end Далее в командной строке введем ex1, и получим уточненные значения корней root1 = Inf root2 = -0.3750 root3 = 0.3528 root4 = 4.1153 Содержание отчета: 1. Титульный лист. 2. Цель лабораторной работы. 3. Исходные данные, указываемые в задании и необходимые для достижения поставленной цели. 4. Расчетная часть: описание выполнения задания в среде MatLab. 5. Выводы и анализ полученных результатов. Контрольные вопросы: Этапы графического метода отделения корней нелинейного уравнения. Этапы аналитического метода отделения корней нелинейного уравнения Суть метод простых итераций(последовательных приближений). Суть метода Ньютона, уточнения корней нелинейного уравнения. Суть метод бисекций(половинного деления) Как создать M-файл? Как привести операторы М-файла к выполнению? Что означает данная запись abs(old_root - root) > 2 * eps в M-файле ? |