;
Код
програми: program
polovin; uses
crt; label
10; function
f(x:Real):real; begin F:=(2*x*(ln(x))-4);
end; begin clrscr; writeln('vvedite
kinci promizhku a,b'); readln(a,b); Writeln('vedite
tochnistj obchuslennya E'); Readln(E); While
(b-a)>=2*E do
begin
x:=(a+b)/2;
if
f(x)=0 then
goto
10
else
begin
if
f(a)*f(x)<0 then b:=x
else
a:=x;
end;
end;
x:=(a+b)/2; writeln('yaksho
nastupne chislo prubluzno dorivnjue 0, todi rovyazok virnuy'); writeln(f(X):2:4); readln; end.
Var a,b,X,e:Real;
10: Writeln(X:0:5,'- Koronj rivnjannja');
'- korinj rivnjannja');
║readln;
║end.
Метод хорд
-
Відокремити корені рівняння f(x) = 0 графічно. Для побудови графіків функції використати пакети програм Gran або Visual Calculus.
-
Уточнити корені на кожному з відрізків локалізації, скориставшись одним з наближених методу, дотичних. Для цього скласти Pascal-програму, згідно з блок-схемою відповідного методу хорд;
Блок- схема:
+ -
+ -
Код програми:
program
metodhord; uses
crt; var
a,b,c,x,x0,E:real; function
f(x:real):real; begin f:=exp(ln(2)*x)-4*x; end; function
f2(x:real):real; begin f2:=(exp(ln(2)*x))*(ln(2))*(ln(2)); end; begin clrscr; writeln('vvedite
konci otrezka a,b'); readln(a,b); writeln('vvedite
to4nistj ob4islennja E'); Readln(E); if
f(a)*f2(a)>0 then begin c:=a;
x:=b;
end
else begin x:=a;
c:=b;
end; While
abs(x-x0)>E do begin
x0:=x;
x:=x0-f(x0)*((c-x0)/(f(c)-f(x0))); end; writeln(x,'
korinj rivnjannja'); writeln('esli
sleduyushee chislo prubluzno = 0, to rivnjannja rozvjazane virno'); writeln(f(x):1:3); readln; end.
program
metodhord; uses
crt; var
a,b,c,x,x0,E:real; function
f(x:real):real; begin f:=x*x*x-5*x+0.1; end; function
f2(x:real):real; begin f2:=6*x; end; begin clrscr; writeln('vvedite
konci otrezka a,b'); readln(a,b); writeln('vvedite
to4nistj ob4islennja E'); Readln(E); if
f(a)*f2(a)>0 then begin c:=a;
x:=b;
end
else begin x:=a;
c:=b;
end; While
abs(x-x0)>E do begin
x0:=x;
x:=x0-f(x0)*((c-x0)/(f(c)-f(x0))); end; writeln(x,'
korinj rivnjannja'); writeln('esli
sleduyushee chislo prubluzno = 0, to rivnjannja rozvjazane virno'); writeln(f(x):1:3); readln; end.
К
program
metodhord; uses
crt; var
a,b,c,x,x0,E:real; function
f(x:real):real; begin f:=x*x*x*x
+ x*x
- 2*x - 2;
end; function
f2(x:real):real; begin f2:=12*x*x
- 2; end; begin clrscr; writeln('vvedite
konci otrezka a,b'); readln(a,b); writeln('vvedite
to4nistj ob4islennja E'); Readln(E); if
f(a)*f2(a)>0 then begin c:=a;
x:=b;
end
else begin x:=a;
c:=b;
end; While
abs(x-x0)>E do begin
x0:=x;
x:=x0-f(x0)*((c-x0)/(f(c)-f(x0))); end; writeln(x,'
korinj rivnjannja'); writeln('esli
sleduyushee chislo prubluzno = 0, to rivnjannja rozvjazane virno'); writeln(f(x):1:3); readln; end.
Домашня робота:
2xlnx-4=0
К
program
metodhord; uses
crt; var
a,b,c,x,x0,E:real; function
f(x:real):real; begin f:=2*x*ln(x)-4; end; function
f2(x:real):real; begin f2:=2/x; end; begin clrscr; writeln('vvedite
konci otrezka a,b'); readln(a,b); writeln('vvedite
to4nistj ob4islennja E'); Readln(E); if
f(a)*f2(a)>0 then begin c:=a;
x:=b;
end
else begin x:=a;
c:=b;
end; While
abs(x-x0)>E do begin
x0:=x;
x:=x0-f(x0)*((c-x0)/(f(c)-f(x0))); end; writeln(x,'
korinj rivnjannja'); writeln('esli
sleduyushee chislo prubluzno = 0, to rivnjannja rozvjazane virno'); writeln(f(x):1:3); readln; end.