Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Chislennye_metody_otchyot.docx
Скачиваний:
4
Добавлен:
06.05.2019
Размер:
1.88 Mб
Скачать

Решение нелинейных уравнений Руководство пользователя для решения нелинейных уравнений

  1. Перейти на вкладку «Решение нелинейных уравнений»

  1. Ввести уравнение в соответствующее поле.

  1. Ввести максимальное значение осей Х и Y, в пределах которых будет изображаться функция.

  1. Ввести значения шага и точности в полях «Шаг» и «Е» соответственно.

  1. В выпадающем списке «Выберите метод» выбрать метод решения.

  1. Нажать кнопку «Решить».

  1. Процесс решения отображается внизу формы.

Программа также предусматривает сохранение исходных данных в файл (кнопка «Сохранить») и загрузку данных из файла (меню «Файл» - «Загрузить файл»).

Метод Ньютона Теоретические основы

Чтобы численно решить уравнение   методом простой итерации, его необходимо привести к следующей форме:  , где   — сжимающее отображение.

Для наилучшей сходимости метода в точке очередного приближения   должно выполняться условие  . Решение данного уравнения ищут в виде  , тогда:

В предположении, что точка приближения «достаточно близка» к корню  , и что заданная функция непрерывна  , окончательная формула для   такова:

С учётом этого функция   определяется выражением:

Эта функция в окрестности корня осуществляет сжимающее отображение[1], и алгоритм нахождения численного решения уравнения   сводится к итерационной процедуре вычисления:

Начало

g = delegate(double x) { return f(x) - target; };

double oldX, newX = guess, errorEstimate = double.MaxValue;

Конец

iterationsUsed = 0;

iterationsUsed < maxIterations && errorEstimate > this.eps;

oldX = newX;

double gx = g(oldX);

double gprimex = Common.fPrime(f, oldX);

double absgprimex = Math.Abs(gprimex);

iterationsUsed ++;

absgprimex > 1.0 || Math.Abs(gx) < double.MaxValue * absgprimex

newX = oldX - gx / gprimex;

errorEstimate = Math.Abs(newX - oldX);

newX = oldX;

errorEstimate = double.MaxValue;

this.x = newX;

Блок-схема метода

Результаты решения

1

Ответ: x=-0,567143290415281

2

Ответ: x=-0,824132312295601

3

Ответ: x=-2,53208888673475

4

Ответ: x=-1,1745594103255

5

Ответ: x=1,11415714087123

6

Ответ: x=-1,83462794436057

7

Ответ: x=-0,696440599943217

8

Ответ: x=0,696440599645375

9

Ответ: x=1,83462794470086

10

Ответ: x=-0,682327803703245

Метод хорд Теоретические основы

Пусть x1,x2 − абсциссы концов хорды, y = kx + b − уравнение прямой, содержащей хорду. Найдем коэффициенты k и b из системы уравнений:

.

Вычтем из первого уравнения второе:

f(x1) − f(x2) = k(x1 − x2), затем найдем коэффициенты k и b:

, тогда

.

Уравнение принимает вид:

Таким образом, теперь можем найти первое приближение к корню, полученное методом хорд:

Теперь возьмем координаты x2 и x3 и повторим все проделанные операции, найдя новое приближение к корню. Повторять операцию следует до тех пор, пока | xn − xn − 1 | не станет меньше или равно заданному значению погрешности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]