Вычислительная математика (86019)

Посмотреть архив целиком

Содержание


Введение

Тема 1. Решение задач вычислительными методами. Основные понятия

1.1 Погрешность

1.2 Корректность

1.3 Вычислительные методы

Тема 2. Решение нелинейных уравнений

2.1 Постановка задачи

2.2 Основные этапы отыскания решения

2.3 Метод деления отрезка пополам (метод дихотомии, метод бисекции)

2.4 Метод простых итераций

2.5 Метод Ньютона (метод касательных)

2.6 Метод секущих (метод хорд)

2.7 Метод ложного положения

Тема 3. Решение систем линейных алгебраических уравнений

3.1 Постановка задачи

3.2 Метод исключения Гаусса. Схема единственного деления

3.3 Метод исключения Гаусса с выбором главного элемента по столбцу

3.4 Вычисление определителя методом исключения Гаусса

3.5 Вычисление обратной матрицы методом исключения Гаусса

3.6 Метод простой итерации Якоби

3.7 Метод Зейделя

Тема 4. Приближение функций

4.1 Постановка задачи

4.2 Приближение функции многочленами Тейлора

4.3 Интерполяция функции многочленами Лагранжа

4.4 Аппроксимация функций. Метод наименьших квадратов

Тема 5. Численное интегрирование функций одной переменной

5.1 Постановка задачи численного интегрирования

5.2 Метод средних прямоугольников

5.3 Метод трапеций

5.4 Метод Симпсона (метод парабол)

5.5 Правило Рунге практической оценки погрешности

Тема 6. Численное решение дифференциальных уравнений

6.1 Постановка задачи Коши

6.2 Метод Эйлера

6.3 Модифицированные методы Эйлера

6.4 Метод Рунге – Кутты

Контрольные задания по курсу “Вычислительные методы”

Указания к выполнению лабораторных работ

Указания к выполнению курсовых работ

Краткие сведения о математиках

Список литературы



Введение


Исследование различных явлений или процессов математическими методами осуществляется с помощью математической модели. Математическая модель представляет собой формализованное описание на языке математики исследуемого объекта. Таким формализованным описанием может быть система линейных, нелинейных или дифференциальных уравнений, система неравенств, определенный интеграл, многочлен с неизвестными коэффициентами и т. д. Математическая модель должна охватывать важнейшие характеристики исследуемого объекта и отражать связи между ними.

После того, как математическая модель составлена, переходят к постановке вычислительной задачи. При этом устанавливают, какие характеристики математической модели являются исходными (входными) данными, какие – параметрами модели, а какие – выходными данными. Проводится анализ полученной задачи с точки зрения существования и единственности решения.

На следующем этапе выбирается метод решения задачи. Во многих конкретных случаях найти решение задачи в явном виде не представляется возможным, так как оно не выражается через элементарные функции. Такие задачи можно решить лишь приближенно. Под вычислительными (численными) методами подразумеваются приближенные процедуры, позволяющие получать решение в виде конкретных числовых значений. Вычислительные методы, как правило, реализуются на ЭВМ. Для решения одной и той же задачи могут быть использованы различные вычислительные методы, поэтому нужно уметь оценивать качество различных методов и эффективность их применения для данной задачи.

Затем для реализации выбранного вычислительного метода составляется алгоритм и программа для ЭВМ. Современному инженеру важно уметь преобразовать задачу к виду, удобному для реализации на ЭВМ и построить алгоритм решения такой задачи.

В настоящее время на рынке программного обеспечения широко представлены как пакеты, реализующие наиболее общие методы решения широкого круга задач (например, Maple, Mathcad, MatLAB), так и пакеты, реализующие методы решения специальных задач (например, задач газовой динамики).

Результаты расчета анализируются и интерпретируются. При необходимости корректируются параметры метода, а иногда математическая модель, и начинается новый цикл решения задачи.


Тема 1. Решение задач вычислительными методами.

Основные понятия


