Шрифт:
220 IF R-R1 >P(2) THEN 210
230 F=R*P(1)-PI/2
290 RETURN
Пример программы на языке Pascal
VAR P: ARRAY [1..9] OF REAL; A,B,X,E:REAL;N,K:INTEGER;
FUNCTION F(X:REAL):REAL;
VAR R,R1,R2: REAL;
BEGIN R:=1.0; R1:=SQRT (1.0-X); WHILE R-R1 >P[2] DO BEGIN
R2:=(R+R1)/2; R1:=SQRT(R*R1); R:=R2; END;
F:=(R+R1)*P[1]-3.14159265; END;
FUNCTION SGN(X:REAL):INTEGER;
BEGIN SGN:=0;
IF X<0.0 THEN SGN:=-1;
IF X>0.0 THEN SGN:=1; END;
PROCEDURE DICH(VAR A,В,X,E,E1:REAL; FUNCTION F:REAL);
VAR I:INTEGER; R:REAL;
BEGIN I:=SGN(F(A)); WHILE B-A>E DO BEGIN
X:= (A+B) /2; R:=F(X); IF ABS(R)<E1 THEN EXIT;
IF SGN(R)=I THEN A:=X ELSE B:=X;END;END;
BEGIN
REPEAT WRITE(‘A,B,E?'); READLN(A,В,E); WRITE('СКОЛЬКО ПАРАМЕТРОВ? '); READLN(N);
FOR K:=1 TO N DO BEGIN
WRITE(‘P(‘,K:2, ')? '); READLN (Р[К]);END;
DICH(A,B,X,E,P[2],F); WRITELN('X=’,X); UNTIL FALSE; END.
Метод итераций
Уравнение f(x)=0 представляется в виде x=(x),где (x)определяется одним из способов:
(x)= x – f(x),где =const
(x)= x + (x)f(x), где (x)-произвольная функция не имеющая корней на отрезке (a/b).
Метод простой итерации определяется формулой: xn+1=(xn), n=0,1,2,3… где n-номер итерации,x0– произвольно заданное начальное приближение.
Процесс сходится к корню уравнения, если на отрезке (ab) выполняется условие: '(x) <= q < 1.
Конец ознакомительного фрагмента.