Программирование - Численные методы
.doc
ЧИСЛЕННЫЕ
МЕТОДЫ.
НАХОЖДЕНИЕ
КОРНЕЙ УРАВНЕНИЯ МЕТОДОМ СКАНИРОВАНИЯ
PROGRAM
SCAN;
CONST
N=100;
X1=…(Меньшее
значение); X2=…(Большее
значение); VAR
I:INTEGER; H,X:REAL;
FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция); END; BEGIN X:=X1; H:=(X2-X1)/N; FOR
I:=1 TO N DO BEGIN IF
F(X)*F(X+H)<=0 THEN WRITELN(X); X:=X+H; END; END.
1
НАХОЖДЕНИЕ
КОРНЕЙ УРАВНЕНИЯ МЕТОДОМ ХОРД
PROGRAM
XOPDA;
CONST
N=100;
X1=…(Меньшее
значение);X2=…(Большее
значение); E=0.001; VAR
I:INTEGER; H,X,C,C1:REAL; FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция);
END; PROCEDURE
PD(A,B:REAL); BEGIN REPEAT
C1:=C; C:=A-(F(A)*(B-A))/(F(B)-F(A)) IF
F(A)*F(B)<=0 THEN B:=C ELSE
A:=C; UNTIL
ABS(C1-C)<E; WRITELN(C);
END; BEGIN
X:=X1;
H:=(X2-X1)/N; FOR
I:=1 TO N DO BEGIN IF
F(X)*F(X+H)<=0 THEN PD(X,X+H);
X:=X+H;
END;
END.
3
НАХОЖДЕНИЕ
КОРНЕЙ УРАВНЕНИЯ МЕТОДОМ НЬЮТОНА
PROGRAM
NIUTON;
CONST
N=100;
X1=…(Меньшее
значение);X2=…(Большее
значение); E=0.001;
DX=0.0001; VAR
I:INTEGER; H,X,X3:REAL;
FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция);
END; FUNCTION
F1(X:REAL):REAL; BEGIN F1:=(F(X+DX)-F(X+DX))(2*DX);
END; PROCEDURE
PD(X:REAL); BEGIN
REPEAT
X3:=X; X:=X-F(X)/F1(X); UNTIL
ABS(X3-X)<E;
WRITELN(X);
END;
BEGIN
X:=X1; H:=(X2-X1)/N;
FOR
I:=1 TO N DO BEGIN IF
F(X)*F(X+H)<=0 THEN PD(X);
X:=X+H;
END;
END.
5
ВЫЧИСЛЕНИЕ
ОПРЕДЕЛЁННОГО ИНТЕГРАЛА МЕТОДОМ
ТРАПЕЦИЙ
PROGRAM
TRAPEZ; VAR
I,N:INTEGER; H,X,S,A,B:REAL; FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция);
END; PROCEDURE
PD(A,B:REAL); BEGIN
S:=0;H:=(B-A)/N;
S:=(F(A)+F(B))/2; X:=A+H; FOR
I:=1 TO N-1 DO BEGIN S:=S+F(X);
X:=X+H; END; WRITELN(S*H);
END; BEGIN READ
(A,B,N); PD(A,B);
END.
7
НАХОЖДЕНИЕ
ЭКСТРЕМУМОВ ФУНКЦИИ МЕТОДОМ «ЗОЛОТОГО
СЕЧЕНИЯ» PROGRAM
SECHEN; CONST
E=0.001;
VAR
I:INTEGER; H,G,X,X1,X2:REAL; FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция);
END; PROCEDURE
PD(A,B:REAL); BEGIN G:=(SQRT(5)-1)/2;
X1:=A+G*(B-A); X2:=B-G*(B-A); REPEAT IF
F(X1)<F(X2) THEN BEGIN A:=X2;
X2:=X1; X1:=A+G*(B-A); END; UNTIL
ABS(B-A)<E; WRITELN(X1);
END;
BEGIN
READ(X,H); IF
F(X)<F(X+H) THEN H:=-H; REPEAT
X:=X+H; UNTIL
F(X)<F(X+H); PD(X-H,X+H); WRITELN(X-H,X+H);
END.
9
НАХОЖДЕНИЕ
КОРНЕЙ УРАВНЕНИЯ МЕТОДОМ ПОЛОВИННОГО
ДЕЛЕНИЯ
PROGRAM
DELEN;
CONST
N=100;
X1=…(Меньшее
значение); X2=…(Большее
значение); E=0.001; VAR
I:INTEGER; H,X,C:REAL; FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция);
END; PROCEDURE
PD(A,B:REAL); BEGIN WHILE
ABS(B-A)>E DO BEGIN C:=(A+B)/2; IF
F(A)*F(B)<=0 THEN B:=C ELSE
A:=C; END;
WRITELN(C);
END; BEGIN
X:=X1;
H:=(X2-X1)/N; FOR
I:=1 TO N DO BEGIN IF
F(X)*F(X+H)<=0 THEN PD(X,X+H);
X:=X+H;
END;
END.
2
НАХОЖДЕНИЕ
КОРНЕЙ УРАВНЕНИЯ МЕТОДОМ ИТЕРАЦИЙ
PROGRAM
ITERA;
CONST
N=100;
X1=…(Меньшее
значение);X2=…(Большее
значение); E=0.001; VAR
I:INTEGER; H,X,X3:REAL; FUNCTION
F(X:REAL):REAL;
BEGIN
F:=…(Функция);
END; FUNCTION
FI(X:REAL):REAL;
BEGIN
FI:=… (Функция
);
END; PROCEDURE
PD(X:REAL);
BEGIN
REPEAT X3:=X; X:=FI(X); UNTIL
ABS(X3-X)<E; WRITELN(X);
END; BEGIN
X:=X1; H:=(X2-X1)/N; FOR
I:=1 TO N DO BEGIN IF
F(X)*F(X+H)<=0 THEN PD(X);
X:=X+H;
END;
END.
4
ВЫЧИСЛЕНИЕ
ОПРЕДЕЛЁННОГО ИНТЕГРАЛА МЕТОДОМ
ПРЯМОУГОЛЬНИКОВ (3 СПОСОБА) PROGRAM
PRIAM; VAR
I,N:INTEGER; H,X,S,A,B,K:REAL; FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция);
END; PROCEDURE
PD(A,B,K:REAL); BEGIN H:=(B-A)/H;
X:=K;S:=0; FOR
I:=1 TO N DO BEGIN S:=S+F(X); X:=X+H;
END; S:=S*H;
WRITELN(S); END; BEGIN READ(A,B,N);
PD(A,B,A);
‘ ЛЕВЫЕ
PD(A,B,A+H);
‘ ПРАВЫЕ
PD(A,B,A+H/2);
‘ СРЕДНИЕ
END.
6
ВЫЧИСЛЕНИЕ
ОПРЕДЕЛЁННОГО ИНТЕГРАЛА МЕТОДОМ
СИМПСОНА
PROGRAM
SIMPSON; VAR
I,N:INTEGER; H,X,S,A,B,S1:REAL; FUNCTION
F(X:REAL):REAL; BEGIN
F:=…(Функция);
END; PROCEDURE
PD(A,B:REAL); BEGIN S:=0;
H:=(B-A)/(2*N); X:=A+H; FOR
I:=1 TO N DO BEGIN S:=S+F(X);
X:=X+2*H; END; S1:=0;
X:=A+2*H; FOR
I:=1 TO N-1 DO BEGIN S1:=S1+F(X);
X:=X+2*H; END; S:=S*4;
S1:=S1*2; WRITELN(H/3*(F(A)+F(B)+S+S1));
END; BEGIN READ
(A,B,N); PD(A,B);
END.
8