1.1 Погрешность


Существуют четыре источника погрешностей, возникающих в результате численного решения задачи.

1. Математическая модель. Погрешность математической модели связана с ее приближенным описанием реального объекта. Например, если при моделировании экономической системы не учитывать инфляции, а считать цены постоянными, трудно рассчитывать на достоверность результатов. Погрешность математической модели называется неустранимой. Будем в дальнейшем предполагать, что математическая модель фиксирована и ее погрешность учитывать не будем.

2. Исходные данные. Исходные данные, как правило, содержат погрешности, так как они либо неточно измерены, либо являются результатом решения некоторых вспомогательных задач. Например, масса снаряда, производительность оборудования, предполагаемая цена товара и др. Во многих физических и технических задачах погрешность измерений составляет 1 – 10%. Погрешность исходных данных так же, как и погрешность математической модели, считается неустранимой и в дальнейшем учитываться не будет.

3. Метод вычислений. Применяемые для решения задачи методы как правило являются приближенными. Например, заменяют интеграл суммой, функцию – многочленом, производную – разностью и т. д. Погрешность метода необходимо определять для конкретного метода. Обычно ее можно оценить и проконтролировать. Следует выбирать погрешность метода так, чтобы она была не более, чем на порядок меньше неустранимой погрешности. Большая погрешность снижает точность решения, а меньшая требует значительного увеличения объема вычислений.

4. Округление в вычислениях. Погрешность округления возникает из-за того, что вычисления производятся с конечным числом значащих цифр (для ЭВМ это 10 – 12 знаков). Округление производят по следующему правилу: если в старшем из отбрасываемых разрядов стоит цифра меньше пяти, то содержимое сохраняемых разрядов не изменяется; в противном случае в младший сохраняемый разряд добавляется единица с тем же знаком, что и у самого числа. При решении больших задач производятся миллиарды вычислений, но так как погрешности имеют разные знаки, то они частично взаимокомпенсируются.

Различают абсолютную и относительную погрешности. Пусть а – точное, вообще говоря неизвестное числовое значение некоторой величины, а а* - известное приближенное значение этой величины, тогда величину


(а*) = | а – а*|


называют абсолютной погрешностью числа а*, а величину


(а*) =


его относительной погрешностью.

При сложении и вычитании складываются абсолютные погрешности, а при делении и умножении – относительные погрешности.


1.2 Корректность


Определим вначале понятие устойчивости решения.

Решение задачи y* называется устойчивым по исходным данным x*, если оно зависит от исходных данных непрерывным образом. Это означает, что малому изменению исходных данных соответствует малое изменение решения. Строго говоря, для любого  > 0 существует  = () > 0 такое, что всякому исходному данному x*, удовлетворяющему условию |x - x*| < , соответствует приближенное решение y*, для которого |y – y*| < .

Говорят, что задача поставлена корректно, если выполнены следующие три условия:

1. Решение существует при любых допустимых исходных данных.

2. Это решение единственно.

3. Это решение устойчиво по отношению к малым изменениям исходных данных.

Если хотя бы одно из этих условий не выполнено, задача называется некорректной.


Пример 1.1.

Покажем, что задача вычисления определенного интеграла I = корректна. Пусть f*(x) – приближенно заданная функция и I* = . Очевидно, приближенное решение I* существует и единственно. Определим абсолютную погрешность f* с помощью равенства (f*) = |f(x) – f*(x)|. Так как


(I) = |I – I*| = ||  (b – a)(f*),


то для любого  > 0 неравенство (I) <  будет выполнено, если будет выполнено условие (f*) < , где  =  /(b – a).

Таким образом, решение I* устойчиво. Все три условия корректности задачи выполнены.


Пример 1.2.

Покажем, что задача вычисления производной u(x) = f '(x) приближенно заданной функции некорректна.

