
- •1. Задание на проектирование
- •2. Анализ, формальная постановка и описание метода решения
- •2.1 Нелинейные и трансцендентные уравнения
- •2.2 Локализация корней
- •2.3 Уточнение корней
- •2.4 Методы уточнения корней
- •2.4.1 Метод половинного деления (бисекции, дихотомии)
- •2.4.2 Метод хорд
- •2.4.3 Метод Ньютона (метод касательных)
- •2.4.3.1 Сходимость метода Ньютона
- •2.4.3.2 Выбор начального приближения в методе Ньютона
- •2.4.4 Модифицированный метод Ньютона
- •2.4.5 Метод секущих
- •2.4.6 Метод простых итераций
- •3. Разработка алгоритма решения задачи
- •4. Реализация разработанного алгоритма
- •5. Тестирование разработанной программы
- •5.1 Ручной расчёт тестового примера
- •5.2 Решение тестовой задачи в MatLab
2.4.6 Метод простых итераций
Теперь
рассмотрим более общий итерационный
метод уточнения корней. Представим
исходное уравнение
в виде
.
(2.21)
О
том как преобразовать исходное уравнение
к виду (2.21) буден рассказано ниже. Пусть
нам известно начальное приближение к
корню
(
).
Подставив его в правую часть уравнения
(2.21) получим новое приближение
,
затем аналогичным образом получим
и так далее.
,
.
(2.22)
Оказывается,
что при определенных свойствах функции
последовательность
,
определяемая по формуле (2.22), сходится
к корню уравнения
.
Необходимо установить при каких условиях
итерационный процесс (2.22) будет сходящимся.
3. Разработка алгоритма решения задачи
Шаг 1 Определяем общую структуру программы
Программа:
Ввести выражения для вычисляемой функции
Ввести a, b, E
Определить X
Вывести X
Конец.
Шаг 2. Детализируем операцию определения X.
c=a-(y/(d-y))*(b-a);
x=c;
g=f(x);
i=1;
Цикл пока
while (1)
i = i+1
если(i == 16)
все если
все цикл
если (y*g)>0
то a=c
иначе b=c;
все цикл
Все.
Таким образом программа состоит из двух простых шагов. Полностью имеет вид:
Программа:
Ввести выражение для вычисляемой функции
Ввести a, b, E
% определить Х.
c=a-(y/(d-y))*(b-a);
x=c;
g=f(x);
i=1;
Цикл-пока
while (1)
i = i+1
если (i == 16)
се если
се цикл
если (y*g)>0
то a=c
иначе b=c;
се цикл
ывести Х
Конец.
Общая схема алгоритма приведена на рисунке 3.1
Рис. 3.1 Схема алгоритма программы
Алгоритм подпрограммы ввода границ интервала вычисления приведен на рис. 3.2
Рис. 3.2 Ввод границ интервала
4. Реализация разработанного алгоритма
R=input('Введите функцию, f=','s')
f=inline(R);
a=input('Введите нижний промежуток')
b=input('Введите верхий промежуток')
if a>b
disp('Неверный ввод промежутка '), break
else
e=input('Введите относительную погрешность')
c=1
x=a;
y=f(x);
x=b;
d=f(x);
c=a-(y/(d-y))*(b-a);
x=c;
g=f(x);
i=1;
while (1)
i = i+1
if (i == 16) break;
end;
if (y*g)>0
a=c
else
b=c;
end
x=a;
y=f(x);
x=b;
d=f(x);
c=a-(y/(d-y))*(b-a)
x=c;
g=f(x);
end
end
disp('Ваш ответ'),disp(c)
5. Тестирование разработанной программы
5.1 Ручной расчёт тестового примера
В
качестве тестового примера возьмём
функцию
.
на интервале [-2;-1]. Относительная погрешность Е = 0.01. Результаты приведены ниже.
Искомый корень : - 1,6430
5.2 Решение тестовой задачи в MatLab
Программа MatLab при расчёте тестового примера даёт следующие значения:
Введите функцию, f=5^x-3*x-5
R =
5^x-3*x-5
Введите нижний промежуток-2
a = -2
Введите верхий промежуток-1
b = -1
Введите относительную погрешность0.01
e = 0.0100
c = 1
i = 2
c = -1.6429
i = 3
c = -1.6430
i = 4
c = -1.6430
i = 5
c = -1.6430
i = 6
c = -1.6430
i = 7
c = -1.6430
i = 8
c = -1.6430
i = 9
c = -1.6430
i = 10
c = -1.6430
i = 11
c = -1.6430
i = 12
c = -1.6430
i = 13
c = -1.6430
i = 14
c = -1.6430
i = 15
c = -1.6430
i = 16
Ваш ответ
-1.6430
Таким образом, значение ,вычисленное при помощи программы MatLab, равно -1.6430. Следовательно, результаты тестовой задачи совпадают для случаев ручного расчёта и расчёта в MatLab.
математизация matlab трансцендентный локализация
Список использованной литературы
-
Самарский А.А. Введение в численные методы. Учебное пособие для Вузов, - М., Наука,1987,288 с.,;
-
Дьяконов В.П. MatLab 6.5 SP/7 + Simulink 5/6. Основы применения. М.: СОЛОН-Пресс, 2005.
-
Иванов Г.С Основы программирования : Учебник для вузов.- М. : Изд-во МГТУ им. Н.Э.Баумана, 2001
-
Бураков М.В. Основы работы в MATLAB: учебное пособие/ М.В. Бураков .- ГУАП.СПб., 2006;
Размещено на Allbest.ru