![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Заснований на діленні інтервалу [ a,b ] навпіл та аналізі значення функції в цій точці f().
Алгоритм для даного методу має вигляд:
1. Задаємо похибку E визначення координати Xmax. Якщо умова | b - a| < 2E виконується то ідемо до пункту 5.
2. Розбиваємо інтервал [a, b] навпіл та обчислюємо дві абсциси х1 = та х2 =
, симетричних середині інтервалу.
3. Обраховуємо значення функції в цих точках F(x1) та F(x2).
4. Якщо умова F(x1) > F(x2) виконується, то приймаємо b = x2інакше a = x1. Далі повертаємось до пункту 1.
5. Фіксуємо абсцису максимуму Xmax = та обраховуємо значення функції F(xmax ).
Відповідна програма має вигляд.
PROGRAM PoshukMax;
LABEL 1,2;
USES CRT;
VAR E:real;
X,C,L,R,D:real;
{підпрограма опису досліджуваної функції}
Function F(X:real):real;
Begin
F:=((0.1*X-2)*X+10)*X;
End;
BEGIN
ClrScr;
WriteLn(' Пошук MAX. (ДИХОТОМIЯ)’);
Writeln;WriteLn;
Write('Введiть A,B');
READLN (A,B);
WRITE('Введіть похибку, Е ');
READLN(E);
REPEAT
C: = (A + B - E) / 2;
D:= (A + B + E) / 2;
IF F(C)>F(D) THEN A:=C ELSE B:=D
UNTIL(ABS(B-A))=(2*E);
X:=(A+B)/2;F(X);
WRITE(' XMAX=, X, ' F(XMAX) = ', F);
END.
Дата публикования: 2015-04-07; Прочитано: 380 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!