Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧМ_1-5.doc
Скачиваний:
14
Добавлен:
25.08.2019
Размер:
595.46 Кб
Скачать

Метод хорд

Пусть 1) функция y=F(x) определена и непрерывна на отрезке [a,b].

2) F(a)F(b)<0

Требуется найти корень на отрезке с точностью ε.

В качестве приближений к корню принимаются значения c0, c1, c2 точек пересечения хорды с осью абсцисс или

Точка c делит отрезок [a,b] на две части. Ту из них, на которой функция знака не меняет, отбрасываем (аналогично методу половинного деления).

В качестве условия окончания счета можно принять условия:

(Минаева)

(Турчак).

Корень уравнения: ci.

Программа уточнения корней методом хорд:

program met_hord;

var a,b,c,e,x,g: real;

N:integer;

function f(x: real):real;

begin

{записать, функцию в виде f:=[математическое выражение]}

f:=x*x*x-x+4;

end;

begin

write('Введите левую границу отрезка - a:'); readln(a);

write('Введите правую границу отрезка - b:'); readln(b);

write('Введите требуемую погрешность - e:'); readln(e);

N:=0; c:=a;

repeat N:=N+1; g:=c;

c:=(a*f(b)-b*f(a))/(f(b)-f(a));

if f(a)*f(c)<0 then b:=c else a:=c;

until abs(g-c)<e;

writeln('Приближенное значение корня - Х = ',c);

writeln('Число итераций - N = ',N);

readln

end.

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

Результаты выполнения программы:

Введите левую границу отрезка - a: -2

Введите правую границу отрезка - b: -1

Введите требуемую погрешность - e:.0001

Приближенное значение корня - Х = -1.7963190156E+00

Число итераций - N = 6

Метод касательных

Пусть функция y=F(x) определена, непрерывна, монотонна и дифференцируема в некоторой окрестности корня.

Требуется найти корень на отрезке с точностью ε.

На kой итерации проводится касательная к графику функции y=F(x) при x=ck и ищется точка пересечения касательной с осью абсцисс. При этом достаточно задать начальное приближение c0, а не указывать отрезок [a,b].

Уравнение касательной к графику функции y=F(x) в точке x0 имеет вид: . Пересечение с осью Ox находится из условия y=0, откуда

Таким образом, получим формулу для нахождения последовательности c1, c2 точек пересечения касательных с осью абсцисс:

Условие окончания счета:

К орень уравнения: ci+1.

Программа уточнения корней методом касательных:

program met_kasat;

var c,e,g: real;

N:integer;

function f(x: real):real;

begin

{записать, функцию в виде f:=[математическое выражение]}

f:=x*x*x-x+4;

end;

function df(x: real):real;

begin {записать, производную функции f в виде df:=[математическое выражение]}

df:=3*x*x-1;

end;

begin

write('Введите начальное приближение - c: ');readln(c);

write('Введите требуемую погрешность - e:'); readln(e);

N:=0;

repeat N:=N+1;

g:=c;

c:=c-f(c)/df(c);

until abs(g-c)<e;

writeln('Приближенное значение корня - Х = ',c);

writeln('Число итераций - N = ',N);

readln

end.

Блок-схема метода касательных:

Результаты выполнения программы:

начало

Ввод c,ε

n:=0

|g-c|<ε

Вывод c, n

конец

+

n:=n+1

g:=c

Введите начальное приближение - c: -2

Введите требуемую погрешность - e:.0001

Приближенное значение корня - Х = -1.7963219033E+00

Число итераций - N = 4