Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методи обчислень модуль1.doc
Скачиваний:
1
Добавлен:
04.12.2018
Размер:
487.94 Кб
Скачать

;

Код програми:

program polovin;

uses crt;

Var a,b,X,e:Real;

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;

10: Writeln(X:0:5,'- Koronj rivnjannja');

writeln('yaksho nastupne chislo prubluzno dorivnjue 0, todi rovyazok virnuy');

writeln(f(X):2:4);

readln;

end.

'- korinj rivnjannja');

║readln;

║end.

Метод хорд

  1. Відокремити корені рівняння f(x) = 0 графічно. Для побудови графіків функції використати пакети програм Gran або Visual Calculus.

  2. Уточнити корені на кожному з відрізків локалізації, скориставшись одним з наближених методу, дотичних. Для цього скласти 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.

од програми: