Численные методы Лабораторная 1. ЧМ1. Методы решения нелинейных уравнений
Скачать 121.67 Kb.
|
Федеральное агентство связи Ордена Трудового Красного Знамени федеральное бюджетное образовательное учреждение высшего образования «Московский Технический Университет Связи и Информатики» (МТУСИ) Кафедра Информатики Предмет: Численные методы Лабораторная работа № 1 Тема: «Методы решения нелинейных уравнений»Вариант 22 Выполнил: Иван Иванов Общее задание Выбрать индивидуальное задание из табл. 1-1: нелинейное уравнение; методы решения нелинейного уравнения для выполнения 3-х итераций; Отделить корни заданного уравнения графическим и аналитическим методом с использованием средств пакета Mathcad. Для каждого из заданных методов провести исследование функции нелинейного уравнения: проверить выполнение условий сходимости вычислительного процесса, в случае расходящегося процесса – сделать необходимые преобразования для обеспечения сходимости; выбрать начальное приближение к корню; сформулировать условие окончания этапа уточнения корня. С использованием итерационной формуле 1-го заданного методу провести расчет трех итераций с использованием средств мат. пакета. Результаты расчета свести в табл. 1-2. Оценить погрешность результата после 3-х итераций. Для 2-го заданного метода выполнить решение уравнения с точностью 10-4, создав программу, реализующую заданный метод. Произвести расчет, а результаты решений свести в табл. 1-2. Индивидуальное задание первый заданный метод — метод Ньютона второй заданный метод – метод итерации Первый этап - отделение корней Из построенного графика функции видно, что на отрезке (0;0.625) есть один корень. Второй этап – ручной расчет Воспользуемся методом Ньютона.
Третий этап – расчет с использованием программы Воспользуемся методом простых итераций Код программы: import math x = float(input('Введите начальное приближение: ')) eps = float(input('Введите необходимое значение точности: ')) def f(x): #заданная функция return 4*(x*x+1)*math.log(x, math.e)-1 def f1(x): #функция первой производной return 8*x*math.log(x, math.e)+4*x+4/x i = x t = 0 n = 0 xn = x xn1 = 0 while abs(xn1-xn) > eps: n += 1 xn = i t = f(xn)/f1(xn) xn1 = xn - t i = xn1 print("│ кол-воитераций: " + str(n) + " │ значениекорня: " + str(xn1)) break Результат работы программы: Введите начальное приближение: 1 Введите необходимое значение точности: 0.0001 │ кол-во итераций: 1 │ значение корня: 1.125 │ кол-во итераций: 2 │ значение корня: 1.1176051231553725 │ кол-во итераций: 3 │ значение корня: 1.1175756445147635 Вычисленное значение корня на калькуляторе: x = 1.11757564404935 Вычисленное значение корня с помощью программы: X = 1.1175756445147635 Всего за три итерации мы достигли точности аж до 9 знака после запятой. |