This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:computational_mathematics:prac1 [2022/04/16 17:37] andrey.suchkov created |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Практическая работа №1: Решение нелинейных уравнений и систем ====== | ||
- | ===== Цель работы ===== | ||
- | Сформировать представление о методах решения нелинейных уравнений и систем нелинейных уравнений, выработать умение составлять и применять алгоритмы для решения уравнений и систем уравнений, привить навык использования программных средств для решения нелинейных уравнений и систем нелинейных уравнений. | ||
- | ===== Постановка задачи ===== | ||
- | Численно решить уравнение и систему уравнений методами Ньютона и простых итераций с заданной точностью $ \varepsilon $. Значение $ \varepsilon $ варьируется от 0.1 до 0.000001. | ||
- | |||
- | ===== Порядок выполнения работы ===== | ||
- | - При решении уравнения $ f(x) = 0 $: | ||
- | - Графически или аналитически отделить корни уравнения $ f(x) = 0 $, т.е. найти отрезки $ [a, b] $, на которых функция удовлетворяет условиям теоремы Больцано-Коши. | ||
- | - Составить подпрограмму вычисления функции $ f(x) $. | ||
- | - Для метода Ньютона: | ||
- | - Составить программу ''newton()'' для вычисления корня уравнения методом Ньютона с заданной точностью $ \varepsilon $. | ||
- | - Провести вычисления по программе для каждого корня. Заполнить табл. 1 при различных значениях $ \varepsilon $. Сделать выводы. | ||
- | - Для наименьшего корня (**для нечётных вариантов**) и для наибольшего корня (**для чётных вариантов**) заполнить табл. 2 при $ \varepsilon = 0.000001 $. Сделать выводы. | ||
- | - Теоретически и экспериментально исследовать скорость сходимости и обусловленность метода. Сделать выводы | ||
- | - Для метода простых итераций: | ||
- | - Привести уравнение $ f(x) = 0 $ к виду $ x = \varphi(x) $, где $ \varphi(x) = x + \lambda f(x) $, $ \lambda $ -- некоторая константа. Проверить функцию $ \varphi(x) $ на сходимость. Составить программу ''phi()'' для функции $ \varphi(x) $, удовлетворяющей сходимости. | ||
- | - Составить программу ''siter()'' для вычисления корня уравнения методом простых итераций с заданной точностью $ \varepsilon $. | ||
- | - Провести вычисления по программе для каждого корня. Заполнить табл. 1 при различных значениях $ \varepsilon $. Сделать выводы. | ||
- | - Для наименьшего корня (**для нечётных вариантов**) и для наибольшего корня (**для чётных вариантов**) заполнить табл. 3 при $ \varepsilon = 0.000001 $. Сделать выводы. | ||
- | - Теоретически и экспериментально исследовать скорость сходимости и обусловленность метода. Сделать выводы. | ||
- | - При решении системы уравнений $ F(X) = 0 $: | ||
- | - Графически отделить решения системы нелинейных уравнений $ F(X) = 0 $. | ||
- | - Составить подпрограммы для вычисления функций $ f_1(x, y) $ и $ f_2(x, y) $. Составить подпрограмму вычисления системы $ F(X) $. | ||
- | - Для метода Ньютона: | ||
- | - Составить программу ''newts()'' для вычисления решений системы уравнений методом Ньютона с заданной точностью $ \varepsilon $. | ||
- | - Провести вычисления по программе для каждого корня. Заполнить табл. 4 при указанных значениях $ \varepsilon $. Сделать выводы. | ||
- | - Для одного из корней заполнить табл. 5 при $ \varepsilon = 0.000001 $. Сделать выводы. | ||
- | - Для метода простых итераций: | ||
- | - Привести систему $ F(X) = 0 $ к виду $ X = \Phi(X) $, где $ \Phi(X) = X + \Lambda F(X) $, $ \Lambda $ -- некоторая мажорирующая матрица. Проверить матрицу $ \Phi(X) $ на сходимость. Составить программу ''Phi()'' для функции $ \Phi(X) $, удовлетворяющей сходимости. | ||
- | - Составить программу ''siters()'' для вычисления решения системы уравнений методом простых итераций с заданной точностью $ \varepsilon $. | ||
- | - Провести вычисления по программе для каждого корня. Заполнить табл. 4 при указанных значениях $ \varepsilon $. Сделать выводы. | ||
- | - Для одного из корней заполнить табл. 6 при $ \varepsilon = 0.000001 $. Сделать выводы. | ||
- | |||
- | ==== Таблицы ==== | ||
- | === Таблица 1 === | ||
- | ^ Значение $ \varepsilon $ ^ Значение $ x_1 $ ^ Значение $ x_2 $ ^ Число итераций $ k $ ^ | ||
- | | 0.1 | | | | | ||
- | | ... |||| | ||
- | |||
- | === Таблица 2 === | ||
- | ^ Значение $ k $ ^ Значение $ x^{(k)} $ ^ Значение $ f(x^{(k)}) $ ^ Значение $ f'(x^{(k)}) $ ^ Значение $ -f(x^{(k)})/f'(x^{(k)}) $ ^ | ||
- | | 0 | | | | | | ||
- | | ... ||||| | ||
- | |||
- | === Таблица 3 === | ||
- | ^ Значение $ k $ ^ Значение $ x^{(k)} $ ^ Значение $ \varphi(x^{(k)}) $ ^ | ||
- | | 0 | | | | ||
- | | ... ||| | ||
- | |||
- | === Таблица 4 === | ||
- | ^ Значение $ \varepsilon $ ^ Значение $ \vec r_1 = (x_1, y_1) $ ^ Значение $ \vec r_2 = (x_2, y_2) $ ^ Число итераций $ k $ ^ | ||
- | | 0.1 | | | | | ||
- | | ... |||| | ||
- | |||
- | === Таблица 5 === | ||
- | ^ Значение $ k $ ^ Значение $ \vec r^{(k)} $ ^ Значение $ f_1(\vec r^{(k)}) $ ^ Значение $ f_2(\vec r^{(k)}) $ ^ Значение $ -J^{-1}(\vec r^{(k)}) \cdot F(\vec r^{(k)}) $ ^ | ||
- | | 0 | | | | | | ||
- | | ... ||||| | ||
- | |||
- | === Таблица 6 === | ||
- | ^ Значение $ k $ ^ Значение $ \vec r^{(k)} $ ^ Значение $ \Phi(\vec r^{(k)}) $ ^ | ||
- | | 0 | | | | ||
- | | ... ||| | ||
- | |||
- | ===== Варианты заданий ===== | ||
- | <note important> | ||
- | Выполнение работ осуществляется по индивидуальным вариантам заданий (уравнений и систем уравнений). Номер варианта для каждого студента определяется преподавателем. | ||
- | </note> | ||
- | [[.task3:task3_vars]] | ||
- | |||
- | ===== Содержание отчёта ===== | ||
- | * Цель работы. | ||
- | * Краткое изложение основных теоретических понятий. | ||
- | * Постановка задачи с кратким описанием порядка выполнения работы. | ||
- | * Графическое или аналитическое решение уравнения. Обоснование выбора начального приближения. | ||
- | * Необходимые рисунки и таблицы с краткими выводами. | ||
- | * Теоретические скорости сходимости методов и их экспериментальное доказательство. Сравнение методов. | ||
- | * Общий вывод по проделанной работе. | ||
- | * Код программы. |