![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
1) Метод дiлення вiдрiзка [a,b] навпiл (метод дихотомiї) реалізується слiдуючим алгоритмом (алгоритм приведено для F(a)>0, інакше графік перевертаємо відносно вісі х).
1. Знаходимо x =
.
2. Обчислюємо F(x).
3. Якщо F(x)>0, приймаємо а=х, iнакшеb=x.
4. Перевiряємо умову êb-aê > E; якщо вона виконується, ідемо до п.1, якщо не виконується - закiнчуємо обчислення i вважаємо щох = з похибкою Е.
Число iтерацiй при використаннi цього методу N= досить велике і через те збiжнiсть його повiльна. Але при довiльнiй довжинi вiдрiзка [a,b]збiжнiсть гарантована. Крiм того, проста реалiзацiя методу зменшує кiлькiсть допомiжних операцiй i частково компенсує збiльшення загального часу розрахунку через повiльну збiжнiсть.
PROGRAM DIHOTOM;
Uses CRT;
Const e=0.01;
Var KL:integer;
F1,H,Z:real;
A,b,X,C,L,R,D:real;
{підпрограма опису досліджуваної функції}
Function F(E,X,D,R:real):real;
Begin
F:=E-X-R*10*(EXP(D*X)-1)
End;
BEGIN
ClrScr;
WriteLn(Розв' язок рівняння F(x)=0 МЕТОДОМ ДИХОТОМIЇ');
Writeln;WriteLn;
Write('Введiть А,В,Н');
READLN(A,B,H);
WRITE(' Задайте R,D');
READLN(R,D);
X:=A;
IF F(E,X,R,D) < 0 THEN KL:=1 ELSE KL:=-1;
REPEAT
X:=(A+B)/2;
F1:= F(E,X,R,D)* KL;
IF F1>0 THEN A:=X ELSE B:=X;
UNTIL ABS (B-A)*H;
X:=(A+B)/2;
WRITELN(X);
END.
Завдання:
Тест: для функції F(x)=E-x-RZ(eDx-1), при E=2, R=10, Z=1e-8, D=20, A=0, B=2, H=1e-4, значення кореня х=0.8143921.
Дата публикования: 2015-04-07; Прочитано: 420 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!