Автор работы: Пользователь скрыл имя, 15 Июля 2013 в 22:57, контрольная работа
Определить корни уравнения F(x) = 0 графически и уточнить один из них:
• методом половинного деления,
• методом хорд,
• методом касательных,
• методом секущих,
• методом простой итерации
с точностью ε = 0.001.
Создать функции, реализующие указанные методы, построить графическую иллюстрацию методов, результаты проверить с помощью встроенных функций.
Задание № 1 4
Теоретические сведения 4
Метод бисекции (деления отрезка пополам) 4
Метод хорд (метод линейной интерполяции) 6
Метод касательных (метод Ньютона) 9
Метод секущих 11
Метод простых итераций 13
Задача 1.1 15
Задача 1.2 18
Задание № 2 20
Теоретические сведения 20
Метод Гаусса (метод последовательного исключения неизвестных) 20
Задача 2.1 24
Задача 2.2 26
Задание № 3 28
Теоретические сведения 28
Метод Эйлера 28
Методы типа Рунге-Кутта 30
Задача 3.1 31
Литература 34
Схема выбора варианта. 35
Чтобы решить данное уравнение методом простых итераций требуется привести его к виду
Поделим последнее уравнение на (поскольку выражение не может равняться нулю), получим
После преобразований получаем выражение для метода простых итераций:
На рисунках 1.6-1.7 приведены графические решения для данной задачи
Рис. 1.6 График функции
Рис. 1.7. График функции
Сравним результаты, полученные путем решения собственными средствами пакета MathCAD для данной задачи, с решениями, полученными разными методами решения:
Пусть радиус равен единице. |
|
|
Функция, корни которой необходимо найти. |
|
Функция для решения задачи методом простых итераций. |
Получим решение стандартными средствами MathCAD: | |
|
. |
Вызываем функцию для решения уравнений методом деления отрезка пополам: | |
|
. |
А теперь для решения уравнений методом деления хорд: | |
|
. |
Используем метод Ньютона (метод касательных): | |
|
. |
Вызываем функцию для решения уравнений методом секущих: | |
|
. |
Используем метод простых итераций (используем подготовленную ранее функцию F1) | |
|
. |
Итак, решение найдено: угловая мера дуги сегмента, для которого площадь составляет пятую часть площади круга, равна 1.3816 радиан или 79.199º.
Задача 1.2
Решить уравнение .
Методы решения нелинейных уравнений написаны таким образом, что одним из параметров процедуры является функция F(x). Таким образом, мы можем передавать в процедуру метода расчета произвольную функцию. В нашем случае это функция:
После некоторых преобразований получаем функцию для решения методом простых итераций:
Графики этих функций приведены на рисунках 1.8 и 1.9:
Рис. 1.8. График функции
Рис. 1.9. График функции
Приведем сравнение для решения данного уравнения разными методами и внутренними средствами пакета MathCAD:
|
Функция, корни которой необходимо найти. |
|
Функция для решения задачи методом простых итераций. |
Получим решение стандартными средствами MathCAD: | |
|
. |
Вызываем функцию для решения уравнений методом деления отрезка пополам: | |
|
. |
А теперь для решения уравнений методом хорд: | |
|
. |
Используем метод Ньютона (метод касательных): | |
|
. |
Используем метод секущих: | |
|
. |
Используем метод простых итераций (используем подготовленную ранее функцию F1) | |
|
. |
Итак, решение уравнения найдено:
x=0.7080.
Решить систему уравнений с тремя неизвестными методом Гаусса-Жордана
Составить функции, реализующие метод, проверить решение с помощью встроенных функций MathCAD.
Пусть дана система m линейных уравнений с n неизвестными . Требуется найти ее общее решение, если она совместна, или установить ее несовместность. Выпишем расширенную матрицу системы
Назовем элементарными операциями следующие действия с матрицами:
Отметим, что при решении системы уравнений, в отличие от вычисления определителя и нахождения ранга, нельзя оперировать со столбцами.
Легко проверить, что если по матрице, полученной из A* выполнением элементарной операции, восстановить систему уравнений, то новая система будет равносильна исходной.
Цель алгоритма – с помощью применения последовательности элементарных операций к матрице A* добиться, чтобы каждая строка, кроме, быть может, первой, начиналась с нулей, и число нулей до первого ненулевого элемента в каждой следующей строке было больше, чем в предыдущей.
Шаг алгоритма заключается в следующем. Находим первый ненулевой столбец в матрице A*. Пусть это будет столбец с номером i. Находим в нем ненулевой элемент и строку с этим элементом меняем местами с первой строкой. Чтобы не нагромождать дополнительных обозначений, будем считать, что такая смена строк в матрице A* уже произведена, то есть . Тогда ко второй строке прибавим первую, умноженную на число , к третьей строке прибавим первую, умноженную на число , и т.д. В результате получим матрицу
(Первые нулевые столбцы, как правило, отсутствуют.)
Если в матрице встретилась строка с номером k, в которой все элементы равны нулю, а , то выполнение алгоритма останавливаем и делаем вывод, что система несовместна. Действительно, восстанавливая систему уравнений по расширенной матрице, получим, что k-е уравнение будет иметь вид
Этому уравнению не удовлетворяет ни один набор чисел
Матрицу можно записать в виде:
где
По отношению к матрице выполняем описанный шаг алгоритма. Получаем матрицу
где ,. Эту матрицу снова можно записать в виде
и к матрице C* снова применим описанный выше шаг алгоритма.
Процесс останавливается, если после выполнения очередного шага новая уменьшенная матрица состоит из одних нулей или если исчерпаны все строки. Заметим, что заключение о несовместности системы могло остановить процесс и ранее.
Если бы мы не уменьшали матрицу, то в итоге пришли бы к матрице вида
.
Далее выполняется так называемый обратный ход метода Гаусса. По матрице составляем систему уравнений. В левой части оставляем неизвестные с номерами, соответствующими первым ненулевым элементам в каждой строке, то есть . Заметим, что ранг равен рангу . Остальные неизвестные переносим в правую часть. Считая неизвестные в правой части некоторыми фиксированными величинами, несложно выразить через них неизвестные левой части.
Теперь, придавая неизвестным в правой части произвольные значения и вычисляя значения переменных левой части, мы будем находить различные решения исходной системы . Чтобы записать общее решение, нужно неизвестные в правой части обозначить в каком-либо порядке буквами , включая и те неизвестные, которые явно не выписаны в правой части из-за нулевых коэффициентов, и тогда столбец неизвестных можно записать в виде столбца, где каждый элемент будет линейной комбинацией произвольных величин (в частности, просто произвольной величиной Ck). Эта запись и будет общим решением системы. Здесь .
Если система была однородной, то получим общее решение однородной системы. Коэффициенты при C1, взятые в каждом элементе столбца общего решения, составят первое решение из фундаментальной системы решений, коэффициенты при C2 – второе решение и т.д.
Фундаментальную систему решений однородной системы можно получить и другим способом. Для этого одной переменной, перенесенной в правую часть, нужно присвоить значение 1, а остальным – нули. Вычислив значения переменных в левой части, получим одно решение из фундаментальной системы. Присвоив другой переменной в правой части значение 1, а остальным – нули, получим второе решение из фундаментальной системы и так далее.
Задача 2.1
Решим данную систему уравнений средствами MathCAD:
|
Записываем матрицу левой части и вектор правой части системы уравнений. |
|
Получаем решение системы линейных уравнений, используя встроенную функцию MathCAD. |
|
Просматриваем результаты решения системы уравнений. |
А теперь напишем функции реализующие решение системы уравнений методом Гаусса-Жордана:
|
Функция перестановки i- й и i +1-й строк матрицы:
С – входная матрица,
i – номер строки для перестановки. |
Следующая функция формирует расширенную матрицу системы С, которая является результатом склеивания матриц A и B, и приводит матрицу С к ступенчатой форме.
Следующая функция осуществляет обратный ход метода Гаусса после приведения матрицы С к ступенчатой форме.
|
Теперь вызываем нашу реализацию метода Гаусса. |
|
Просматриваем результаты решения системы уравнений. |
Как видим результаты вычислений встроенными средствами MathCAD и результаты, полученные на основе представленной реализации метода Гаусса-Жордана, совпали.
Задача 2.2
Приведем решение тестового примера для системы линейных алгебраических уравнений с четырьмя неизвестными, представленного в [1].
Решение совпало с приведенным в [1].
Решить задачу Коши для дифференциального уравнения
на отрезке при заданном начальном условии
и шаге интегрирования h:
Метод Эйлера занимает в теории численных методов решения ОДУ ключевую позицию. При этом будем считать, что вычисления проводятся с расчетным шагом
расчетными точками (узлами) служат точки промежутка и целью является нахождение функции в виде таблицы приближенных значений yi решения у=у(х) задачи в расчетных точках хi
X |
Y |
|
|
… |
… |
Информация о работе Контрольная работа по "Вычислительная математика"