Пусть f*(x) – приближенно заданная на отрезке [a, b] непрерывно дифференцируемая функция и u*(x) = (f*(x))'. Определим абсолютные погрешности следующим образом: (f*) = |f(x) – f*(x)|, (u*) = |u(x) – u*(x)|.

Возьмем, например, f*(x) = f(x) +  sin(x/2), где 0 <  < 1. Тогда, u*(x) = u(x) + -1cos(x/2), (u*) = -1, т. е. погрешность задания функции равна , а погрешность производной равна -1. Таким образом, сколь угодно малой погрешности задания функции f может отвечать сколь угодно большая погрешность производной f '.


1.3 Вычислительные методы


Под вычислительными методами будем понимать методы, которые используются в вычислительной математике для преобразования задач к виду, удобному для реализации на ЭВМ. Подробнее с различными классами вычислительных методов можно познакомиться, например, в [1]. Мы же рассмотрим два класса методов, используемых в нашем курсе.

1. Прямые методы. Метод решения задачи называется прямым, если он позволяет получить решение после выполнения конечного числа элементарных операций. Наименование элементарной операции здесь условно. Это может быть, например, вычисление интеграла, решение системы уравнений, вычисление значений функции и т. д. Важно то, что ее сложность существенно меньше, чем сложность основной задачи. Иногда прямые методы называют точными, имея в виду, что при отсутствии ошибок в исходных данных и при выполнении элементарных операций результат будет точным. Однако, при реализации метода на ЭВМ неизбежны ошибки округления и, как следствие, наличие вычислительной погрешности.

2. Итерационные методы. Суть итерационных методов состоит в построении последовательных приближений к решению задачи. Вначале выбирают одно или несколько начальных приближений, а затем последовательно, используя найденные ранее приближения и однотипную процедуру расчета, строят новые приближения. В результате такого итерационного процесса можно теоретически построить бесконечную последовательность приближений к решению. Если эта последовательность сходится (что бывает не всегда), то говорят, что итерационный метод сходится. Отдельный шаг итерационного процесса называется итерацией.

Практически вычисления не могут продолжаться бесконечно долго. Поэтому необходимо выбрать критерий окончания итерационного процесса. Критерий окончания связан с требуемой точностью вычислений, а именно: вычисления заканчиваются, когда погрешность приближения не превышает заданной величины.

Оценки погрешности приближения, полученные до вычислений, называют априорными оценками (от лат. a'priori – "до опыта"), а соответствующие оценки, полученные в ходе вычислений называют апостериорными оценками (от лат. a'posteriori – "после опыта").

Важной характеристикой итерационных методов является скорость сходимости метода. Говорят, что метод имеет p-ый порядок сходимости если


|xn+1 - x*| = C|xn - x*|p,


где xn и xn+1 – последовательные приближения, полученные в ходе итерационного процесса вычислений, x* – точное решение, C – константа, не зависящая от n. Говорят, что метод сходится со скоростью геометрической прогрессии со знаменателем q < 1, если для всех n справедлива оценка:

|xn - x*|  Cqn.


Итерационный процесс называется одношаговым, если для вычисления очередного приближения xn+1 используется только одно предыдущее приближение xn и k –шаговым, если для вычисления xn+1 используются k предыдущих приближений xn-k+1, xn-k+2, …, xn.


Тема 2. Решение нелинейных уравнений


2.1 Постановка задачи


Пусть дана некоторая функция f(x) и требуется найти все или некоторые значения x, для которых


f(x) = 0. (2.1)


Значение x*, при котором f(x*) = 0, называется корнем (или решением) уравнения (2.1).

Относительно функции f(x) часто предполагается, что f(x) дважды непрерывно дифференцируема в окрестности корня.

Корень x* уравнения (2.1) называется простым, если первая производная функции f(x) в точке x* не равна нулю, т. е. f '(x*) 0. Если же f '(x*) = 0, то корень x* называется кратным корнем.

Геометрически корень уравнения (2.1) есть точка пересечения графика функции y = f(x) с осью абсцисс. На рис. 2.1 изображен график функции y = f(x), имеющей четыре корня: два простых (xи x) и два кратных (xи x).




