Уточнение корня по методу Хорд
По методу Хорд выбирается произвольное начальное значение корня из отрезка [a,b] на котором корень существует xÎ[a,b]=[x1,x2].
Затем по методу Хорд корень уточняется. Найденное новое значение корня подставляется в правую часть уравнения и т.д. пока разность между двумя приближениями не станет меньше
< e=10-5. Расчётная формула метода Хорд имеет вид: xn+1=xn-
(b-x). Графический метод Хорд имеет вид:
Отделение корней
program otd;
label 10;
var
a,b,x1,x2,y1,y2,h,d:real;
function f(x:real):real;
begin
f:=2.2*x-exp(x*ln(2));
end;
begin
writeln(‘введите a,b,h’); readln(a,b,h);
x1:=a;x2:=x1+h;y1:=f(x1);
10: y2:=f(x2);
if y1*y2<0 then writeln(x1:8:5,' ',x2:8:5);
x1:=x2;x2:=x1+h;
y1:=y2;
if x2<=b then goto 10; readln;
end.
ввод:
0.1,10,1e-4
ответ:
х1=0.10000
х2=1.10000
Уточнение корней
Метод половинного деления
program del; label 2, 10; var a,b,e,x,y,z:real; function f(x:real):real;
begin
f:= 2.2*x-exp(x*ln(2)); |
end;begin
writeln(‘введите a,b,e’);
readln(a,b,e); y:=f(a); 10:x:=(a+b)/2; z:=f(x);if z=0 then goto 2;
if y*z<0 then b:=x;
begin a:=x; y:=f(b); end;
if b-a>e then goto 10;
2:writeln('x=',x:8:5);
readln;
end.
ввод:
0.1, 1.1, 1е-5
ответ:
х=0.78111
Метод хорд
program horda; label 10; var e,x,b,y,d:real; function f(x:real):real; begin
f:= 2.2*x-exp(x*ln(2));
end; begin writeln(‘введите x,b,e’); readln(x,b,e); 10: y:=x-f(x)/(f(b)-f(x))*(b-x); d:=abs(y-x);x:=y;
if d>e then goto 10;
y:=f(x);
writeln('x=',x:8:5);
end.
ввод:
0.1, 1.1, 1е-5
ответ:
х=0.78110
Проверка уравнения в ППП "Eureka"
Ввод:
2.2*x-exp(x*ln(2))=0
Ответ:
X=0.78091254
Maximum error is 3.5465456e-7
2.2. Решение систем линейных уравнений методом итераций.
Метод итераций Гаусса-Зейделя