Цель работы: научиться решать нелинейные уравнения методом простых итераций, методом Ньютона и модифицированным методом Ньютона с помощью ЭВМ.
Содержание работы:
1. Изучить метод простых итераций, метод Ньютона и модифицированный метод Ньютона для решения нелинейных уравнений.
2. На конкретном примере усвоить порядок решения нелинейных уравнений с помощью ЭВМ указанными методами.
3. Составить программу (программы) на любом языке программирования и с ее помощью решить уравнение с точностью
4. Изменить
5. Составить отчет о проделанной работе.
ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ
Задание.
1. Доказать графическим и аналитическим методами существование единственного корня нелинейного уравнения
на отрезке
2. Построить рабочие формулы метода простых итераций, метода Ньютона и модифицированного метода Ньютона, реализующие процесс поиска корня нелинейного уравнения (1) на указанном отрезке.
3. Составить программу (программы) на любом языке программирования, реализующие построенные итерационные процессы.
Решение.
1. Докажем графическим методом единственность корня нелинейного уравнения (1). Из графика функции
|
Аналитический метод. Функция
2. Метод простых итераций. Для построения рабочей формулы перепишем уравнение (1) в виде:
Если условие выполняется, то итерационный процесс строится по формуле
Заметим, что в точке
Построим функцию
Итерационный процесс (3) можно начать, задав произвольное начальное приближение
Метод Ньютона. В качестве начального приближения
Заметим, что в точке
Условия выхода итерационного процесса (5) аналогичны условиям метода простых итераций.
Модифицированный метод Ньютона. Начальное приближение
Условия выхода итерационного процесса (6) аналогичны условиям метода простых итераций.
Замечание: для того, чтобы сделать вывод о скорости сходимости методов, необходимо в каждом методе выбирать одинаковое начальное приближение.
3. Блок-схема метода простых итераций, метода Ньютона и модифицированного метода Ньютона приведена на рисунке 3.
|
ПРИМЕР ПРОГРАММЫ НА ЯЗЫКЕ ПАСКАЛЬ
Program Pr_iter;
Uses Crt;
var n:integer;
x0,x,eps,d,y,z,c:real;
begin
clrscr;
n:=0;x0:=-1;c:=-0.1;x:=x0;eps:=0.001;d:=0.01;
repeat
y:=x+c*(exp(x)+x);z:=x;
n:=n+1;
writeln(n:3,x:9:5,y:9:5,abs(y-x):9:5,abs(exp(y)+y):9:5);
x:=y;
until (abs(z-x)<=eps) and (abs(exp(x)+x)<=d);
end.
ПРИМЕР ПРОГРАММЫ НА ЯЗЫКЕ С
#include <stdio.h>
#include <math.h>
main()
{
int n=0;
float x,y,z,x0=-1,c=-0.1,eps=0.001;d=0.01;
x=x0;
clrscr();
do
{
y=x+c*(exp(x)+x);z=x;
printf(“%d %.4f %.4f %.4f %.4f\n”,n++,x,y,fabs(y-x),
fabs(exp(y)+y));
x=y;
}
while(fabs(z-x)>e || fabs(exp(x)+x)>d;
getch();
}
Решение: в результате решения нелинейного уравнения (1) на указанном отрезке тремя методами при начальном приближении