Рис. 2.1.


Большинство методов решения уравнения (2.1) ориентировано на отыскание простых корней уравнения (2.1).


2.2 Основные этапы отыскания решения


В процессе приближенного отыскания корней уравнения (2.1) обычно выделяют два этапа: локализация (или отделение) корня и уточнение корня.

Локализация корня заключается в определении отрезка [a, b], содержащего один и только один корень. Не существует универсального алгоритма локализации корня. В некоторых случаях отрезок локализации может быть найден из физических соображений. Иногда удобно бывает локализовать корень с помощью построения графика или таблицы значений функции y = f(x). На наличие корня на отрезке [a, b] указывает различие знаков функции на концах отрезка. Основанием для этого служит следующая теорема математического анализа.

Теорема 2.1. Если функция f непрерывна на отрезке [a, b] и принимает на его концах значения разных знаков, так, что f(a)f(b) < 0, то отрезок [a, b] содержит по крайней мере один корень уравнения f(x) = 0.

Однако, корень четной кратности таким образом локализовать нельзя, так как в окрестности такого корня функция f(x) имеет постоянный знак.

На этапе уточнения корня вычисляют приближенное значение корня с заданной точностью  > 0. Приближенное значение корня уточняют с помощью различных итерационных методов. Суть этих методов состоит в последовательном вычислении значений x0, x1, …, xn, …, которые являются приближениями к корню x*.


2.3 Метод деления отрезка пополам (метод дихотомии, метод бисекции)


Метод деления отрезка пополам является самым простым и надежным способом решения нелинейного уравнения.

Пусть из предварительного анализа известно, что корень уравнения (2.1) находится на отрезке [a0, b0], т. е. x*[a0, b0], так, что f(x*) = 0.

Пусть функция f(x) непрерывна на отрезке [a0, b0] и принимает на концах отрезка значения разных знаков, т.е.


f(a0)f(b0) < 0. (2.2)


Разделим отрезок [a0, b0] пополам. Получим точку x0 = . Вычислим значение функции в этой точке: f(x0). Если f(x0) = 0, то x0 – искомый корень, и задача решена. Если f(x0)0, то f(x0) – число определенного знака: f(x0) > 0, либо f(x0) < 0. Тогда либо на концах отрезка [a0, x0], либо на концах отрезка [x0, b0] значения функции f(x) имеют разные знаки. Обозначим такой отрезок [a1, b1]. Очевидно, что x*[a1, b1], и длина отрезка [a1, b1] в два раза меньше, чем длина отрезка [a0, b0]. Поступим аналогично с отрезком [a1, b1]. В результате получим либо корень x*, либо новый отрезок [a2, b2], и т.д. (рис. 2.2).




Рис. 2.2


Середина n-го отрезка xn = . Очевидно, что длина отрезка [an, bn] будет равна , а т. к. x*[an, bn], то


| xnx*|   . (2.3)


Погрешность метода. Оценка (2.3) характеризует погрешность метода деления отрезка пополам и указывает на скорость сходимости: метод сходится со скоростью геометрической прогрессии, знаменатель которой q = 1/2. Заметим, что оценка (2.3) является априорной.

Критерий окончания. Из соотношения (2.3) следует, что при заданной точности приближения  вычисления заканчиваются, когда будет выполнено неравенство bnan < 2 или неравенство n > log2((b0a0)/) – 1. Таким образом, количество итераций можно определить заранее. За приближенное значение корня берется величина xn.


Пример 2.1.

Найдем приближенно x = с точностью = 0.01. Эта задача эквивалентна решению уравнения x5 – 2 = 0, или нахождению нуля функции f(x) = x5 – 2. В качестве начального отрезка [a0, b0] возьмем отрезок [1, 2]. На концах этого отрезка функция принимает значения с разными знаками: f(1) < 0, f(2) > 0.






Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.