Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование - Численные методы

.doc
Скачиваний:
28
Добавлен:
20.05.2014
Размер:
43.52 Кб
Скачать

ЧИСЛЕННЫЕ МЕТОДЫ.

НАХОЖДЕНИЕ КОРНЕЙ УРАВНЕНИЯ МЕТОДОМ СКАНИРОВАНИЯ

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