Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по матану.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
45 Кб
Скачать

Лабораторная работа №1 Отделение корней

program otd_korn;

var x1,x2,a,b,h:real;

function f(x: real):real;

begin {f:=[5*x-8ln(x)-8=0]} f:=x*x*x-x+4;

end;

begin

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

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

write('Введите шаг - h:'); readln(h);

x1:=a; x2:=x1+h;

while x2<b do

begin

if f(x1)*f(x2)<0

then writeln('[ ',x1:6:2,' , ',x2:6:2,' ]');

x1:=x2; x2:=x1+h;

end;

readln;

end.

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

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

Введите шаг - h: 1

[ -2.00 , -1.00 ]

Метод половинного деления

program pol_del;

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

N:integer;

function f(x: real):real;

begin

{f:=[5*x-8ln(x)-8=0]} f:=x*x*x-x+4end;

begin

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

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

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

N:=0;

repeat N:=N+1; c:=(a+b)/2;

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

until b-a<e;

x:=(a+b)/2; dX:=(b-a)/2;

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

writeln('Ошибка не превышает dX = ',dX:10:6);

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

readln

end.

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

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

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

Приближенное значение корня - Х = -1.796295

Ошибка не превышает dX = 0.000031

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

Метод хорд

program met_hord;

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

N:integer;

function f(x: real):real;

begin

{f:=[5*x-8ln(x)-8=0]}

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:10:6);

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

readln

end.

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

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

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

Приближенное значение корня - X = -1.796319

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

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

program met_kasat;

var c,e,g: real;

N:integer;

function f(x: real):real;

begin

{f:=[5*x-8ln(x)-8=0]}

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:10:6);

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

readln

end.

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

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

Приближенное значение корня - Х = -1.796322

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