Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
28.06.2014
Размер:
5.99 Кб
Скачать
uses crt;
type Func = Function(x:real): real; {’ЁЇ ¤«п ¤ ­­®© дг­ЄжЁЁ}

var
eps:real; {’®з­®бвм Ї®¤бзсв }
x:real; {ђҐ§г«мв в Ї®¤бзсв }
str: string;
iiter, ibis: integer;
{€б室­ п дг­ЄжЁп
€§ - §  ў®§ўҐ¤Ґ­Ёп ў ¤а®Ў­го б⥯Ґ­м ЁбЇ®«м§гҐвбп «®Ј аЁд¬, б«Ґ¤®ў вҐ«м­®,
гзЁвлў п ®Ў« бвм ®ЇаҐ¤Ґ«Ґ­Ёп бв®Ёв ўлзЁб«Ёвм §­ зҐ­ЁҐ дг­ЄжЁЁ ў в®зЄҐ 0(ў Є®в®а®© ­Ґ ®ЇаҐ¤Ґ«Ґ­ «®Ј аЁд¬)
x -  аЈг¬Ґ­в дг­ЄжЁЁ}

function fun(x:real):real; FAR;
begin
FUN:=1/(1.2*sin(x)/cos(x)+sqrt(x+1));
end;

{
function fun(x:real):real; far;
begin
if x=0 then
fun:=2.5
else
fun:=2.5 - (sqrt(x)+exp(ln(x)*1/3))/exp(3/2) - x;
end;
}
{‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§гп –€Љ‹
eps - в®з­®бвм ўлзЁб«Ґ­Ёп
f - ¤ ­­ п дг­ЄжЁп
‚л室­лҐ ¤ ­­лҐ - ‡­ зҐ­ЁҐ ў Є®в®а®¬ ¤ ­­ п дг­ЄжЁп fun ЇаЁ­Ё¬ Ґв §­ зҐ­ЁҐ, а ў­®Ґ 0
l Ё r -ᮮ⢥вб⢥­­® «Ґў п Ё Їа ў п Ја ­Ёж  ®в१Є , ў Є®в®а®¬ «Ґ¦Ёв Є®аҐ­м.}
function bisiter(eps:real; l, r: real; f:func): real;
var x:real;
i: integer;
begin
i:=0;
repeat
x := (l+r) / 2; {„Ґ«Ё¬ ®в१®Є ­  2 а ў­ле}
if f(x)*f(r) < 0 then {€§¬Ґ­пҐ¬ ®¤Ё­ Ё§ Є®­ж®ў ®в१Є }
l:=x
else
r:=x;
i:=i+1;
until (abs(r-l) < eps);
textcolor(12);writeln('Љ®«ЁзҐбвў® ЁвҐа жЁ© = ',i);
bisiter:=(r+l)/2;
end;


{‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ
eps - в®з­®бвм ўлзЁб«Ґ­Ёп
f - ¤ ­­ п дг­ЄжЁп
l Ё r -ᮮ⢥вб⢥­­® «Ґў п Ё Їа ў п Ја ­Ёж  ®в१Є , ў Є®в®а®¬ «Ґ¦Ёв Є®аҐ­м.
‚л室­лҐ ¤ ­­лҐ - ‡­ зҐ­ЁҐ ў Є®в®а®¬ ¤ ­­ п дг­ЄжЁп fun ЇаЁ­Ё¬ Ґв §­ зҐ­ЁҐ, а ў­®Ґ 0}
function bisrec(eps:real; l, r: real; f:func): real;
var x: real;
begin
if (abs(l - r) > eps) then
begin {ЊҐ­пҐ¬ Ја ­Ёжл ®в१Є , Ё Їа®ў®¤Ё¬  ­ «®ЈЁз­го ®ЇҐа жЁо ¤«п ўлзЁб«Ґ­Ёп б Ў®«м襩 в®з­®бвмо}
x := (l+r) / 2;
if f(x)*f(r) < 0 then
l:=x
else
r:=x;
ibis:=ibis+1;
bisrec:=bisrec(eps, l, r, fun);
end
else {‚л室 Ё§ ४габЁЁ, Є®Ј¤  ¤®бвЁЈ Ґвбп ­г¦­ п в®з­®бвм}
bisrec:=(l+r) / 2;
end;


{‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп –€Љ‹
eps - в®з­®бвм ўлзЁб«Ґ­Ёп
f - ¤ ­­ п дг­ЄжЁп
‚л室­лҐ ¤ ­­лҐ - ‡­ зҐ­ЁҐ ў Є®в®а®¬ ¤ ­­ п дг­ЄжЁп fun ЇаЁ­Ё¬ Ґв §­ зҐ­ЁҐ, а ў­®Ґ 0
x - в®зЄ , бв ЎЁ«Ё§Ёагой пбп Є Є®а­о га ў­Ґ­Ёп F(x) = 0}
function iteriter(eps:real; f:func): real;
var x: real;
tmp: real;
i: integer;
begin
i:=0;
x:=0; {‡ ¤ с¬ ­ з «м­®Ґ Ї®«®¦Ґ­ЁҐ}
repeat {‘в ЎЁ«Ё§Ёа㥬 в®зЄг, ¤® ¤®бвЁ¦Ґ­Ёп ­г¦­®© в®з­®бвЁ}
tmp:=f(x);
x:=tmp+x;
i:=i+1;
until (Abs(tmp) < eps);
textcolor(12);writeln('Љ®«ЁзҐбвў® ЁвҐа жЁ© = ', i);
iteriter:=x;
end;

{‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ
eps - в®з­®бвм ўлзЁб«Ґ­Ёп
f - ¤ ­­ п дг­ЄжЁп
x - в®зЄ , бв ЎЁ«Ё§Ёагой пбп Є Є®а­о га ў­Ґ­Ёп F(x) = 0
‚л室­лҐ ¤ ­­лҐ - ‡­ зҐ­ЁҐ ў Є®в®а®¬ ¤ ­­ п дг­ЄжЁп fun ЇаЁ­Ё¬ Ґв §­ зҐ­ЁҐ, а ў­®Ґ 0}
function iterrec(eps:real; x: real; f:func): real;
vaR tmp: real;
begin
tmp:=f(x);
iiter:=iiter+1;
if (abs(tmp) > eps) then
begin
x:=tmp+x;
iterrec:=iterrec(eps, x, fun);
end
else {„®бвЁЈ­гв  вॡ㥬 п в®з­®бвм}
iterrec:=x;
end;

