- •Тема: Численные методы решения нелинейных уравнений.
- •Метод итераций
- •Метод Ньютона
- •Метод половинного деления.
- •Содержание отчета :
- •Образец выполнения задания.
- •Описание метода итераций:
- •Текст программы.
- •Распечатка результатов работы программы в следующем виде:
- •Решение нелинейных уравнений методом Ньютона.
- •Описание метода Ньютона:
- •Распечатка результатов работы программы в следующем виде:
- •Решение нелинейных уравнений методом половинного деления.
- •Описание метода половинного деления:
- •Распечатка результатов работы программы в следующем виде:
Содержание отчета :
Постановка задачи для конкретного варианта и исходные данные.
Описание и блок-схема метода решения.
Текст программы.
Распечатка результатов работы программы в следующем виде:
РЕШЕНИЕ УРАВНЕНИЯ
ТОЧНОЕ ЗНАЧЕНИЕ КОРНЯ .............................
ВЫЧИСЛЕННОЕ ЗНАЧЕНИЕ КОРНЯ .............….
ЧИСЛО ИТЕРАЦИЙ ...........................................
Образец выполнения задания.
Найти корень уравнения : с точностью =10-4, корень уравнения находится на отрезке (0.4, 1), используя метод итераций. На печать вывести вычисленное значение корня и для сравнения точное значение корня, точное значение корня x=0.7376.
Значения:
Xо – примерное значение корня,
- точность нахождения корня, вводятся с клавиатуры.
Должен быть предусмотрен контроль вводимых значений.
В программе необходимо предусмотреть подсчет и вывод на печать числа итераций, за которое удается найти значение корня с заданной точностью.
Описание метода итераций:
Пусть уравнение имеет один корень на отрезке [a;b]. Функция F(x) непрерывна на отрезке [a; b].
Этот метод заключается в замене уравнения эквивалентным ему уравнением вида
После этого строится итерационный процесс:
На заданном отрезке [a; b] выберем точку х0 – нулевое приближение – и найдем:
х1 = f(x0),
потом найдем:
х2 = f(x1),
и т.д.
Таким образом, процесс нахождения корня уравнения сводится к последовательному вычислению чисел:
хn = f(xn-1) n = 1,2,3..... .
Процесс итераций продолжается до тех пор, пока
где – заданная абсолютная погрешность корня х.
Текст программы.
program lab9{ вариант № 3};
uses crt;
var x0,x1,a,b,e:real;
iteraz:integer;
function fun(x:real):real;
begin
fun:=2.5-sqrt(x)-exp((1/3)*(ln(x)));
end;
begin
clrscr;
write('Введите приближённое значение X=');
readln(x1);
write('Введите точность e=');
readln(e);
iteraz:=0;
repeat
iteraz:=iteraz+1;
x0:=x1;
x1:=fun(x0);
until (abs(x1-x0)<=e);
writeln('Решение уравнения:');
writeln('Точное значение корня...... ……0.7376');
writeln('Вычисленное значение корня…',x1:6:5);
writeln('Число итераций..…………......... ',iteraz);
writeln('Программа закончена, нажмите Enter.');
readln;
end.
Распечатка результатов работы программы в следующем виде:
Решение уравнения: Точное значение корня...... ……...0.7376 Вычисленное значение корня.. …0.73767 Число итераций...........………….. ..989
|
Решение нелинейных уравнений методом Ньютона.
Найти корень уравнения: с точностью =10-4, корень уравнения находится на отрезке (0.4, 1), используя метод Ньютона. На печать вывести вычисленное значение корня и для сравнения точное значение корня, точное значение корня x=0.7376.
Значения :
Xо – примерное значение корня,
- точность нахождения корня, вводятся с клавиатуры.
Должен быть предусмотрен контроль вводимых значений.
В программе необходимо предусмотреть подсчет и вывод на печать числа итераций, за которое удается найти значение корня с заданной точностью.
Описание метода Ньютона:
Пусть уравнение имеет один корень на отрезке [a;b]. Функция F(x) непрерывна на отрезке [a; b].
Приводящее к итерационному процессу следующего вида:
Выберем на отрезке[a; b] произвольную точку х0 – нулевое приближение. Затем найдем:
x1 = x0 - , потом x2 = x1 - .
Таким образом, процесс нахождения корня уравнения сводится к вычислению чисел xn по формуле: xn = xn-1 - n = 1,2,3...... .
Процесс вычисления продолжается до тех пор, пока не будет выполнено условие:
program lab9{ вариант № 3};
uses crt;
var x0,x1,a,b,e:real;
iteraz:integer;
function fun(x:real):real;
begin
fun:=(x+sqrt(x)+exp((1/3)*(ln(x)))-2.5)/(1+1/(2*sqrt(x))+1/(3*exp((1/3)*(ln(x)))));
end;
begin
clrscr;
write('Введите приближённое значение корня X=');
readln(x1);
write('Введите точность e=');
readln(e);
iteraz:=0;
repeat
iteraz:=iteraz+1;
x0:=x1;
x1:=x0-fun(x0);
until (abs(x1-x0)<=e);
writeln('Решение уравнения:');
writeln('Точное значение корня...... ……0.7376');
writeln('Вычисленное значение корня…',x1:6:5);
writeln('Число итераций..…………......... ',iteraz);
writeln('Программа закончена, нажмите Enter.');
readln;
end.