Все задачи должны быть решены с использованием математического пакета Mathcad. Оформляется в Word на основе работающих файлов пакета Mathcad, и должна содержать: 1)оглавление; 2) для каждой из конкретных задач: 2.1)подробные формулировки в текстовом и математическом виде; 2.2) алгоритм обработки данных и исходный текст программы, записанные средствами Mathcad; 2.3) прокомментированные числовые и графические результаты решения задач; 3) список литературы; 4) приложенные файлы Mathcad в электронном виде. МЕТОДЫ РЕШЕНИЯ АЛГЕБРАИЧЕСКИХ И ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ. 1. Задание. С помощью методов бисекций, простых итераций и Ньютона решить уравнение f(x) = 0. 3. Порядок выполнения работы 3.1. Порядок выполнения лабораторной работы с помощью метода бисекций. 1. Графически или аналитически отделить корень уравнения f(x) = 0 (т.е. найти отрезок [a,b], на котором функция f(x) удовлетворяет условиям теоремы Больцано-Коши). 2. Написать функцию вычисления корня уравнения f(x) = 0, найти корень уравнения. 3.2. Порядок выполнения лабораторной работы с помощью метода простых итераций. 1. Графически или аналитически отделить корень уравнения f(x) = 0. 2. Преобразовать уравнение f(x) = 0 к виду x = (x) так, чтобы в некоторой окрестности [a,b] корня производная (x) удовлетворяла условию |(x)|q1. При этом следует помнить, что чем меньше q, тем быстрее последовательные приближения сходятся к корню. 3. Выбрать начальное приближение, лежащее на отрезке [a,b]. 4. Используя пакет MathCAD, написать функцию для нахождения корня уравнения. 5. Провести вычисления для заданной функции. 3.3. Порядок выполнения лабораторной работы с помощью метода Ньютона 1. Графически или аналитически отделить корень уравнения f(x) = 0. Убедиться, что на найденном отрезке [a,b] функция f(x) удовлетворяет условиям сходимости метода Ньютона. 2. Выбрать начальное приближение корня x0[a,b] так, чтобы f(x0)f(x0)>0. 3. Оценить снизу величину m min f ( x) , 1 [a,b] оценить сверху величину M max f ( x) . 2 [a,b] 4. По заданному 0 выбрать значение для условия окончания итерационного процесса 2m1 0 / M 2 . 5. Составить программу вычисления корня уравнения по методу Ньютона, используя пакет MathCAD. 6. Произвести вычисления по программе. Варианты заданий к лабораторной работе. 1 x ex 1 x 1 29 4. Приложение. Найти корень уравнения x e 0.1x 0 с точностью = 0.0001. Отделяем корень графически. 5 5 4 3 2 1 x 0.1x e 5 4 3 2 1 0 1 2 3 4 5 1 2 3 4 5 5 5 x Рис. 3.2. 5 Легко видеть, что > 0. Преобразуем уравнение к виду x e 0.1x . Здесь ( x) e 0.1x , ( x) 0.1e 0.1x , (x) < 0 для всех x 0 и |(x)| = | 0.1e 0.1x | 0.1 1. Значит, q = 0.1. В качестве нулевого приближения выберем x0 = 0. Interp ( f x0 eps ) Используя x x0 while k 0 2000, нашли корень уравнения: y k f ( x) break if y k x eps x yk где f – исходная функция, kk 1 x0 – начальное приближение, y 1 0.90484 0.91349 0.9127 0.91277 Interp(f,x0,eps), написанную с использованием пакета MathCAD k0 Interp ( s 0 0.0001) программу eps – погрешность. Результат – вектор, по которому можно определить количество итераций, необходимых для определения приближённого значения с заданной точностью. УСКОРЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ. 1. Задание. Решить уравнение ускоренными методами Эйткена, Вегстейна, методами Чебышева и Данко. 3. Порядок выполнения работы. 1. Отделить графически корень уравнения. 2. Задать начальное приближение. 3. Составить программу вычисления корня уравнения. 4. Найти корень уравнения. 5. Сравнить результаты, полученные различными методами. 27 4. Приложение. arcsin 2 2x e x 2 1 x Метод Данко. 2 f ( x) x 3 n 4 x 1.7 bf ( a b ) 0 ddt ( n ) error( "N is so very big" ) if n 5 mtrx( n ) M matrix( n n bf ) M matrix( n n bf ) for i 0 1 n 1 for i 0 1 n 1 for j 0 1 min ( i 1 n 1) for j 0 1 min ( i 1 n 1) ki j 1 ki j 1 d i j k k k k M d f ( x) M dx k i j f ( x) dx k M M Danko ( x n ) x f ( x) ddt ( n 1) ddt ( n ) MATRIX mtrx( n ) D Danko ( x n ) MATRIX D f ( x) 2 x 3 3 РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ. 1. Задание. Найти решение системы f x 0 методами простых итераций, Ньютона, наискорейшего спуска. 3. Порядок выполнения работы. 1. Найти нулевое приближение решения. 2. Составить программы решения системы уравнений различными методами. 3. Провести вычисления. 29 tg xy 0,3 x 2 , 0,5 x 2 2 y 2 1 4. Приложение. 2 F1( x y ) tan ( x y 0.1) x 2 2 F2( x y ) 0.5 x 2y 1 tan( x y 0.1) x2 2 2 0.5 x 2y 1 F( x y ) f1( x) atanx2 0.1 x 2 f2( x) 0.5 0.25x 0.8 f1( x) 0.6 f2( x) 0.2 0.4 0 0.2 0.4 0.6 0.8 x Рис. 3.3. Отделяем корни приближённо. 0.8 0.11 0.6 0.7 x y Ìåòîä Íüþòîíà. Метод итераций Задаём ориентировочное число итераций и начально приближение (x0,y0) i 0 30 x2 x 0 0 y2 y 0 0 Выражаем (x,y) через L(x,y), получаем итерационную формулу. tan ( x y 0.1) 2 L( x y ) 1 0.5x 2 x2i 1 L x2 y2 i i y2i 1 Число итераций: sol if F x2 y2 1 e 1 0 i i i N2 ifsoli 0 1 0 1 i N2 12 Результаты: x2 N2 y2 N2 0.796559 0.584275 F x2 N2 y2 N2 5.012806 10 6 6 7.479415 10 МЕТОДЫ АППРОКСИМАЦИИ И ИНТЕРПОЛЯЦИИ ФУНКЦИЙ. Задание. 1. Провести интерполяцию заданной функции f(x) кубическими сплайнами и с использованием тригонометрического многочлена. 3. Порядок выполнения лабораторной работы. 3.1. Сплайн интерполяция. Вычислить значения заданной функции f(x) в узлах интерполяции xi = a + h(i – 1), i = 1, 2, …, N, на отрезке [a,b]. По вычисленной таблице построить интерполяционный кубический сплайн S(x), вычислить его значения в промежуточных точках xj = a + h/2 + h(i – 1). Сравнить вычисленные значения с точными значениями функции в точках xj. Построить график f(x) и S(x). Для этого: 1. Вычислить xi, f(xi) на заданном промежутке. 2. С помощью программы Spline вычислить сплайн-коэффициенты. 3. При помощи функции Function вычислить значения кубического сплайна в узлах интерполяции. 4. Построить графики f(x) и S(x) (по значениям сплайна). 5. Сравнить результаты. Таблица 1. Варианты заданий. 29 20 [-2, 2] e x cos x e x cos x 3.2. Тригонометрическая интерполяция. Построить интерполяционный тригонометрический многочлен, аппроксимирующий функцию f(x), заданную таблицей значений в точках xi 2 (i 1) 2N 1 (i=1, 2, ..., 2N+1). С помощью полученного полинома вычислить значение функции и в точках xi 1 / 2 xi 2N 1 (i=1, 2, ..., 2N+1) (это уже предусмотрено в функции). Для этого: 1. Задать массив значений функции f(x) в соответствии с вариантом. 2. Провести вычисления. 3. Построить график аппроксимированной функции. Таблица 2. 2N+1=21 1.10; 1.32; 1.40; 1.43; 1.45; 1.46; 1.44; 1.42; 1.37; 1.25; 0.76; -0.8; 1.22; -1.33; -1.36; -1.37; -1.35; -1.29; -1.1; -0.1 29 4. Приложение. Моделирование сплайн-интерполяции. Для исследования сплайн-интерполяции составим программу, вычисляющую сплайн-коэффициенты по граничному условию А. Функция Spline реализует алгоритм вычисления сплайн-коэффициентов с учётом граничного условия А. Результатом вычисления является матрица размерностью n*4 в строках которой записаны коэффициенты a, b, c, d для каждой из n сплайн функции. Входные параметры - векторы x, y - исходные опорные точки. Функция Function(x) вычисляет для заданного x значения сплайна. Function ( S X x) for j 0 rows ( S) 1 return S j 0 x X j S j 1 x X j S j 2 x X j S j 3 if x X j x X j 1 3 0 2 Spline( x y ) Пример. n rows ( x) 1 for j 0 n 1 Вычислить значения заданной функции h j xj 1 xj ej f(x) = sin(x) в 20 узлах интерполяции на отрезке y j 1 y j hj Построить [0,2]. for j 1 n 1 v j 3 e j e j 1 кубический сплайн и вычислить его значения. v0 0 Построить графики и сравнить результаты. for j 1 n 2 M j j 2 h j 1 h j M j 1 j h j 1 f ( x) sin( x) j 0 20 Xj M j 1 j h j M0 0 1 M n 1 n 1 2 h n 1 h n 2 M n 2 n 1 h n 2 Function S X X j 0 0 0.31296 0.31296 for j 0 n 2 0.59448 0.59448 b j 1 b j 0.81627 0.81627 3 hj 0.95606 0.95606 0.99978 0.99978 0.94307 0.94307 0.7916 0.7916 dj yj a n 1 y j 1 y j hj hj 3 b j 1 2 b j b n 1 3 h n 1 d n 1 y n 1 c n 1 Yj f Xj f X j b lsolve( M v ) cj j S Spline( X Y) M0 1 0 aj интерполяционный y n y n 1 hj 0.5606 0.5606 0.27328 0.27328 -0.04149 -0.04149 -0.3521 -0.3521 2 h n 1 b n 1 -0.62733 -0.62733 3 -0.83954 -0.83954 for j 0 n 1 -0.9674 -0.9674 Rj0 aj -0.99806 -0.99806 Rj1 bj Rj2 cj Rj3 dj R как видим, значения функции и сплайна одинаковы, значит сплайн-аппроксимация дает очень хорошие результаты.