begin
repeat
textcolor(15);
writeln('Ќ з «®');
writeln('‚лзЁб«Ґ­ЁҐ дг­ЄжЁЁ');
iiter:=0;
ibis:=0;
{‚ў®¤}
repeat
textcolor(15); writeln('‚ўҐ¤ЁвҐ eps: 0<eps<1 ');
textcolor(11); readln(eps);
until(eps <=1) and (eps > 0);
{Џ®¤бзсв ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§го –€Љ‹}
x:=bisiter(eps, 0, 2, fun);
textcolor(14);writeln('ЊҐв®¤®¬ ЎЁбҐЄжЁЁ, ЁбЇ®«м§гп жЁЄ«:',
'‡­ зҐ­ЁҐ дг­ЄжЁЁ f(x) а ў­® 0');
writeln('ў в®зЄҐ x = ',x:0:10, ' б в®з­®бвмо ', eps:0:20);
writeln('f(',x:0:4, ') = ',fun(x):0:20);
{ readln;
{Џ®¤бзсв ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§го ђҐЄгабЁо}
x:=bisrec(eps, 0, 2, fun);
textcolor(12);writeln('Љ®«ЁзҐбвў® ЁвҐа жЁ© = ',ibis);
textcolor(14);writeln('ЊҐв®¤®¬ ЎЁбҐЄжЁЁ, ЁбЇ®«м§гп ४габЁо:',
'‡­ зҐ­ЁҐ дг­ЄжЁЁ f(x) а ў­® 0');
writeln('ў в®зЄҐ x = ',x:0:10, ' б в®з­®бвмо ', eps:0:20);
writeln('f(',x:0:4, ') = ',fun(x):0:20);
{ readln;
{Џ®¤бзсв ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп –€Љ‹}
x:=iteriter(eps, fun);
textcolor(14);writeln('ЊҐв®¤®¬ Їа®бвле ЁвҐа жЁ©, ЁбЇ®«м§гп жЁЄ«:',
'‡­ зҐ­ЁҐ дг­ЄжЁЁ f(x) а ў­® 0');
writeln('ў в®зЄҐ x = ',x:0:10, ' б в®з­®бвмо ', eps:0:20);
writeln('f(',x:0:4, ') = ',fun(x):0:20);
{ readln;
{Џ®¤бзсв ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ}
x:=iterrec(eps, 0, fun);
textcolor(12);writeln('Љ®«ЁзҐбвў® ЁвҐа жЁ© = ',iiter);
textcolor(14);writeln('ЊҐв®¤®¬ Їа®бвле ЁвҐа жЁ©, ЁбЇ®«м§гп ४габЁо:',
'‡­ зҐ­ЁҐ дг­ЄжЁЁ f(x) а ў­® 0');
writeln('ў в®зЄҐ x = ',x:0:10, ' б в®з­®бвмо ', eps:0:20);
writeln('f(',x:0:4, ') = ',fun(x):0:20);
repeat
textcolor(2); writeln('Џ®ўв®аЁвм? Y Ё«Ё N?');
textcolor(13); readln(str);
until (str='Y') or (str='y') or (str='n') or (str='N');
until(str = 'n') or (str='N');
end.

{‡ ¤ з .
‚лзЁб«Ёвм §­ зҐ­ЁҐ Є®а­п га ў­Ґ­Ёп f(x) = 0, ¬Ґв®¤®¬ Їа®бвле ЁвҐа жЁ© Ё ¬Ґв®¤®¬ ЎЁбҐЄжЁЁ, ЁбЇ®«м§го жЁЄ« Ё ४габЁо.
‚室­лҐ ¤ ­­лҐ:
ўҐй eps - в®з­®бвм ўлзЁб«Ґ­Ёп 0<eps< 1
‚л室­лҐ ¤ ­­лҐ:
ўҐй x - Є®аҐ­м га ў­Ґ­Ёп f(x) = 0
ЊҐв®¤:
1) ‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§гп –€Љ‹
„Ґ«Ё¬ ®в१®Є ­  2 з бвЁ Ё ЎҐаҐ¬ в®в ®в१®Є, ў Є®в®а®¬ «Ґ¦Ёв Є®аҐ­м га ў­Ґ­Ёп, ЁбЇ®«м§гп ⥮६㠮 0 ­ҐЇаҐалў­®© дг­ЄжЁЁ.
Џ®ўв®апп нвг ®ЇҐа жЁо Ї® ⥮६Ґ ® б室пйЁебп ®в१Є е ­ ©¤с¬ Є®аҐ­м.
€­ў аЁ ­в - Є®аҐ­м га ў­Ґ­Ёп ўбҐЈ¤  ЇаЁ­ ¤«Ґ¦Ёв а бб¬ ваЁў Ґ¬®¬г ®в१Єг
2) ‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ
Ђ­ «®ЈЁз­® Ї 1)
‚лЇ®«­Ґ­ЁҐ дг­ЄжЁЁ е а ЄвҐаЁ§гҐв 1 ЁвҐа жЁо Ё§ Їг­Єв  1).
€­ў аЁ ­в - Є®аҐ­м га ў­Ґ­Ёп ўбҐЈ¤  ЇаЁ­ ¤«Ґ¦Ёв а бб¬ ваЁў Ґ¬®¬г ®в१Єг
3) ‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп –€Љ‹
€бЇ®«м§гп бў®©бвў® дг­ЄжЁЁ: Ґб«Ё f(x)=0 ЇаҐ¤бв ўЁ¬  ў ўЁ¤Ґ g(x)=x в® Є®аҐ­м ¬®¦­® ­ ©вЁ Є Є ЇаҐ¤Ґ« Ї®б«Ґ¤®ў вҐ«м­®бвЁ •i, Ј¤Ґ •0 = 0,
•i = g(•i-1).
€­ў аЁ ­в - |Xi - x| < |Xi-1 - x|, Ј¤Ґ x - Є®аҐ­м га ў­Ґ­Ёп.
4) ‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ
Ђ­ «®ЈЁз­® Ї 1).
}
Соседние файлы в папке Laba1